Hadoop集群增加删除节点

2019-03-28 13:36|来源: 网络

Hadoop要发到每个节点的配置文件,只有core-site.xml mapred-site.xml hdfs-site.xml

添加节点

1.修改host
和普通的datanode一样。添加namenode的ip


2.修改namenode的配置文件conf/slaves
添加新增节点的ip或host


3.在新节点的机器上,启动服务

[root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start datanode
[root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start tasktracker

4.均衡block

[root@slave-004 hadoop]# ./bin/start-balancer.sh1) 如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2) 设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

[root@slave-004 hadoop]# ./bin/start-balancer.sh -threshold 53) 设置balance的带宽,默认只有1M/s

 <property>
   <name>dfs.balance.bandwidthPerSec</name>
   <value>1048576</value>
   <description>
     Specifies the maximum amount of bandwidth that each datanode
     can utilize for the balancing purpose in term of
     the number of bytes per second.
   </description>
 </property>注意:
1. 必须确保slave的firewall已关闭;
2. 确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中

删除节点

1.集群配置
修改conf/hdfs-site.xml文件

 <property>
   <name>dfs.hosts.exclude</name>
   <value>/data/soft/hadoop/conf/excludes</value>
   <description>Names a file that contains a list of hosts that are
   not permitted to connect to the namenode.  The full pathname of the
   file must be specified.  If the value is empty, no hosts are
   excluded.</description>
 </property>

2.确定要下架的机器
dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个。这个将阻止他们去连接Namenode。如:

slave-003
slave-0043.强制重新加载配置

[root@master hadoop]# ./bin/hadoop dfsadmin  -refreshNodes它会在后台进行Block块的移动


4.关闭节点
等待刚刚的操作结束后,需要下架的机器就可以安全的关闭了。

[root@master hadoop]# ./bin/ hadoop dfsadmin -report可以查看到现在集群上连接的节点

正在执行Decommission,会显示:
Decommission Status : Decommission in progress 

执行完毕后,会显示:
Decommission Status : Decommissioned5.再次编辑excludes文件
一旦完成了机器下架,它们就可以从excludes文件移除了
登录要下架的机器,会发现DataNode进程没有了,但是TaskTracker依然存在,需要手工处理一下

相关问答

更多
  • 如果是搭建的是主从的话,挂掉主节点,从节点还是可以使用的,但是不会变为从节点,除非是redis集群
  • 1.运行环境 三台装有centOS 6.3 的电脑 OpenJDK 1.6 2下载hadoop,加压到你要放置的目录,最好是解压到/opt或者/usr/local目录下 3 创建hadoop群组和hadoop用户 groupadd hadoop useradd hadoop -g hadoop 更改hadoop 用户的密码 在命令行输入:passwd 按提示输入密码 每台电脑上都要进行此步操作,且每个电脑上的hadoop用户的密码都要一样 4 配置免密钥ssh 若为安装ssh应该安装,笔者这里不再赘述,网上 ...
  • Hadoop添加节点的方法 自己实际添加节点过程: 1. 先在slave上配置好环境,包括ssh,jdk,相关config,lib,bin等的拷贝; 2. 将新的datanode的host加到集群namenode及其他datanode中去; 3. 将新的datanode的ip加到master的conf/slaves中; 4. 重启cluster,在cluster中看到新的datanode节点; 5. 运行bin/start-balancer.sh,这个会很耗时间 备注: 1. 如果不balance,那么cl ...
  • 1、安装openssh,主要是为了主机间安全通信用的。除此之外,还要在此基础上加上无密码访问的设置。否则的话,主机之间交互时总是要求输入密码。这个无密码ssh访问的作法一搜有很多,就不多说了。 2、具体的不同点,主要就一点,主节点的openssh要持有所有子节点的无密码ssh登陆,只要交换下密钥就可以了。而子节点之间一般是无需无密码ssh登陆的,除非有特殊要求。 试下看吧。
  • 1:添加节点 A:新节点中添加账户,设置无密码登陆 B:Name节点中设置到新节点的无密码登陆 C:在Name节点slaves文件中添加新节点 D:在所有节点/etc/hosts文件中增加新节点(所有节点保持一致) E:在新节点中执行 ./bin/hadoop-daemon.sh star...
  • bg4.png 用shell scp也就是远程复制,配好一台机器,用shell传播 或则使用集群管理工具使用puppet或者chef
  • 命令行 hadoop dfsadmin -report 将为您提供有关它们的基本统计数据的数据节点列表。 如果需要,可以通过编程方式进行相对简单的解析。 要获取任务跟踪器列表,我建议您在JobTracker上打开Web UI(端口50030)。 据我记得,有任务跟踪器列表。 The command line hadoop dfsadmin -report will give you list of datanodes with basic statisics about them. It can be re ...
  • 群集ID在您的环境中不会发生变化。 只有在重新格式化namenode时它才会改变。 所以不要重新格式化namenode。 Cluster ID doesnot change in your landscape. It will change only when u reformat namenode. So dont reformat namenode.
  • Java是运行Hadoop的先决条件。 您甚至在客户端也需要在所有机器上安装java。 来到客户端配置。 在客户端机器中无需安装Hadoop。 它只是与Hadoop集群进行通信 查看以下链接了解更多信息 Hadoop客户端节点配置 https://pravinchavan.wordpress.com/2013/06/18/submitting-hadoop-job-from-client-machine/ Java is prerequisite to run Hadoop. You need to ins ...
  • 我找到了解决方案。 为了增加文件mapred-site.xml中减少器的数量,我添加了 A 5 在我向集群添加其他节点之后,hadoop增加了映射器,而配置中没有任何其他更改。 现在所有数据节点都以最大功能运行。 I found the solution. To increase number of reducers in the file mapred-site.xml I added ...