Hadoop 集群搭建

MrTitan 2012-01-24

集群配置  (用IP配置,不用域名,别名) (注意:最好2台机器,相同的用户名,相同的安装目录。)

192.168.2.79  主(webdev):/home/iic/Hadoop-0.20.2/

192.168.5.11  副 (TEST-A):  /home/iic/hadoop-0.20.2/

192.168.5.12  副 (TEST-B):  /home/iic/hadoop-0.20.2/          (后来新增)

配置2.79的配置文件在conf/slaves文件中列出所有slave的主机名或者IP地址,一行一个。

webdev
TEST-A

TEST-B

5.11,5,12的配置文件conf/masters和conf/slaves在集群配置中没有任何意义。

------------------------------------

192.168.2.79

 

用root登录2.79,创建用户iic (密码iic),把原本属于root用户的hadoop,转为iic

创建用户:useradd iic

修改密码: passwd  iic 

mv /home/bmb/hadoop-0.20.2/  /home/iic

修改conf/*.xml中原来的bmb目录  (hdfs-site.xml),地址为5.11

修改目录权限为iic: chown -R  iic:iic /home/iic/hadoop-0.20.2/

su -l iic

cd /home/bmb/hadoop-0.20.2/

chmod 700 bin/*

打包hadoop,拷贝到5.11

tar cvf hadoop-0.20.2.tar *

scp hadoop-0.20.2.tar  [email protected]:/home/iic/

拷贝2.79的JDK6到5.11

cd /home/bmb/jdk1.6.0_16

tar cvf jdk.tar .

scp jdk.tar [email protected]:/home/iic/

---------------------

192.168.5.11

mkdir hadoop-0.20.2

mv hadoop-0.20.2.tar  ./hadoop-0.20.2

tar xvf hadoop-0.20.2.tar


chmod 777 bin/*

 

cd /home/iic

mkdir jdk1.6.0_16

mv jdk.tar jdk1.6.0_16/

cd  jdk1.6.0_16/

chmod 777 /home/iic/jdk1.6.0_16/bin/

/home/iic/jdk1.6.0_16/bin/java -version

修改conf/*.xml中原来的bmb目录  (hdfs-site.xml),和IP地址为webdev

修改conf/hadoop-env的JAVA_HOME

export JAVA_HOME=/home/iic/jdk1.6.0_16

 

 

删除目录内容

/home/iic/hadoop-0.20.2/hdfs-data

/home/iic/hadoop-0.20.2/hdfs-name

重新格式化不能去掉原来2.79的数据,5.11会出现跟2.79相同的Storage-ID

----------------------------------------------------------------------------------

2.79 SSH passwordless 5.11 问题解决

按照正常步骤,没办法SSH passwordless

用root登录5.11,tail  -f /var/log/secure,发现错误日志:error: Bind to port 22 on 0.0.0.0 failed: Address already in use.

vi /etc/ssh/sshd_config,修改ListenAddress 0.0.0.0 为 ListenAddress 192.168.5.11

重启/etc/init.d/sshd restart,日志显示正常。

重新2.79 ssh 5.11,日志显示bad ownership or modes for directory /u/iic

修改chmod 700 /u/iic,再次登录正常。

--------------------------------------------------

启动集群:

在2.79下运行

cd /home/iic/hadoop-0.20.2

bin/start-dfs.sh

启动后,日志出现错误:

node 192.168.5.11:50010 is replaced by 192.168.2.79:50010 with the same storageID DS-596805328-192.168.2.79-50010-1270801220845

解决方法:

删除5.11/home/iic/hadoop-0.20.2/hdfs-data和/home/iic/hadoop-0.20.2/hdfs-name的内容

当页面出现“LiveNodes  2”时,才表示启动成功。

http://192.168.2.79:50070/dfshealth.jsp

bin/start-mapred.sh

启动后,5.11的hadoop-iic-tasktracker-TEST-A.log日志报错:

2010-04-12 09:59:18,114 ERROR org.apache.hadoop.mapred.TaskTracker: Caught exception: java.net.UnknownHostException: unknown host: webdev

解决方法,在5.11的/etc/hosts里面添加映射

192.168.2.79    webdev

移动数据

bin/hadoop fs -mv /user/root/  /user/iic/

-------------------------------------------

新增192.168.5.12服务器,从5.11拷贝数据

集群中增加机器,而不需要重启集群步骤
1:在2.79的conf/slaves中,新增一行TEST-B

2:在5.12上,cd /home/iic/hadoop-0.20.2

bin/hadoop-daemon.sh start datanode
bin/hadoop-daemon.sh start tasktracker

启动后,Hadoop自动识别。

此步骤可选

在2.79执行bin/hadoop  balancer