Ubuntu中安装配置hadoop 2.6.0并编译运行WordCount
来源:互联网 发布:国外大数据产业园 编辑:程序博客网 时间:2024/05/29 18:33
本篇文章记录了在Ubuntu14.04中安装hadoop 2.6.0的过程(选择Pseudo-Distributed Operation),以及编译执行WordCout. WordCount是一个统计词频的小程序,常常作为Hadoop的示例程序出现.
1安装hadoop2.6.0
网上有很多安装的过程,按着步骤做即可,一般不会出现问题.强烈建议按照官网的Tutorial安装[1].安装步骤如下:
1) 安装java以及配置环境变量
2) 配置Hadoop用户,为了管理方便
useradd -m hadoop
passwd hadoop
3) 下载hadoop-2.6.0
4) 配置SSH,为了结点之间通信不需要重复输入密码(只需第一次登陆时需要)
5) 修改配置文件etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml
6) 设置HDFS
7) 启动hdfs和yarn
8) 运行样例程序,检测安装与配置是否正确
2手动编译运行WordCount程序
如果要使用hadoop2.6.0运行程序,需要知道Hadoop运行程序的过程(和要求),这里只是简单说明,具体内容可查找相关资料. 总得来说,hadoop运行程序需要代码文件(jar文件)和数据文件(或目录),输出内容只需指定输出目录,并且该目录为空目录,非否会报错误.例如我们这里使用的WordCount程序,编译好可运行的jar文件WordCount.jar,输入目录为/user/hadoop/wordcount/input,输出目录为/user/hadoop/wordcount/output,则执行指令为bin/hadoop jar WordCount.jar /user/hadoop/wordcount/input /user/hadoop/wordcount/output. 其中wordCount.jar存放在本地文件系统中,所以地址是本地文件系统的地址,而输入和输出目录为hdfs的目录. 从上述说明可知,hadoop运行程序需要上传数据文件和代码文件,上传数据文件是"显式"上传,即需要使用hdfs的文件系统指令,上传代码文件是"隐式"操作,即通过指令bin/hadoop完成,同时运行程序. 我在hadoop目录下新建了一个文件夹workspace,用于存放wordcount程序.目录格式为hadoop|-------worksapce(wordcount) 1)上传数据可以使用bin/hdfs dfs -put src des或者是bin/hdfs dfs -copyFromLocal src des2)编译可执行java的程序过程如下,使用到的依赖包为hadoop-mapreduce-client-core-2.6.0.jar和hadoop-common-2.6.0.jar,该程序的目录为: workspace(WordCount) |-------src |-------|-------me |-------|-------|-------sl |-------|-------|-------|-------WordCount.java |-------bin |-------|-------me |-------|-------|-------sl |-------|-------|-------|-------WordCount.class |-------META-INF |-------|-------MANIFEST.MF程序的代码放在src目录下,WordCount使用的package为package me.sl;bin目录为了存放编译好的class文件;META-INF存在配置文件,其中MANIFEST.MF为可执行jar文件的配置文件,有一定的格式要求;(1)当程序写好之后,我们使用javac编译,使用的指令为javac -cp ../share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar:../share/hadoop/common/hadoop-common-2.6.0.jar src/me/sl/*..java -d ./bin其中javac 为java的编译指令,-cp表示 -classpath,后边跟的是程序引用的外部jar文件,多个jar文件使用符号:连接,"../share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar:../share/hadoop/common/hadoop-common-2.6.0.jar"分别表示两个jar文件在本地文件系统的绝对位置;src/me/sl/*.java表示需要编译的java文件;-d表示编译输出路径,即编译好的class文件存放在哪里.(2)编写MANIFEST.MF文件,文件内容如下Manifest-Version: 1.0Main-Class: me.sl.WordCount需要注意的是,文件的最后必须有回车换行,即,保留一个空行.(3)打包文件jar cfm WordCount.jar META-INF/MENIFEST.MF me jar表示打包指令 cfm为参数,具体意义可查看指令的使用说明 WordCount.jar表示打包后文件的名字 META-INF/MENIFEST.MF表示配置文件所在位置 me表示需要打包的(class文件)目录(4)如果已经将数据文件上传,则可以上传可执行代码文件并执行,使用指令bin/hadoop jar workspace/bin/WordCount.jar /user/hadoop/wordcount/input /user/hadoop/wordcount/output
3 查看程序的运行结果
bin/hdfs dfs -cat /user/hadoop/wordcount/out/part-r-00000
备注,
如果不使用META-INF/MENIFEST.MF配置文件,也可以运行程序
打包指令为jar cf WordCount.jar me
运行程序时需要显式给出程序的入口地址
bin/hadoop jar workspace/bin/WordCount.jar me.sl.WordCount /user/hadoop/wordcount/input /user/hadoop/wordcount/output
参考
[1]http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html
[2]http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#User_Commands
[3]http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html
[4]http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html
[5]http://www.cloudera.com/content/cloudera/en/documentation/HadoopTutorial/CDH4/Hadoop-Tutorial/ht_wordcount1.html
[6]http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html
[7]http://blog.csdn.net/pleasurelong/article/details/14518667
[8]深入理解大数据-大数据处理与编程实践 2014.8 第一版 黄宜华
[9]http://wiki.apache.org/hadoop/GettingStartedWithHadoop
[10] hadoop命令行编译并运行hadoop例子WordCount http://www.cnblogs.com/zhengyuhong/p/3915605.html
[12] 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1 http://www.powerxing.com/hadoop-build-project-by-shell/
[13] 使用Eclipse编译运行MapReduce程序 Hadoop2.4.1 http://www.powerxing.com/hadoop-build-project-using-eclipse/
另外,如果配置0.20.×,可以参考的连接为
[1]http://snap.stanford.edu/class/cs246-2011/hw_files/hadoop_install.pdf
[2]https://hadoop.apache.org/docs/r1.2.1/single_node_setup.html
[3]http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
- Ubuntu中安装配置hadoop 2.6.0并编译运行WordCount
- 配置Hadoop单机模式并运行Wordcount
- CentOS安装Hadoop并运行WordCount实例
- ubuntu系统下eclipse配置hadoop开发环境并运行wordcount程序
- ubuntu系统下eclipse配置hadoop开发环境并运行wordcount程序
- hadoop-2.6.0如何编译,运行WordCount 程序
- hadoop 2.2.0 编译运行wordcount
- spark学习1——配置hadoop 单机模式并运行WordCount实例(ubuntu14.04 & hadoop 2.6.0)
- Hadoop中运行WordCount
- Fedora 20下Eclipse Ingido中配置hadoop插件,并运行Wordcount例程
- 配置Hadoop伪分布模式并运行Wordcount示例
- 配置Hadoop分布模式并运行Wordcount示例
- Eclipse配置Hadoop环境并运行WordCount样例
- eclipse配置hadoop开发环境并运行WordCount小程序
- Ubuntu 14.04下jdkHadoop2.8集群安装配置教程并运行wordcount实例
- 安装Spark Standalone模式/Hadoop yarn模式并运行Wordcount
- hadoop学习之HDFS(2.1):linux下eclipse中配置hadoop-mapreduce开发环境并运行WordCount.java程序
- ubuntu 安装本地版storm并运行WordCount
- maven打包报错Unable to locate the JavacCompiler in
- 那些年苹果与 USB 的爱恨情仇
- ubuntu下su命令认证失败的解决方法
- C语言中常用计时方法总结
- 专注于javaEE
- Ubuntu中安装配置hadoop 2.6.0并编译运行WordCount
- 使用 Xcode SouceControl 进行代码的版本管理
- CentOS+nginx+uwsgi+Python 多站点环境搭建
- Apache DBUtils使用总结
- 所有顶点之间的最短路径算法:Floyd算法。
- rabbitmq环境搭建--安装
- RFID第三次作业题7—1
- 2013年大一上学期的C++大作业 学生信息管理系统
- 被召者 RC: E_NOINTERFACE (0x80004002) 无法运行virtualBox的完善解决