经过几天尝试,终于在两台电脑上搭成Hadoop的全分布平台,现在将过程梳理如下(由于是初次尝试,搭建过程不考虑系统性能问题):
一:机器:家用台式电脑A,家用台式电脑B
操作系统:Ubuntu-11.10
JDK版本:jdk-7u4-linux-i586
Hadoop版本:hadoop-0.19.2
A机器作为master,运行namenode,jobtracker,secondarynamenode进程;B机器作为slaves,运行datanode,tasktracker进程。两台机器安装的JDK,Hadoop版本相同。
二:A机器主要文件的配置:
1./etc/hosts文件中为两台机器设置主机名和IP地址的映射,按原文件格式添加如下:
#for hadoop
172.16.4.96 hadoop1
172.16.4.69 namenode jobtracker
2.hadoop配置文件/usr/local/hadoop-0.19.2/conf/hadoop-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!-- core-site.xml-->
<property>
<name>fs.default.name</name><!--运行namenode的主机-->
<value>hdfs://namenode/</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name> <!--hadoop生成的各种文件存放路径-->
<value>/home/hado/tmp</value>
<final>true</final>
</property>
<!-- hdfs-site.xml-->
<property>
<name>dfs.replication</name><!--集群中文件副本数 -->
<value>1</value>
</property>
<!--mapred-site.xml-->
<property>
<name>mapred.job.tracker</name><!--指定运行jobtracker的主机-->
<value>jobtracker:8021</value>
<final>true</final>
</property>
</configuration>
3.hadoop配置文件/usr/local/hadoop-0.19.2/conf/masters:
该文件逐行记录拟运行辅助namenode即secondarynamenode进程的机器的主机名或者ip地址。
namenode
即在namenode机器上运行辅助namenode。
4.hadoop配置文件/usr/local/hadoop-0.19.2/conf/slaves:
该文件逐行记录拟运行datanode和tasktracker的机器的主机名或者IP地址。
hadoop1
即在B机器上运行数据节点和任务节点。
A机器文件配置完毕,接下来要将A中的配置文件分发到集群中其他机器,也就是B机器^o^。需要分发的文件有hosts,hadoop-site.xml,slaves。如果文件没有分发,会造成datanode和tasktracker报错无法启动。
三:配置完毕,可以按如下步骤启动hadoop:
进入hadoop目录,格式化namenode:bin/hadoop namenode -format
启动namenode,datanode,jobtracker,tasktracker等:bin/start-all.sh
关闭启动的所有进程:bin/stop-all.sh
四:JDK,HADOOP,SSH的安装过程不再叙述。希望本文给还在纠结hadoop的配置的同学些许帮助,让大家共同进步!