Hadoop 集群搭建
集群配置 (用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