Windows下使用Eclipse工具搭建Hadoop2.6.4开发环境

Windows下使用Eclipse工具搭建Hadoop2.6.4开发环境

循序渐进解析使用Eclipse工具搭建hadoop2.6.4开发环境的步骤,理解配置的缘由。

1.下载插件包

下载插件包hadoop-eclipse-plugin-2.6.4.jar,或者自己编译hadoop插件Windows下使用Ant编译hadoop-eclipse-plugin-2.x插件
拷贝插件到eclipse安装目录下的plugins目录
拷贝到plugins目录下

2.下载Hadoop

下载Hadoop,这里选择2.6.4版本,即搭建伪分布式环境的版本

将hadoop-2.6.4.tar.gz文件解压至本地目录下(就是为了配置eclipse用,实际联调的时候,是连接虚拟机上的hadoop2.6.4伪分布式

注:hadoop文件存放目录不要带有空格,不然新建工程时会出现jar包找不到。

3. 启动Eclipse

菜单栏Window -> Preferences,找到Hadoop Map/Reduce选项卡,配置Hadoop installation directory目录,指向hadoop的安装目录
配置hadoop目录

4.打开Map/Reduce Locations

Window -> Show View -> Other -> Map/Reduce Tools
show view
点击mapreducetools

5.新建Hadoop location

右键选择New Hadoop location或点击右边小象图标,配置连接虚拟机上Hadoop伪分布式环境
new连接

6.配置连接虚拟机上Hadoop伪分布式环境

①Location name:可以任意起名,标识一个”Map/Reduce Location”
②Map/Reduce(V2) Master
Host:192.168.1.200(虚拟机的IP地址, 与linux集群的mapred-site.xml文件中配置的一样)
注:Host若不使用IP,使用IP映射的话,那么Windows系统C:\Windows\System32\drivers\etc目录下找到配置文件hosts,编辑增加一行内容
windows下hosts配置
使用IP映射的配置
主机映射配置
Port:9001(与linux集群的mapred-site.xml文件中配置的一样)
③DFS Master
Use M/R Master host:勾上(因为我们的NameNode和JobTracker都在一个机器上)
Port:9000(与linux集群的core-site.xml文件中配置的一样)
IP配置

7.Project Explorer视图显示DFS Locations

配置完成,在Project Explorer视图显示HDFS连接信息,此时显示的信息是hadoop2.6.4伪分布式运行wordcount时的信息
hdfs文件系统

注:Hadoop集群启动了才能连接成功

至此,Hadoop的Eclipse插件已经配置好了。

8.创建Hadoop中的Map/Reduce工程

打开File -> New -> Other,或者右键 -> New -> Other
新建mapreduce工程
选择Map/Reduce Project,输入工程名Project name,点击Finish即可。
此时发现Hadoop相关联的包都引入到工程里,如果Hadoop安装目录有空格,就会出现jar包找不到的情况
error文件路径不能有空格错误

9.运行Hadoop的WordCount源码

9.1src下新建包名

src下新建包名org.apache.hadoop.examples

9.2拷贝WordCount源码

在Hadoop的安装目录下..\hadoop-2.6.4\share\hadoop\mapreduce\sources,找到hadoop-mapreduce-examples-2.6.4-sources.jar,将包下的hadoop-mapreduce-examples-2.6.4-sources.jar\org\apache\hadoop\examples\WordCount.java直接拷贝到新建的包名下,因为包名起的和Hadoop的WordCount源码包名一致,所以不需要修改包名

9.3初次运行

右键Run As -> Run on Hadoop
右键run as

出现log4j的警告,以及WordCount运行需要的参数配置
初次运行log

9.4配置参数

HDFS上导入要统计的文本,可以直接在Eclipse上DFS Locations新建文件夹,上传要统计的文本;也可使用HDFS的shell操作上传文本,生成两个文本文件,注意感叹号后面的空格
> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;
文件下自己输入的单词
上传到HDFS文件系统
上传成功
Eclipse上DFS Locations右键刷新或重连可以看到上传的文件
input上传成功
右键Run As -> Run Configurations,配置WordCount运行的参数Arguments,分别为HDFS输入文件和输出文件
配置好参数close

9.5再次运行

此时Run或使用Run on Hadoop,会报错
报错了
原因是,没有安装补丁。下载hadoop.dll和winutils.exe,将winutils.exe放到Windows中hadoop安装目录的bin目录下,把hadoop.dll拷贝到C:\Windows\System32下面即可。log4j的警告处理:在工程目录的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%  
log4j.logger.com.codefutures=DEBUG  

注:如果没有把hadoop.dll拷贝到C:\Windows\System32下面,会出现Exception in thread “main” java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z错误
没有hadoop.dll报错

9.6此时运行WordCount程序,会出现HADOOP_HOME没有设置以及权限被拒绝的错误

winutil没有设置 null

配置hadoop环境变量:

HADOOP_HOME=F:\data\hadoop-2.6.4
PATH=PATH;%HADOOP_HOME%\bin;

验证Hadoop是否配置成功:
hadoop命令
hadoopversion
注:由于Hadoop依赖于java jdk,所以jdk环境变量需要先配置;另外jdk安装目录也不能有空格,不然会出现JAVA_HOME没有正确设置的错误
jdk安装目录不能有空格
此次运行除了提示HADOOP_HOME没有设置的错误,还会出现权限被拒绝。
权限-不能建文件夹
解决:取消hadoop hdfs的用户权限检查,在集群环境中修改hdfs-site.xml文件,参见hadoop2.6.4伪分布式,增加配置

<property>
    <name>dfs.permissions</name>
    <value>false</value>
    <description>权限关闭</description>
</property>

hdfs-site权限关闭
保存文件后重启集群。

9.7此时再次运行WordCount,会出现下面的错误

winutil没有设置 null
没有设置hadoophome后续报错
由于现在Windows下的配置以及集群的权限都配置好了,这个问题是配置好HADOOP_HOME后,需要重启Eclipse

9.8重启Eclipse后再次运行

如果出现HDFS输出目录已存在,可直接在DFS Locations里右键Delete删除
输出时文件夹已存在hdfsoutput文件夹已存在
运行过后Eclipse控制台运行成功
win下运行成功的截图
本地查看结果正常
本地运行看出结果

此时Windows下Hadoop2.6.4版本的Eclipse开发环境搭建成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值