刚用Ambari搭建好Hadoop,就开始写Hello World!
一、背景
1、Hadoop版本
经查看为2.7.1
[root@TJ1-000 ~]# hadoop version Hadoop 2.7.1.2.4.0.0-169 Subversion git@github.com:hortonworks/hadoop.git -r 26104d8ac833884c8776473823007f176854f2eb Compiled by jenkins on 2016-02-10T06:18Z Compiled with protoc 2.5.0 From source with checksum cf48a4c63aaec76a714c1897e2ba8be6 This command was run using /usr/hdp/2.4.0.0-169/hadoop/hadoop-common-2.7.1.2.4.0.0-169.jar
二、基础环境配置
1、jdk环境配置
正常步骤,略
2、eclipse环境配置
正常步骤,略
3、下载hadoop-2.7.1.tar.gz文件
文件名:hadoop-2.7.1.tar.gz
用途:hadoop库,用于支持eclipse编译map/reduce源代码
下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz
4、下载hadoop-2.7.1-src.tar.gz文件
文件名:hadoop-2.7.1-src.tar.gz
用途:hadoop源文件,用于寻找wordcount源程序
下载地址:hadoop-2.5.2-src.tar.gz: http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1-src.tar.gz
5、hadoop-eclipse-plugin-2.7.1.jar
文件名:hadoop-eclipse-plugin-2.7.1.jar
用途:eclipse开发hadoop插件
下载地址:http://download.csdn.net/detail/tondayong1981/8889075
6、下载winutils for hadoop-2.7.1组件
文件夹名: winutils-masterhadoop-2.7.1
用途:我也不知道,反正如果没有的话,就不能连接Hadoop跑程序
下载地址:https://github.com/steveloughran/winutils
三、编辑环境变量
1、添加环境变量
1)添加HADOOP_HOME,值为:目录名hadoop-2.7.1
PS:hadoop-2.7.1目录为hadoop-2.7.1.tar.gz解压后的文件夹名称。
2)追加环境变量path内容:%HADOOP_HOME%/bin
2、添加eclipse组件
将hadoop-eclipse-plugin-2.7.1.jar复制到eclipseplugins目录下
四、eclipse配置
1、打开菜单Window--Preference--Hadoop Map/Reduce进行配置,如下图所示:
2、显示Hadoop连接配置窗口:Window--Show View--Other-MapReduce Tools,如下图所示:
3、在打开的Map/Reduce Locations中连接Hadoop
Map/Reduce Master与DFS master的IP、端口信息可以查看Hadoop服务器上的core-site Hadoop配置文件。
PS:博主是通过Ambari安装的Hadoop,所以在Ambari管理面板上直接查看即可。
如果连接成功,则应为:
五、Hadoop集群环境创建wordcount测试文件
1、在HDFS上创建输入文件夹input
2、在本地创建测试输入文件
3、上传测试文件到HDFS
PS:博主的input目录的完整路径为:/user/hadoop/input
六、在eclipse创建Map/Reduce Project
1、新建项目
点击File--New--Other--Map/Reduce Project 命名为HadoopTest
2、新建WordCount.java文件
文件内容从:hadoop-2.7.1-srchadoop-mapreduce-projecthadoop-mapreduce-examplessrcmainjavaorgapachehadoopexamplesWordCount.java
直接复制即可
3、创建log4j.properties文件
在src目录下创建log4j.properties文件,内容如下:
log4j.rootLogger=debug,stdout,R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=mapreduce_test.log log4j.appender.R.MaxFileSize=1MB log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n log4j.logger.com.codefutures=DEBUG
七、Windows运行环境配置
从winutils-masterhadoop-2.7.1目录中直接拷贝bin文件夹,覆盖掉hadoop-2.7.1/文件夹中的bin目录即可。
八、运行Project
1、在eclipse中点击WordCount.java,右键,点击Run As—>Run Configurations,配置运行参数,即输入和输出文件夹
hdfs://192.168.2.50:8020/user/hadoop/input hdfs://192.168.2.50:8020/user/hadoop/output44
2、Debug
1)点击Debug进行调试
2)点击Debug标签,打开Debug详情页
3、查看运行结果
九、异常与问题
1、DFS中文件不能打开,提示:Editor could not be initialized
如图:
解决方法:winutils组件版本不对,更新了2.7.1对应版本,问题解决。
2、HDFS权限问题
百度即可
-
参考资料
http://www.cnblogs.com/huligong1234/p/4137133.html
http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html