hadoop2.2.0编译、安装和测试
搭建环境:单机64位CentOS6.5 、jdk1.6.0_45、Hadoop2.2.0
1、准备编译环境
从http://www.apache.org/dyn/closer.cgi/hadoop/common/上下载的编译好的tar包是32位的,不能用,
否则启动Hadoop时会警告不能加载本地库,导致nodemanager启动不了,必须自己编译Hadoop源码。
在CentOS6.5环境下编译源代码之前,需进行以下准备工作:
1.1 必要的包
yum install svn
yum install autoconfautomake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install gcc*
1.2 安装maven
下载,并解压
http://maven.apache.org/download.cgi 版本需在3.0.2以上;
解压到:/usr/lib/apache-maven-3.2.1
vi /et/profile
export MAVEN_HOME=/usr/lib/apache-maven-3.2.1
export PATH=$PATH:$ANT_HOME/bin
输入一下命令使配置生效:
source /etc/profile
验证:mvn -version
1.3 安装protobuf
下载:https://code.google.com/p/protobuf/downloads/list 该地址很难打开,用代理FQ才行。
请从这里http://download.csdn.net/detail/wenjin_gu/7095597下载。
解压后进入/protobuf-2.5.0
./configure
make
make check
make install
2、编译Hadoop源码
从http://www.apache.org/dyn/closer.cgi/hadoop/common/上下载源码。并确认可以连接互联网(Maven要从代码库下载依赖包)。
新建用户hadoop,并将源码解压到/home/hadoop/下。
在上述目录下编译:mvn package -Pdist,native -DskipTests -Dtar,该过程很耗时,请耐心等待。
可能会报如下错误:
[ERROR] 找不到org.mortbay.component.AbstractLifeCycle的类文件
解决方案:
vi hadoop-common-project/hadoop-auth/pom.xml
在
org.mortbay.jetty
jetty
test
这段之前加一段:
org.mortbay.jetty
jetty-util
test
重新编译:mvn package -Pdist,native -DskipTests -Dtar。
如果你还遇到其他问题,请参考:http://blog.sina.com.cn/s/blog_6baac06c0101gvxr.html
当看到[INFO] BUILD SUCCESS提示信息时表示编译成功完成了。
编译后的路径在:hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0。
3、配置
3.1 修改hostname和hosts
hostname master
vi /etc/hosts
192.168.*.* master
3.2 部署
将编译后的hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0文件夹拷贝到/home/hadoop/hadoop2.2
3.3 修改环境变量
vi /etc/profile
export HADOOP_HOME=/home/hadoop/hadoop2.2
export PATH=$PATH:$HADOOP_HOME/bin
3.4 修改配置文件,进入/home/hadoop/hadoop2.2/etc/hadoop目录
3.4.1 vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_45
3.4.2 vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3.4.3 vi core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.20.50:8020</value>
</property>
</configuration>
3.4.5 vi yarn-site.xml
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3.4.6 vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4、 启动
进入/home/hadoop/hadoop2.2目录
4.1 格式化HDFS
bin/hadoop namenode -format
4.2 启动HDFS
可分别启动NameNode和DataNode
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
也可以同时启动
sbin/start-dfs.sh
4.3 启动YARN
可以分别启动ResourceManager和NodeManager
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
也可以同时启动
sbin/start-yarn.sh
4.4 验证是否成功
jps
7360 NodeManager
9532 SecondaryNameNode
10960 Jps
9253 NameNode
9373 DataNode
8265 ResourceManager
通过web界面查看

注意一般第一栏不会是全0,如果启动过程中出现问题,可通过查看日志发现问题。
或打印调试日志:export HADOOP_ROOT_LOGGER = DEBUG,Console
5、测试
5.1 测试准备
1)创建本地示例文件
首先在"/home/hadoop/hadoop2.2"目录下创建文件夹"file"。mkdir file
接着创建两个文本文件file1.txt和file2.txt,使file1.txt内容为"Hello World",而file2.txt的内容为"Hello Hadoop"
2)在HDFS上创建输入文件夹
在/home/hadoop/hadoop2.2目录下,
[root@master hadoop2.2]# bin/hadoop fs -mkdir /input
3)上传本地file中文件到集群的input目录下
在/home/hadoop/hadoop2.2目录下,
[root@master hadoop2.2]# bin/hadoop fs -put file/file*.txt /input
5.2 运行WordCount程序
以input作为输入目录,output目录作为输出目录。
[root@master hadoop2.2]# bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input/ /output/
查看结果:
[root@master hadoop2.2]# bin/hadoop fs -ls /output
Found 2 items
-rw-r--r-- 1 root supergroup 0 /output/_SUCCESS
-rw-r--r-- 1 root supergroup 25 /output/part-r-00000
[root@master hadoop2.2]# bin/hadoop fs -cat /output/part-r-00000
Hadoop 1
Hello 2
World 1
[root@master hadoop2.2]#
本文结束。
hadoop2.2.0编译、安装和测试的更多相关文章
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- hadoop2.1.0和hadoop2.2.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群
本文Blog地址:http://www.cnblogs.com/fesh/p/3766656.html 本文对Hadoop-2.2.0源码进行重新编译(64位操作系统下不重新编译会有版本问题) ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...
- centos 7.0 编译安装php 7.0.3
php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...
- Valgrind 3.11.0编译安装
Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享
一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- Qt5.3.0的安装与测试
Qt5.3.0的安装与测试(交叉编译,用于arm,支持tslib触摸屏) 本次移植可以使用触摸屏. 首先下载源码包: http://download.qt.io/official_releases/q ...
- Redis 3.0 编译安装
Redis 3.0 编译安装 http://www.xuchanggang.cn/archives/991.html
随机推荐
- swagger报No operations defined in spec!
突然发现项目的swagger报No operations defined in spec! SWAGGER_SCAN_BASE_PACKAGE 路径改变了! package com.redis.con ...
- MongoDB系列[2]:MongoDB导入导出以及数据库备份
PS: 以下所有操作都是基于MongoDB自带的工具进行的,所以操作时一定要手动切换到Mongodb的bin目录下面,并且使用管理员权限运行命令 导出工具 mongoexport 概念: mongoD ...
- Using Mono DLLs in a Unity Project
[Using Mono DLLs in a Unity Project] The path to the Unity DLLs will typically be: 一个生成dll的例子如下: mcs ...
- Unity牛逼的2D纹理功能
[Unity牛逼的2D纹理功能] 1.可直接将贴图生成成为Cubemap. 2.自动生成Mipmap. 3.查看纹理被当前场景哪些对象引用.在Project窗口中,右击图像,选择 参考:file:// ...
- 启动和关闭MySQL服务
停止mysql服务,说来简单,但不知道的话,还真是挠头.在这和mysql入门的同学们共享:) 正确方法是,进入mysql的bin目录下,然后执行./mysqladmin -uroot -p shut ...
- css readonly和disabled的区别
一.前言 要说readonly和disabled的区别,就需要先说说两者的联系: 两个属性都可以作用于input等表单元素上,都使得元素成为“不可用”的状态: 两者的字面意义先介绍一下: readon ...
- 为什么3D模型的网格由很多三角形来组成
因为二点确定一条线,三点确定一个面 网格就是由很多面组成的,四个点也能组成面 但是三个点就足够了
- 《Android Studio实用指南》4.27 使用演示模式
本文节选自<Android Studio实用指南> 第4章第27节 作者: 毕小朋 目前本书已上传到百度阅读, 在百度中搜索[Anroid Studio实用指南]便可以找到本书. 什么是演 ...
- 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容
<?php /************************ * 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容 * 创建时间:2008-12-09 * 创建人:张宴(img. ...
- C 和 CPP 混合代码cmath编译出错
Visual Studio会将cmath内的一些列函数报错 解决方式:项目->属性->配置属性->C/C++ ->高级->编译为->选择编译为C++代码即可