设为首页 收藏本站
查看: 1838|回复: 0

[经验分享] Windows下使用Eclipse搭建Hadoop开发环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-26 09:15:48 | 显示全部楼层 |阅读模式
写在文章之前。。。。。。
    写文章一方面是为了记录在学习和实践的过程中遇到的问题以及对应的解决方法,二是回顾梳理知识,加深理解。初学Hadoop,对其中的很多的设计原理和思想还不甚理解,因此文章中对于Hadoop的知识点表述不正确的地方,还望大神能够予以指正。


    ===================================华丽的分割线======================================


    本文的目的是使用Eclipse搭建Hadoop开发环境

    环境说明与准备:

    • 一个已经搭建好的Hadoop集群
    • 32位 Windows 7
    • jdk 1.7
    • Eclipse 4.3
    • hadoop-2.5.2(Windows 7下使用)
    • hadoop-eclipse-plugin-2.6.0
包含插件hadoop-eclipse-plugin-2.6.0.jar和32位和64位的winutils.exe和hadoop.dll的压缩包的下载地址:百度云附件:Windows7下使用Eclipse搭建Hadoop开发环境.zip   
    第一步:配置Hadoop环境变量,与jdk环境变量的配置基本类似

    把下载的hadoop-2.5.2解压到D盘的根目录下,然后计算机==》属性==》高级系统设置==》环境变量
HADOOP_HOME:D:hadoop-2.5.2
wKioL1URDVnyHhkjAAQtIasHhRU372.jpg

    编辑PATH变量,添加:;%HADOOP_HOME%in。

    第二步:安装Eclipse插件

    把hadoop-eclipse-plugin-2.6.0.jar放到eclipse==》plugins目录下面,重启Eclipse,打开Window==》Preferences,能够看到Hadoop Map/Reduce就是插件安装成功,下面指定Hadoop的安装目录即第一步设定的HADOOP_HOME。
wKiom1URD6ejQ_GHAARR1Z20CVE290.jpg

    第三步:新建Map/Reduce Project工程

wKioL1URFOmTRxXZAAGckwIJbSM543.jpg
    输入工程名称,然后点击Finish按钮

wKioL1URFOqC7If5AAJVTe3BoWk339.jpg
    可以看到如下图所示,可以看到有新建的工程还有自动生成的DFS Locations,此时点击DFS Locations什么都不会看到,因为还没有配置其相应的HDFS:

wKioL1URFduytDIoAAHKwjuBjBI567.jpg

    第四步:显示Hadoop的Map/Reduce Locations视图,配置Hadoop Locations
    Window==》Show View==》Other,找到Map/Reduce Tools下的Map/Reduce Locations,并点击ok。
wKioL1URE5bDhaS4AADdRCrpzt8511.jpg
    可以在下面看到Map/Reduce Locations,并New Hadoop Locations
wKioL1URGeSgJCvXAACTiOjQxFM803.jpg
    设置下面几个参数:

    wKioL1URHTbAoA0VAAKEIbjBeQ0071.jpg
    Location name:起一个名字,这里是hadoopLocation;
    ---------------我对hadoop的配置文件还没完全理解,下面是引用自别人的链接------------

Map/Reduce Master 部分相关定义:

Host:JobTracker所在的机器的IP地址

port:JobTracker的端口

两个参数就是 mapred-site.xml中mapred.job.tracker的ip和端口

DFS Master部分:

Host:就是上一节集群搭建中Namenode所在机器IP

Port:就是namenode的端口

这两个参数是在 core-site.xml里fs.default.name里面的ip和端口

---------------------------------------------------------------------------------

    下面根据我测试的结果,说说我的理解,不一定对。

        端口号一定要与自己的hadoop集群的配置文件一致

        Map/Reduce(V2) Master


    • Host:hadoop集群中的任何一个节点都是可以的,用来做Map/Reduce计算用的;我这里hadoop集群中有4台机器,我在这个配置中,写任何一个节点程序都是可以正常运行的,所以我认为这个可以是hadoop集群中的任何一个节点就可以。但是不建议使用master节点,因为master节点压力过大的话,master一旦挂掉,整个集群都down了,所以不要给master计算的压力。
    • Port:该节点的对应的JobTracker的端口
DFS Master
  • Host:只能是hadoop集群的Master节点,即定义在core-site.xml中的fs.default.name中的value来体现的,例如hdfs://192.168.3.57:8020;这里host就是192.168.3.57,队友的port就是8020
Port:上面已做说明
    如果上面配置都正确的话,此时可以打开Project Explorer中的DFS Locations,可以查看hdfs中的文件,并对文件进行增加,删除操作。
wKiom1URJj_Dgr1WAAHUj3T99tU037.jpg

    第五步:编写Map/Reduce程序,测试运行。这里使用hadoop自带的例子WordCount进行测试,直接把代码放到WordCount工程中的src目录下,设置运行参数,Run As==》Run Configuration,设置Arguments, 因为WordCount需要两个参数,一个是统计哪个目录下的文件中出现的词,一个是统计结果存放的地方

wKioL1URKh2z8NYxAAQO-VVZRCQ173.jpg

    此时运行程序,你将看到如下运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NullPointerException
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1010)
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)
    at org.apache.hadoop.util.Shell.run(Shell.java:455)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:702)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:791)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:774)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:646)
    at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:434)
    at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:281)
    at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:125)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:348)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
    at WordCount.main(WordCount.java:70)



    上面的提示信息是log4j没有配置导致的。但是出现上面的错误,是因为在Windows下运行Map/Reduce程序需要winutils.exe和hadoop.dll的支持,这两个文件在我上面给出来的下载链接里面都有,需要根据系统位数的不同,选择32位或者64位的,然后拷贝上面两个文件放到HADOOP_HOME/bin目录下,然后拷贝hadoop.dll到C:WindowsSystem32目录下,做完上面的工作时候,再次运行WordCount。还是会看到log4j的提示信息,但是没有关系,此时可以查看统计结果。
1
2
3
4
5
6
7
8
9
10
11
$ hadoop fs -cat output/*
Goodbye 1
Hadoop  1
This    1
file    2
goodbye 1
hadoop  4
hello   1
is      2
test    2
this    1




    下面把我的测试的输入文件给贴出来:
test.txt

1
2
3
4
5
this is hadoop test file
This is hadoop test file
Goodbye Hadoop

goodbye hadoop



testHadoop.txt
1
hello hadoop



    可以结合测试文件,与统计结果做比较,说明已经可以成功的在Eclipse下运行Hadoop程序。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-50646-1-1.html 上篇帖子: Hadoop安全性 下篇帖子: Hadoop调试源代码 Windows 下载地址 分割线 压缩包 知识点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表