引文地址:http://www.cnblogs.com/welbeckxu/archive/2011/12/30/2306887.html
接上一篇《ubuntu部署hadoop之伪分布模式》。
安装一个Hadoop集群时,需要专门指定一个服务器作为主节点。
三台虚拟机搭建的集群:(搭建集群时主机名不能一样,主机名在/etc/hostname修改)
master机器:(集群的主节点,驻留NameNode和JobTracker守护进程)
IP:10.1.229.1 机器名:xukangde-01
slaves机器:(集群的从节点,驻留DataNode和TaskTracker守护进程)
IP:10.1.229.2 机器名:xukangde-02
IP:10.1.229.3 机器名:xukangde-03
这三台机器都安装好了hadoop-0.20.2,JDK和ssh。
这三台机器都要编辑/etc/hosts
增加:
10.1.229.1 xukangde-01 10.1.229.2 xukangde-02 10.1.229.3 xukangde-03
SSH Access
master必须能以passless ssh访问slaves
xukangde@xukangde-01:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub xukangde@xukangde-02 xukangde@xukangde-01:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub xukangde@xukangde-03
执行以上的命令都需要输入对方的密码。
完成后,可以在master上分别运行:
xukangde@xukangde-01:~$ ssh xukangde-02 xukangde@xukangde-01:~$ ssh xukangde-03
看是否不需要输入密码,如果不需要则设置正确。
配置
只对于master机器(xukangde-01):
更新conf/masters文件如下:
xukangde-01
更新conf/slaves文件如下:
xukangde-01 xukangde-02 xukangde-03
对于这三台机器:
更新三个配置文件的相关属性
<!-- In: conf/core-site.xml --> <property> <name>fs.default.name</name> <value>hdfs://xukangde-01:9000</value> ------定位文件系统的NameNode </property> <!-- In: conf/mapred-site.xml --> <property> <name>mapred.job.tracker</name> <value>xukangde-01:9001</value> --------定位JobTrecker所在主节点 </property> <!-- In: conf/hdfs-site.xml --> <property> <name>dfs.replication</name> <value>3</value> -----------增大HDFS备份参数 </property>
第一次运行
首先需要Format namenode
(格式化之前最好在所有机器上清空hdfs/data,hdfs/name,以免造成冲突)
在xukangde-01上运行:
xukangde@xukangde-01:~/hadoop$ bin/hadoop namenode -format
开启集群
开启 HDFS daemons
在xukangde-01上运行:
xukangde@xukangde-01:~/hadoop$ bin/start-dfs.sh
开启后,可以在master和slave上运行jps命令,查看开启的daemons
开启MapReduce daemons
在xukangde-01上运行:
xukangde@xukangde-01:~/hadoop$ bin/start-mapred.sh
可以在master和slave上运行jps命令,查看开启的daemons
运行MapReduce Job
在xukangde-01机器上运行WordCount:
首先在dfs中创建input目录
xukangde@xukangde-01:~/hadoop$ bin/hadoop dfs -mkdir input
将conf中的文件拷贝到dfs中的input:
xukangde@xukangde-01:~/hadoop$ bin/hadoop dfs -copyFromLocal conf/* input
运行WordCount
xukangde@xukangde-01:~/hadoop$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output
显示输出结果文件:
xukangde@xukangde-01:~/hadoop$ bin/hadoop dfs -cat output/*
关闭集群
关闭MapReduce daemons
在master上运行:
xukangde@xukangde-01:~/hadoop$ bin/stop-mapred.sh
关闭HDFS daemons
在master上运行:
xukangde@xukangde-01:~/hadoop$ bin/stop-dfs.sh
至此,在ubuntu的hadoop集群所运行的三种模式都已经部署好了。