pig2 发表于 2014-2-21 01:10:09

hadoop开发方式总结及操作指导

本篇亦为学习hadoop----java零基础学习线路指导(3)第三篇,想学习hadoop,没有Java基础,可以查看下面两节内容:


学习hadoop----java零基础学习线路指导视频(1)

学习hadoop---Java初级快读入门指导(2)



本文为操作指导

1.如何引用外部包?
2.使用插件开发端口如何设置?


如果你已经比较熟悉了,可以思考:
1.hadoop脱离集群开发,加入外部包的作用是什么?
2.Hadoop eclipse plugin的作用是什么,自己能否设计一个Hadoop eclipse plugin,该如何开发和设计?



在我们的传统开发中,一般都是有一定的开发工具。比如.net,直接使用visual Studio开发环境,开发程序直接运行,剩下的事情不用管了。
但是Java开发,我们知道最起码可以分为两种常用的开发。
其实其他的语言也可以使用这两种语言,但是Java的这两种方式,用的人更多一些。
这里讲Java开发方式,
一种是采用命令行编译: javactest.java
一种开发工具编译:用eclipse 等开发工具,直接右键run as -->java Application如果不了解可以查看
学习hadoop---Java初级快读入门指导


那么对于hadoop也有两种方式:
一、一种是脱离集群环境的开发:
那么什么是脱离集群环境开发,因为集群也是有一个Java环境的。如果我们编写程序,脱离了集群,那么就是脱离集群开发。可能说到这里,大家还是有点不太明白。
好吧,现在开始上图。

1.添加外部包

当我们建立一个普通Java项目之后,我们单击HDFS-》属性。会弹出右侧属性窗口,属性窗口弹出之后,我们找到Java Build Path,(这时候libraries是空的),我们单击Add External JARs.后面图中没有显示。Add External JARs的意思是添加外部包,什么是外部包,hadoop是由Java程序开发的,所以它会相应的Java包,我们添加的就是这些个相关的包。

http://www.aboutyun.com/data/attachment/album/201402/20/234947d0555mfmjmwgzfhm.jpg

                                                                                                   图1
2.那么我们选择的是与集群相应的hadoop包。

(1)hadoop文件夹下面的包
这个包的内容,以开发hdfs为例,首先我们解压hadoop包,会形成一个文件夹,这里我们称之为hadoop文件夹。我们找到这个文件夹之后,下面有相应的包,如下图2:
http://www.aboutyun.com/data/attachment/album/201402/21/002645yxflx92n6xytlwu2.jpg
图2



(2)lib文件夹的包
还有一些依赖包如下图3,打开下面lib文件夹,会看到.jar文件,把里面的包都引用进来。
都引用完毕之后,我们会在图1中会看到很多的jar包,这时候,我们就引用成功了。

http://www.aboutyun.com/data/attachment/album/201402/21/001936x1x985855gg6kg9v.jpg
    图3
3.引用成功
当我们单击图1,ok按钮时,我们就会看到项目出现了外部包如图4所示。
http://www.aboutyun.com/data/attachment/album/201402/20/234948etpt21si3s7spz70.jpg

    图4

总结:
上面因为我们是新手,所以引用了这些包,引用这些包的目的是利于开发。如果不引用这些,对于高手,照样可以开发。这里,你可能还是不太明白,这里建议同学先这样做,等时间长了,自己就会琢磨过来的。

上面准备完毕,我们就可以开发了。开发完毕,我们所做的是必须必须打个Jar包,然后再用上面的命令提交到Hadoop Cluster上去运行

注意的这种开发方式运行采用的是:run as javaapplication
有的同学在使用上面开发方式的时候遇到了问题,这里补充一下:windows eclipse运行mapreduce遇到权限问题该如何解决

二、一种远程连接集群开发:


目前比较方便的方法就是用Hadoop eclipse plugin,可以浏览管理HDFS,自动创建MR程序的模板文件,最爽的就是直接Run on hadoop了。
那么这个该如何配置:
这里引用:
下面帖子
hadoop开发方式之一:利用插件开发指导

引言
在开发调试过程中,需要将程序打包,运行任务后通过命令或web界面查看运行输出及job运行情况,这个比较繁琐,下面介绍的eclipse插件可以简化这个过程,方便调试。
插件安装
Hadoop的eclipse plugin跟hadoop发行版一起分发,到hadoop安装目录\ contrib\eclipse-plugin下可以找到该插件。在试用过程中发现不支持eclipse 3.5,因此要在eclipse3.5及以上版本运行,需要做个修改。修改方法如下:
编辑:src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch\
HadoopApplicationLaunchShortcut.java
做如下修改://import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;
修改完毕后在hadoop目录执行ant package重新打包eclipse插件。

将修改后的插件拷贝到eclipse\dropins\hadoop\plugins目录下完成安装。

插件配置与使用
指定Hadoop安装目录
http://www.aboutyun.com/data/attachment/forum/201510/25/173146ekcfc45zf5ujkjml.jpg

打开Map/Reduce视图
”Window”->”Open Perspective”->”Other”->“Map/Reduce”.
“Window”->”Show views”->”Other”->”Map Reduce Tools”->”Map/Reduce locations”.
http://www.aboutyun.com/data/attachment/forum/201510/25/173146q5b9g9b8wr66a855.jpg

新建 Hadoop location
http://www.aboutyun.com/data/attachment/forum/201510/25/173147uad5gntd7fvwsszp.jpg

DFS视图浏览文件
http://www.aboutyun.com/data/attachment/forum/201510/25/173148kn55e2zjud9e5gjr.jpg
运行MapReduce作业
http://www.aboutyun.com/data/attachment/forum/201510/25/173149jg9hzr8hwgr8ub1u.jpg
查看运行结果
http://www.aboutyun.com/data/attachment/forum/201510/25/173150pkcke7xdy1299dez.jpg


上面这种方式,是直接远程连接集群的开发。
注意的这种开发方式运行采用的是:run on haoop

三、总结
对于上面两种方式,新手可能第一种感觉更适应,因为不需要懂得hadoop的相关配置,只需要引用外部包就可以了。但是面对生产环境,这是非常繁琐的。刚开始,同学们可以选择自己喜欢的方式。或则两种方式都可以尝试一下。










Hadoop技术组

GeneralJing 发表于 2014-2-21 11:29:56

这个理解还有点困难,估计是动手少

pig2 发表于 2014-2-21 12:05:31

GeneralJing 发表于 2014-2-21 11:29
这个理解还有点困难,估计是动手少

恩,主要是开发环境先熟悉一下。这样就好多了

丿風塵⊙傷 发表于 2014-3-14 16:19:29

这个理解还有点困难,估计是动手少

Victor-Shy 发表于 2014-4-5 15:57:51

不是说hadoop新手一开始不建议用Eclipse的hadoop插件吗?

2278 发表于 2014-7-10 17:48:08

我在本机无法telnet 通测试环境的hadoop mr master跟dfs master 端口 测试机端口已开。防火墙关了。 其他端口通。。eclipse 无法连上啊

hyj 发表于 2014-7-10 17:50:25

2278 发表于 2014-7-10 17:48
我在本机无法telnet 通测试环境的hadoop mr master跟dfs master 端口 测试机端口已开。防火墙关了。 其 ...

参考:
eclipse运行出现 Call From to master:8020 failed on connection exception:



ReleaseMe 发表于 2014-8-14 16:21:19

呵呵,不错哦

kakapengV587 发表于 2014-9-12 22:16:58

我用的hadoop实验版本 是 hadoop-2.2.0 的,在myEclipse上已经可以正常的查看DFS 文件,但是每次run on hadoop 的时候都会在 job.waitForCompletion(true) 这报空指针异常,请问这个是不是跟配置的有关系

kakapengV587 发表于 2014-9-12 22:19:03

kakapengV587 发表于 2014-9-12 22:16
我用的hadoop实验版本 是 hadoop-2.2.0 的,在myEclipse上已经可以正常的查看DFS 文件,但是每次run on had ...

用命令运行WordCount 也可以正常运行
页: [1] 2 3 4 5
查看完整版本: hadoop开发方式总结及操作指导