共计 2814 个字符,预计需要花费 8 分钟才能阅读完成。
随着业务的扩展,公司刚开始的三个节点已经不够用了,因此需要添加 datanode。下面记录一下添加 datanode 节点的步骤:
1、在新的 datanode 上创建 Hadoop 运行的用户 grid,并修改密码。并修改 ip 地址和绑定主机名,hosts 文件,关闭新节点的防火墙。
我用的是 CentOS7 的系统,因此修改静态 ip 地址是:vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
然后执行 service network restart 重启网络。
绑定主机名:vi /etc/hostname,修改成自定义的主机名即可。
关闭防火墙:由于 centos7 用 firewalld 取代了 iptables。因此关闭防火墙的命令是:
systemctl status firewalld 查看防火墙的状态
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁止防火墙开机启动,对应的会删除两个文件。
修改 hosts 文件:
vi /etc/hosts
shutdown -r now 重启电脑。
2、(1)在新的 datanode 节点上,用 grid 登录,创建 ssh 公钥:ssh-keygen -t rsa,
(2)并对产生的公钥 id_rsa.pub 进行备份:cp id_rsa.pub id_rsa.pub.x , 这里 x 表示新添加的节点对应的编码。
(3)并将 id_rsa.pub.x 发送到主节点上。
scp -r id_rsa.pub.x grid@namenode_hostname:/home/grid/.ssh/
3、在主节点上,
(1)将 id_rsa.pub.x 拷贝到 authorized_keys 当中:cat id_rsa.pub.x >>authorized_keys
(2)主节点将 authorized_keys 分发给所有的节点,包括新的 datanode。
scp -r authorized_keys grid@datanode_hostname1:/home/grid/.ssh/
scp -r authorized_keys grid@datanode_hostname1:/home/grid/.ssh/
:
:
(3)在主节点上,添加新的 datanode 的 ip 地址:
vi /etc/hosts 在该文件中添加新节点的 ip 地址和主机名
然后将主节点上的 hosts 文件分发给所有的节点(包括新添加的 datanode)。
(4)将主节点的 jdk 的安装文件、hadoop 的安装文件、环境变量的文件 /etc/profile 分别都分发给新添加的 datanode。
(5)修改主节点上的 hadoop 的 salves 文件,添加 datanode 新节点的主机名。
(6)在新添加的节点上执行 source /etc/profile
(7)在新的节点上执行:
hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
(8)均衡之前的 datanode 的 block,在新的节点上执行:
start-balancer.sh
这个会非常耗时
1)如果不 balance,那么 cluster 会把新的数据都存放在新的 node 上,这样会降低 mapred 的工作效率
2)设置平衡阈值,默认是 10%,值越低各节点越平衡,但消耗时间也更长
[root@slave-004 hadoop]# start-balancer.sh -threshold 5
3)设置 balance 的带宽,默认只有 1M/s,修改 hdfs-site.xml
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>1048576</value>
</property>
(9)安全模式
有两个方法离开这种安全模式:
1)修改 dfs.safemode.threshold.pct 为一个比较小的值,缺省是 0.999。
dfs.safemode.threshold.pct(缺省值 0.999f)
HDFS 启动的时候,如果 DataNode 上报的 block 个数达到了元数据记录的 block 个数的 0.999 倍才可以离开安全模式,否则一直是这种只读模式。如果设为 1 则 HDFS 永远是处于 SafeMode。
2)hadoop dfsadmin -safemode leave 命令强制离开
dfsadmin -safemode value 参数 value 的说明:
enter – 进入安全模式
leave – 强制 NameNode 离开安全模式
get – 返回安全模式是否开启的信息
wait – 等待,一直到安全模式结束。
Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-05/117707.htm