windows下搭建hadoopproject(一)

这里是接着之前的一篇 《hadoop在windows下的环境搭建 》来的~~~

一、安装文件准备
1:下载好hadoop-1.0.0.tar.gz,
下载地址是https://archive.apache.org/dist/hadoop/core/hadoop-1.0.0/
2:解压到D:hadoopcygwinzhangmanyi文件夹下。

二、启动hadoop
1、改动hadoop配置文件,在conf文件夹下。改动mapred-site.xml、core-site.xml和hdfs-site.xml三个文件。
mapred-site.xml

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>
</configuration>

core-site.xml:

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

在Windows环境下,还须要在hadoop-env.xml中增加

export JAVA_HOME=D:/hadoop/Java/jdk1.6.0_45

2、设置免password登录
因为在使用启动hadoop和停止hadoop脚本过程中须要通过ssh发送命令。因此每次发送命令都须要输入password进行验证。
打开cygwin,进入D:hadoopcygwinzhangmanyihadoop-1.0.0文件夹下

ssh –keygen –t rsa

过程中须要输入存储id_rsa的文件,当中须要输入文件的位置,假设仅仅输入文件名称,那么不会存储到.ssh文件夹下。

后面须要输入使用密钥的password,设置为空。
这里写图片描写叙述
进入~/.ssh文件夹
这里写图片描写叙述

cat id_rsa.pub >> authorized_keys

这里写图片描写叙述
3、启动hadoop
进入hadoop安装文件夹
首先格式化HDFS:

bin/hadoop namenode –format

启动hadoop

bin/start-all.sh

通过http://localhost:50030/查看MapReduce是否启动成功
通过http://localhost:50070/查看HDFS是否启动成功
发现仅仅有HDFS启动成功,于是运行一次停止脚本再又一次启动。


停止脚本:

bin/stop-all.sh

前面MapReduce没有启动成功是因为datanode没有启动起来。


这里写图片描写叙述

这里写图片描写叙述

这里写图片描写叙述

启动成功。可是这里点击Browse the filesystem会出现故障:
这里写图片描写叙述
因为网页转向的地址用的是hadoop集群的某一个datanode的主机名,客户端的浏览器无法解析这个主机名,因此该页无法显示。


因此须要在客户端的hosts文件中增加hadoop集群的ip地址与相应的主机名,这样就能解决这个问题了。

(待解决)

三、hadoop eclipse插件制作
问题1。


这里写图片描写叙述
进入%Hadoop_HOME%srccontrib文件夹下
编辑build-contrib.xml
增加

<property name="version" value="1.0.0"/>
<property name="eclipse.home" location="D:/hadoop/eclipse"/>

问题2。针对直接编译代码后生成的jar包缺少依赖的lib文件
这里写图片描写叙述
须要对配置文件进行改动。包括src/contrib/eclipse-plugin/文件夹下的build.xml和META-INF/MANIFEST.MF。
build.xml:
在后面增加:

<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>

这里写图片描写叙述

MANIFEST.MF:

Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar

问题3。针对hadoop中文件权限的问题 Failed to set permissions of path: mphadoop-zhangmanyimapredstagingzhangmanyi-1980807403.staging to 0700
须要改动srccoreorgapachehadoopfsFileUitl.java
凝视掉三行代码:

private static void checkReturnValue(boolean rv, File p, 
                                       FsPermission permission
                                       ) throws IOException {
    if (!rv) {
    //  throw new IOException("Failed to set permissions of path: " + p + 
    //                        " to " + 
    //                        String.format("%04o", permission.toShort()));
    }
}

上面问题都是在实践中遇到了的,可是问题2在改正并又一次编译后还是不对,因此选择又一次来,将全部文件改动好后再进行编译。

1、 编译生成eclipse插件
先在hadoop安装文件夹下,运行命令

ant eclipse

然后在hadoop-1.0.0/src/contrib/eclipse-plugin/文件夹下运行命令

ant -Dversion.home=D:hadoopeclipse -Dversion=1.0.0

运行成功后会在%Hadoop_HOME%uildcontribeclipse-plugin文件夹下生成hadoop-eclipse-plugin-1.0.0.jar文件。

2、 安装eclipse插件
将生成的hadoop-eclipse-plugin-1.0.0.jar拷贝到eclipse文件夹中的plugin文件夹中。
新建java project项目。hadoop-1.0.0。使用jdk为1.6的版本号
并在Project——Properties——Java Build Path(右边选择Libraries)——Add External JARs
选择导入hadoop-eclipse-plugin-1.0.0.jar
工程建立完毕

3、 測试安装
在菜单条中依次单击windows——show view——other…——MapReduce Tools——Map/Reduce Locations。

这里写图片描写叙述

设置完毕后能够显示hdfs的文件夹内容,说明eclipse插件成功安装。

这里写图片描写叙述

原文地址:https://www.cnblogs.com/yangykaifa/p/7212543.html