以一下3台机器为例,进行集群的安装。
节点性质 IP地址 机器名
Master 10.18.11.130 rac1
Node1 10.16.11.253 mos5200app
Node2 10.18.11.159 rac4
HIVE 10.18.11.130 rac1
目前的情况是:前两台机器已经是rac集群。我们要在第三台机器上新搭建一个hadoop的node节点。
1. 给master节点添加机器:修改master的hosts文件
登陆master(130服务器)节点。使用root用户登陆。
vi /etc/hosts
添加如下内容:
10.18.11.159 rac4
2. 修改Node1的hosts文件
登陆Node1(253服务器)节点。使用root用户登陆。
vi /etc/hosts
添加如下内容:
10.18.11.159 rac4
3. 修改Node2的hosts文件,添加其他服务器
登陆Node2(159服务器)节点。使用root用户登陆。
vi /etc/hosts
添加如下内容:
10.18.11.130 rac1
10.16.11.253 mos5200app
10.18.11.159 rac4
4. 给Node2节点添加hostname文件
登陆Node2节点。使用root用户登陆。
vi /etc/hostname
rac4
5. 关闭Node2节点的防火墙
使用root用户登录Node2,执行如下命令:
rcSuSEfirewall2 stop
以下操作,在所有机器上,全部使用hadoop用户操作。
6. 在Node2节点上新建hadoop用户和用户组
groupadd -g 301 hadoop
useradd -g hadoop -d /home/hadoop -m hadoop
passwd hadoop
7. 设置Node2节点和另外两个节点的互信
1)使用hadoop用户登录Node2节点,执行如下命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
2)使用hadoop用户登录Node1节点,执行如下命令:
cd
cd .ssh
scp authorized_keys rac4:/home/hadoop/.ssh/
3)使用hadoop用户登录Node2节点,执行如下命令:
cat id_rsa.pub >> authorized_keys
4)使用hadoop用户登录Node2节点,执行如下命令:
scp authorized_keys rac1:/home/hadoop/.ssh/
scp authorized_keysmos5200app:/home/hadoop/.ssh/
5)3个节点可以轮回ssh测试。每个节点第一次要求输入密码时,可以输入。之后如果还需要密码说明有问题。
8. 设置各个节点的时钟同步。root用户设置
Log in torac1 as the user root and run thefollowing commands:
# /etc/init.d/ntp stop
Shutting down network time protocol daemon (NTPD) done
umount: /var/lib/ntp/proc: not mounted
# /etc/init.d/ntp start
Starting network time protocol daemon (NTPD) done
# ps -ef |grep -i ntp
ntp 5674 1 004:26 ? 00:00:00 /usr/sbin/ntpd -p/var/lib/ntp/var/run/ntp/ntpd.pid -u ntp -i /var/lib/ntp
Log in torac4 as the user root and run thefollowing commands:
# /etc/init.d/ntp stop
Shutting down network time protocol daemon (NTPD) done
umount: /var/lib/ntp/proc: not found
# ntpdate rac1
Log in tomos5200app as the user root and runthe following commands:
# /etc/init.d/ntp stop
Shutting down network time protocol daemon (NTPD) done
umount: /var/lib/ntp/proc: not found
# ntpdate rac1
9. 给Ndoe2节点安装java
和Node1节点、Master节点的java路径完全一致。可以从Node1节点复制过来。
10. 在Node2节点上下载Node1节点的Hadoop
/home/software/下。
注意:conf下的各个配置文件都不需要修改。
mapred-site.xml还是原来的样子:
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>rac1:9001</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx256m</value>
</property>
</configuration>
more hdfs-site.xml是原来的样子:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hdfs_data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
core-site.xml是原来的样子:
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://rac1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopDATA/tmp/</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
</property>
</configuration>
11. 修改Master节点的slaves文件
vi $HADOOP_HOME/conf/slaves
添加上Node2节点的主机名:
rac4
12. 修改Node2节点的slaves文件
vi slaves
rac4
13. 修改Node2节点的.profile文件
cd
vi .profile
和Node1节点中一样。
14. 启动Node2节点
在新节点上启动datanode和tasktracker
hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
15. 查看集群状态命令
hadoop dfsadmin -report
16. 配置block块的均衡
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description>
Specifies the maximum bandwidth that eachdatanode can utilize for the balancing purpose in term of the number of bytesper second.
</description>
</property>
17. 开始负载均衡
运行以下命令:
start-balancer.sh -threshold 10
18. 测试
1)在主节点上运行:startt-all.sh看是否能启动所有服务。
2)上传一个2G的文件,看是否能分布在2台机器上。