分享

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开发方式,
一种是采用命令行编译: javac  test.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包,我们添加的就是这些个相关的包。



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

(1)hadoop文件夹下面的包
这个包的内容,以开发hdfs为例,首先我们解压hadoop包,会形成一个文件夹,这里我们称之为hadoop文件夹。我们找到这个文件夹之后,下面有相应的包,如下图2:

图2



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


    图3
3.引用成功
当我们单击图1,ok按钮时,我们就会看到项目出现了外部包如图4所示。


    图4

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

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

注意的这种开发方式运行采用的是:run as java  application
有的同学在使用上面开发方式的时候遇到了问题,这里补充一下: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
做如下修改:
  1. //import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
  2. import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;
复制代码

修改完毕后在hadoop目录执行ant package重新打包eclipse插件。

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

插件配置与使用
指定Hadoop安装目录


打开Map/Reduce视图
”Window”->”Open Perspective”->”Other”->“Map/Reduce”.
“Window”->”Show views”->”Other”->”Map Reduce Tools”->”Map/Reduce locations”.


新建 Hadoop location


DFS视图浏览文件

运行MapReduce作业

查看运行结果



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

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










来自群组: Hadoop技术组

已有(45)人评论

跳转到指定楼层
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 也可以正常运行
回复

使用道具 举报

12345下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条