windows下搭建hadoop工程(一)

来源:互联网 发布:access数据库密码忘记 编辑:程序博客网 时间:2024/06/14 18:56

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

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

二、启动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、设置免密码登录
由于在使用启动hadoop和停止hadoop脚本过程中需要通过ssh发送命令,因此每次发送命令都需要输入密码进行验证。
打开cygwin,进入D:\hadoop\cygwin\zhangmanyi\hadoop-1.0.0\目录下

ssh –keygen –t rsa

过程中需要输入存储id_rsa的文件,其中需要输入文件的位置,如果只输入文件名,那么不会存储到.ssh目录下。后面需要输入使用密钥的密码,设置为空。
这里写图片描述
进入~/.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%\src\contrib\目录下
编辑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: \tmp\hadoop-zhangmanyi\mapred\staging\zhangmanyi-1980807403.staging to 0700
需要修改src\core\org\apache\hadoop\fs\FileUitl.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:\hadoop\eclipse -Dversion=1.0.0

执行成功后会在%Hadoop_HOME%\build\contrib\eclipse-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插件安装成功。

这里写图片描述

0 0
原创粉丝点击