ubuntu14.04的hadoop环境搭建(全分布模式)
hadoop0.20.2软件下载http://pan.baidu.com/s/1kTurQJH
jdk7u71-linux-i586下载http://pan.baidu.com/s/1pJyT1OZ
在搭建集群之前需要作如下准备工作, (博文使用hadoop0.20.203.0作为例子讲解,推荐使用hadoop0.20.2更加稳定,两者配置过程相同)
1 配置好静态IP,并且在所有的机器上建立相同的用户名和密码,这里我的用户名是xuyizhen
参见我的博客http://2710067471.iteye.com/blog/2118385
2 保证所有的系统都安装了ssh,同时所有的节点之间已经实现了无密码登陆
参见我的博客http://2710067471.iteye.com/blog/2145182
3 保证所有的系统都安装了JDK,应该是1.6以上版本
接下来进行hadoop配置:
1 在所有机器上,进入他们的 /etc/hosts 目录,添加所有节点的IP以及名字
我的集群共有三台电脑,因此我的配置如下:
注意,每个电脑的IP和名字占一行
2 在master电脑上,解压位于/home/xuyizhen目录下的hadoop压缩包tar -zxvf hadoop-0.20.203.0.orc1.tar.gz
重命名为hadoop
进入到/home/xuyizhen/hadoop/conf文件夹下:
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xuyizhen/hadoop/tmp</value>
(备注:请先在 /home/xuyizhen/hadoop目录下建立 tmp 文件夹)
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.0.21:9000</value>
</property>
</configuration>
备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
配置hdfs-site.xml文件 ,修改Hadoop中HDFS的配置,配置的备份方式默认为3。
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
(备注:replication 是数据副本数量,默认为3,salve少于3台就会报错)
</property>
</configuration>
配置mapred-site.xml文件 ,修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.0.21:9001</value>
</property>
</configuration>
上面的三个文件修改完毕后保存退出。
接着修改/home/xuyizhen/hadoop/conf/masters文件
添加内容
master(每个名字占一行)
接着修改/home/xuyizhen/hadoop/conf/slaves文件
添加内容
slave1
slave2
保存后退出。(每个名字占一行)
4将/home/xuyizhen/hadoop文件夹复制到其他机器的/home/xuyizhen文件夹下
scp -r /home/xuyizhen/hadoop 192.168.0.22:/home/xuyizhen
scp -r /home/xuyizhen/hadoop 192.168.0.23:/home/xuyizhen
5最后,打开每个机器的/home/xuyizhen/hadoop/conf/hadoop-env.sh文件
在末尾添加当前机器的JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.7.0_71
6 打开xuyizhen用户的.bashrc文件,添加hadoop的环境变量
6至此,Hadoop已经部署完毕,重启所有机器
如果要添加或则删除节点,仅仅需要修改NameNode的Masters和Slaves即可。
7现在,在namenode节点上执行命令:
hadoop namenode -format
start-all.sh
8好了,hadoop已经跑起来了。
在所有机器节点上执行jps命令
master节点显示:(进程号允许不同)
Slave1节点应该显示:
Slave2节点显示:
如上结果,hadoop已经成功安装。
下面进行测试:
在/home/xuyizhen目录下建立文件夹input
mkdir input
进入该文件夹
cd /home/xuyizhen/input
并写入两个文件
echo “hello world” >> 1.txt
echo “hello count” >> 2.txt
将input文件夹导入dfs中
hadoop dfs -put input in
运行wordcount程序
hadoop jar hadoop-examples-0.20.203.0.jar wordcount in out
查看统计结果
Hadoop dfs -cat out/*
注意:可能出现 INFO ipc.Client: Retrying connect to server: /192.168.0.21:9000. Already tried 4 times错误
这是由于/etc/hosts中的内容有误
将其中第二行的master删除后重新运行(注意每个节点都有/etc/hosts)
<!--EndFragment-->
<!--EndFragment-->