hadoop 多节点安装
建立一个4台服务器的hadoop集群,4台服务器ip和对应的主机名分别为:
192.168.40.240:dm1
192.168.10.147:dm2
192.168.40.242:dm3
192.168.40.239:dm4
其中dm1为namenode,另外3台为datanode。
版本: hadoop-0.20.203.0
准备:
一、安装JAVA
下载:jdk-6u27-linux-i586.bin
分别在4台机器下安装:
1、在usr下面新建一个文件夹Java,然后将jdk复制过来
sudo mkdir /usr/Java
sudo cp jdk的路径 /usr/Java
2、进入到Java目录下,改变文件权限为可执行
cd /usr/Java
sudo chmod u+x jdk1.6.0_23.bin
3、执行安装
sudo ./jdk1.6.0_23.bin
(现象为Unpacking....加一连串解压信息)
4、配置环境变量
vim /etc/profile
增加内容
export JAVA_HOME=/usr/java/jdk1.6.0_27
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5、验证需要重新登陆
java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)
二、 创建一个名为hadoop的用户和用户组
分别在4台机器下面操作:
1、创建一个名为hadoop的用户组
addgroup hadoop
2、创建一个名为hadoop的用户,归到hadoop用户组下
adduser --ingroup hadoop hadoop
3、修改sudo文件
vim /etc/sudoers
在 root ALL=(ALL) ALL 下面添加
hadoop ALL=(ALL) ALL
目的:让 hadoop用户可使用sudo命令
4、配置dm1 namenode 的/etc/hosts增加
192.168.40.240 dm1
192.168.10.147 dm2
192.168.40.242 dm3
192.168.40.239 dm4
5、其他机器的/etc/hosts同样增加(有文档说只要slave识别master即可。不管了,都配)
192.168.40.240 dm1
192.168.10.147 dm2
192.168.40.242 dm3
192.168.40.239 dm4
三,安装hadoop
1、在DM1 namenode上安装hadoop,配置完配置文件后直接把目录COPY到其他3台就OK,
将下载的压缩包解压到安装目录下即可,把hadoop 的安装路径添加到环境变量/etc/profile 中
export HADOOP_HOME=/usr/hadoop/hadoop-0.20.203.0
export PATH=$HADOOP_HOME/bin:$PATH
2、编辑3个重要的配置文件:
root@dm1:/usr/hadoop/hadoop-0.20.203.0/conf# cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value> hdfs://192.168.40.240:9000 </value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value> /home/hadoop/tmp/hadoop-${user.name} </value>
</property>
</configuration>
root@dm1:/usr/hadoop/hadoop-0.20.203.0/conf# cat hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name </value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data </value>
</property>
<property>
<name>dfs.replication</name>
<value>2 </value>
</property>
</configuration>
root@dm1:/usr/hadoop/hadoop-0.20.203.0/conf# cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.40.240:9001 </value>
</property>
</configuration>
3、配置namenode的conf/masters 和conf/slaves 文件
masters:
dm1
slaves:
dm2
dm3
dm4
至此,hadoop的配置已经完成 ,COPY到其他机器即可
4、将在namenode机器上配置好的hadoop部署到datanode机器上
scp -r /usr/hadoop/hadoop-0.20.203.0/ root@dm2:/usr/hadoop/
scp -r /usr/hadoop/hadoop-0.20.203.0/ root@dm3:/usr/hadoop/
scp -r /usr/hadoop/hadoop-0.20.203.0/ root@dm4:/usr/hadoop/
1、回到DM1格式化和启动(后面的操作都在OS 的hadoop用户下):
hadoop@dm1:/usr/hadoop/hadoop-0.20.203.0$ bin/hadoop namenode -format
hadoop@dm1:/usr/hadoop/hadoop-0.20.203.0$ bin/start-all.sh
2、dm1检查启动进程:
hadoop@dm1:/usr/hadoop/hadoop-0.20.203.0$ jps
5944 Jps
5477 NameNode
5744 JobTracker
5665 SecondaryNameNode
其他机器:
hadoop@dm2:~$ jps
4986 DataNode
5125 TaskTracker
5203 Jps
/etc/hosts 不要使用127.0.1.1或localhost
启动和维护在hadoop用户下
用ssh-keygen打通四台机器的无密登录.
http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html
http://vampire1126.iteye.com/blog/891693
http://hi.baidu.com/jadmin/blog/item/80a590eceaac693c63d09f31.html
http://shirley-ren.iteye.com/blog/1174622