准备工作:配置好两台以上能免密码ssh访问的Linux服务器;下载好jdk和hadoop-1.2.1-bin.tar.gz;确保iptables、selinux等防火墙已关闭
1、解压jdk
$tar -xzvf jdk-7u71-linux-i586.tar.gz
#将解压出来的jdk文件转移到usr目录下,也可以不转移,后面通过环境变量配置到相应的目录即可
$mv ./jdk1.7.0_71 /usr
2、解压hadoop,配置hadoop
$tar -xzvf hadoop-1.2.1-bin.tar.gz
#进入到hadoop-1.2.1下面的conf目录下
$cd hadoop-1.2.1/conf
#配置环境变量 java_home
$vi hadoop-env.sh
#只修改这一行即可
export java_home=/usr/jdk1.7.0_71
#修改core-site.xml
$vi core-site.xml
<configuration>
#自定义namenode的主机名 master.haddop,可以自定义,也可以是IP地址,如果是名称,需要修改hosts
<property>
<name>fs.default.name</name>
<value>hdfs://master.hadoop:9000</value>
</property>
#指定hadoop的临时路径,如果不指定使用默认路径,重启hadoop后tmp目录会被清空
<property>
<name>hadoop.tmp.dir</name>
<value>/home/sweet/hadoop-1.2.1/tmp</value>
</property>
</configuration>
#修改hdfs-site.xml
$vi hdfs-site.xml
<configuration>
#指定复制因子,因为是实验环境,只用了一个datanode
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
#修改mapred-site.xml
$vi mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master.hadoop:9001</value>
</property>
</configuration>
#修改masters
$vi masters
master.hadoop
#修改slaves
$vi slaves
slave.hadoop01
#修改hosts,增加IP到名称的解析,需要登录有相应修改权限的用户操作,其它datanode上的hosts也要作相同修改
$vi /etc/hosts
#增加下面两条
192.168.1.100 master.hadoop
192.168.1.101 slave.hadoop01
#可以分别在几台服务器上ping相应的名称试试有没有成功
3、将配置分发到各datanode,有多少个datanode就复制多少份,服务器之间需要能够SSH免密码连入
#先切换到用户目录下 /home/sweet
$scp -r ./hadoop-1.2.1 sweet@192.168.1.101:/home/sweet
#格式化名称节点
$cd hadoop-1.2.1
$bin/hadoop namenode -format
#启动hadoop,如果没有配置本机到本机ssh免密码访问,这里会不断提示输入密码
$bin/start-all.sh
#验证hadoop是否启动
$/usr/jdk1.7.0_71/bin/jps
#master上面应该有NameNode, JobTracker, SecondaryNameNode三个进程
#slave上面应该有DataNode, TaskTracker两个进程
到这里,hadoop 1.X就部署完成了。
来源:oschina
链接:https://my.oschina.net/u/144859/blog/359947