搭建环境:单机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编译、安装和测试的更多相关文章

  1. hadoop2.1.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  2. hadoop2.1.0和hadoop2.2.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  3. Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

      本文Blog地址:http://www.cnblogs.com/fesh/p/3766656.html   本文对Hadoop-2.2.0源码进行重新编译(64位操作系统下不重新编译会有版本问题) ...

  4. 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. ...

  5. 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 ...

  6. Valgrind 3.11.0编译安装

    Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...

  7. CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享

    一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  8. Qt5.3.0的安装与测试

    Qt5.3.0的安装与测试(交叉编译,用于arm,支持tslib触摸屏) 本次移植可以使用触摸屏. 首先下载源码包: http://download.qt.io/official_releases/q ...

  9. Redis 3.0 编译安装

    Redis 3.0 编译安装 http://www.xuchanggang.cn/archives/991.html

随机推荐

  1. 有关C#中的引用类型的内存问题

    对于一个类,如果定义后(记作对象a),将另外一个对象b直接赋值(“a = b”)给它,则相当于将地址赋值给了这个对象.当另外一个对象b不再对这块地址应用时,a由于对这块地址仍在使用,这块地址的指向的栈 ...

  2. JavaScript字符串转换日期

    JavaScript字符串转换日期 方法1:function strToDate(str){   var val=Date.parse(str);   var newDate=new Date(val ...

  3. SignalR web实时同步 消息推送 广播

    源码:https://github.com/SignalR/SignalR demo:http://download.csdn.net/download/qq_21533697/9702791#com ...

  4. js 的eval()方法 计算某个字符串,并执行其中的的 JavaScript 代码;

    定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 Java ...

  5. ELK 日志管理系统,再次尝试记录

    简介: 第二次尝试 ELK 记录... 工作流程: 1.客户端的 Logstash 将日志信息采集到之后传输给 Redis 做消息队列 2.然后服务端的 Logstash 将日志从 Redis 中取出 ...

  6. 【311】Python 构建 ArcMap 标注表达式

    参考:构建标注表达式(官方帮助) 参考:计算字段示例(官方帮助) 说明:以上两者的方法略有不同,一个是通过字段表达式显示标注,一个通过字段计算新的字段,使用的工具方法也不同,前者通过 Layer.la ...

  7. EF中关系映射问题

    一对一,和一对多的简单问题就部说了,直接来多对多这样的问题吧. 首现关系映射为这样的: /// <summary> /// 对应数据库中dbo.Address表 /// </summ ...

  8. 关于解决 请求被中止:无法建立SSL / TLS安全通道

    我使用HttpWebRequest访问其他网站时,出现"请求被中止:无法建立 SSL / TLS安全通道"错误,于是goog和百度了一番,提供的答案基本 是:ServicePoin ...

  9. Java字符串与文件的互转操作

    Java中有时候需要读取一个文本类的文件,将其转换为字符串,然后做进一步处理.Java中没有现成的API方法.   一.字符串转换为文件 /** * 将字符串写入指定文件(当指定的父路径中文件夹不存在 ...

  10. 3D数学基础 KeyNote 1

    [计算几何复习要点] 1.向量加法的几何含意: a+b的释意为:a的尾连上b的头,新建一条从a的尾指向b的头的向量. 2.向量减法的几何含意: a-b的释意为:尾部相连,新建一个从b的头指向a的头的向 ...