hadoop在Eclipse下编译运行
更新时间:2023-05-19 20:39:01 阅读量: 实用文档 文档下载
royripple
主页
博客
相册
个人档案
好友
查看文章
相关文章
更多>>
Hadoop项目的运行和部署方式-部署后linux命令行下修改代码操作指南2011-07-20 20:30
使用 Linux和 Hadoop进行分布... Linux下安装Hadoop教程 Linux安装Hadoop使用Cygwin模拟Linux环境安装配... Linux下eclipse中导入hadoop源码 Hadoop系列:在Linux下部署hadoop... linux下基于eclipse的hadoop应用...用 Linux和 Apache Hadoop进行...通过shell在linux上运行hadoop的...[Hadoop] Install Hadoop 0.20 C...
1.项目简介有一个文件,它的每一行都是从某一篇文档中抽取出的词语。而每一行代表一个文档。如下所示:
这个文件在HDFS上的位置:/user/hdp/input/test.假设每一行(每篇文档)内部出现的词语相互之间都是有贡献的,我们希望通过计算着两个词语的互信息来表征两个词语之间的相关度。其实可以简单的这样认为:两个词语一起出现的次数越多,单独出现的次数越少,那么两个词语的相关度就越高。就比如“上推”“自动机”两个词结伴出现的机会很高,而两个词在其他文档中单独出现的概率很低。这两个词的互信息就相当的高。可以很简单的统计出,中国出现了3次,人民出现了2次,而中国与人民结伴出现了2次,总共词语数是28个,根据1.1节的公式,可得
2.项目运行方式2.11. 2. 3. 4. 5. 项目完成编译。
本实例就是要完成用这个输入文件,最后计算出每两个词之间的MI值的过程。开发环境下的运行
项目在开发环境下,是应该可视化的运行,以方便程序员的编程。Eclipse提供了这种便利。
Eclipse在hadoop项目运行的时候,内部帮助我们做了很多事情:把编号的class文件打成jar包,这里也包括第三方jar包也要被打包。交给我们指定的hadoop分布式系统中的master运行。监控hadoop的master各任务完成情况,将得到的调试信息输出在eclipse控制台上。成功后,完成HDFS的更新显示。至此,我们可以看到计算结果。 Eclipse左侧空白处右键单击inport。
Eclipse的hadoop插件配置见上一篇文档。下面就本项目怎么在eclipse里运行做个阐述。
点击Existing Projects into workspace。。。next
从文件系统中找到项目根目录。点击OK
勾选copy选项,然后finish
按下图所示操作:
Open Dialog中配置如下:Apply后
Close
依然空白处右键单击,这次点选Run on HAdoop
选择自己搭好的hadoop平台,finish运行即可
如果eclipse的hadoop开发插件安装正常,而且Hadoop平台正确搭建好了的话,程序将会正确运行,并且生成中间
文件目录,output目录,计算出结果,写入output下。如下图所示:
2.2
部署环境下的运行
Hadoop的部署环境其实是指linux的命令行
环境,因为现在执行计算的服务器大多是linux文本界面。在集群系统中有一台master,这台机器就是我们的部署环境,而且,只需在这台机子上部署即可,hadoop会自己把任务传送给各个slave。部署是什么意思呢?其实从代码编写完到任务可以按照我们的想法在服务器上运行的这段时间都叫部署。我们在部署环境下运行项目,一般的做法是:
在开发环境下(比如eclipse的图形开发界面),将项目编译好,打成jar包。然后传送到master上运行。
注意,传送之前的操作都是eclipse上的操作,对于eclipse开发员来说,其实是很简单的。所以“部署环境下的运行”只要把jar包传送到master,并让它运行即可。一般情况下默认我们已经在master上拿到jar包,并放置在master的HADOOP_HOME中了。特殊情况,比如手头上没有开发环境,就需要自己把源码编译,手工打jar包。这些工作要完成也不简单,但是也不是不能做,如果有必要,请参考第3节。此节详述了怎么在命令行下编译源码,打jar包等操作。那么基于已上假设,我们只需在master上启动我们的hadoop项目即可。操作如下: 首先启动hadoop的各项服务,确保各节点工作正常。为项目运行做准备。第一步:hdp@master:~/hadoop-0.20.2/bin/$ hadoop namenode -format
格式化文件系统,新建一个文件系统。有个问是否覆盖的,输入“
y”即可。
第二步:hdp@master:~/hadoop-0.20.2/bin $ ./start-all.sh启动
hadoop的所有守护进程。
第三步:hdp@master:~/hadoop-0.20.2/$ jps 查看进程,
master虚拟机上的结果如下:其中的JobTracker和NameNode分别是M/R和
hdfs的核心进程。
在slave1 和 slave2 虚拟机上
hdp@slave1:~/hadoop-0.20.2/$ jps
找到jar包,用正确的命令运行
hdp@master:~/hadoop-0.20.2$ hadoop jar mi02.jar input output
出现一连串日志信息,然后去hdfs下查看结果文件,发现没有问题,项目正常运行!
3. 项目部署操作(linux命令行下,修改完源码需重复此操作部署)
2.2节隐藏了源码编译和打jar包的过程,这个过程对于普通的部署人员来说无需了解,但是,如果项目部署过程中为了适应机器,要对代码做小修改,问题就来了,修改后接下来得重新编译,打jar包。这时候有两种做法: 把问题告诉开发程序员,让开发程序员把代码修改后,重新编译,重新打好jar包。再交给自己部署。 自己把代码修改,然后按步骤在命令行上编译,打包。再运行。
两种方法各有优缺点,第一种方法比第二种方法容易,但是第二种方法省事。如果开发员因情况不再参与该项目的话,就只能采取第二种做法。
本节内容就是考虑到项目后期接手的人想改代码,但是只有linux命令行界面时应该怎么做而写。
总体说来就是在命令行下重新完成几个任务:
代码编写(改写)
重新编译新代码
打jar包。
接下来的任务就是2.2节所介绍的内容。
3.1命令行下,对于 javac编译hadoop的master来说,肯定是安装了jdk的。所以支持javac的编译命令。MI项目用于编译的输入文件有两类:1.
源码文件2.
第三方jar包
有了这些文件我们就能完成编译工作。
从工程中拷贝出cn文件夹和lib文件夹。移至/home/hdp/tmp/compile下。
使用javac命令,将该源码和jar包一起编译成class文件。
hdp@master:~/tmp/compile$ javac -classpath lib/commons-cli-1.2.jar : lib/hadoop-0.20.2-core.jar : lib/pinyin4j-
2.5.0.jar cn/ac/ict/roy/*.java
这行命令中的–classpath是指定编译过程中类路径查找,我把编译时要用到的三个jar文件都写在这个参数后,注意使用:(冒号)隔开。
编译结果如下
3.2 1. 2. 3.
完成编译。打jar包编译好的class文件运行时要使用的第三方jar包 META-INF/MANIFEST.MF文件 Manifest-Version: 1.0 Main-Class: cn.ac.ict.roy.MI完成编译之后,就剩下打jar包了。打jar包需要以下3方面的内容:
这里需要解释下META-INF/MANIFEST.MF文件,它其实就是jar包的配置文件。典型的内容如下:
其中的Main-Class是关键。有了它就知道程序从何开始运行。该文件的内容相当固定,每次只需要改写Main-Class即可。好,接下来打jar包的过程如下: 把所需的东西移至某一目录下,比如/home/hdp/tmp/jar下
产生META-INF/MANIFEST.MF文件,并用vi写入内容。
使用jar命令打jar包。
打包前:
打包命令: hdp@master:~/tmp/jar$ jar cvfm mi.jar METE-INF/MANIFEST.MF cn/ lib/打包过程:
打包后:
剩下来的操作就是把mi.jar移到hadoop目录下。然后按照2.2节方式运行。上一篇>>类别:默认分类| Stanford CoreNLP开源项目的3种...下一篇>> Stanford CoreNLP源码在windows...
|添加到搜藏|分享到i贴吧|浏览(152)|评论 ()
网友评论
发表评论
内容:
发表评论
正在阅读:
hadoop在Eclipse下编译运行05-19
2010年北京市高级中等学校招生考试含答案(全word)11-02
传输线路维护人员考试:光缆线路维护模拟考试卷_0.doc05-07
小学四年级书法课精品教案(全册)01-13
关于错别字的手抄报02-20
指导小学生背诵古诗的方法04-19
商业银行信息科技治理建设指导意见(V2.51)(征求意见稿)01-08
人物的外貌描写教案05-02
施工组织设计11-30
发芽作文700字07-11
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 编译
- 运行
- Eclipse
- hadoop
- 揭吃鸡蛋后不能立即吃的5种食物
- 2016年校园安全环境综合治理排查表
- 淘宝客服培训--标准版--经典收藏
- 英国剑桥商务英语证书
- 班组管理制度及考核办法
- 201202严肃干部工作人事纪律的通知
- 红外感应烘手器的设计与制作
- 广西旅游文化产业潜在人力资源供需匹配问题的研究
- 小学学校卫生工作计划模板
- 第五课 走好人生路教案(原创)
- 灵芝的功效与作用 灵芝酒怎么泡 灵芝泡酒配方
- 大一新生学生会工作计划书范文
- 大学生心理健康教育工作计划2021
- 高边坡开挖安全施工方案
- 夏季高温施工防暑降温措施
- 5S及目视管理图片
- 七年级语文竞赛试题附答案(裴吉安)
- 大学团支部2021年工作计划范本
- 传送带问题分析与讨论
- 运用卓越绩效评价准则,提高建筑企业质量管理水平