大体,正确的做法是首选的配置文件,然后开始详细机对应的进程/停止操作。

网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置。

总的来说加入/删除DataNode和TaskTracker的方法很相似,仅仅是操作的配置项和使用的命令有微小差异。

1. DataNode

1.0 配置文件

在master/namenode下改动配置文件conf/mapred-site.xml。
关键參数dfs.hosts和dfs.hosts.exclude。

注意:不同hadoop版本号的配置文件规划不太一致!

详细參考相关版本号的hadoop官方文档的cluster setup部分。

http://hadoop.apache.org/docs/ 点击同样或相近版本号。

上面的说法是在hadoop 1.x中的,后面也以该版本号举例;
在hadoop 0.x中上述配置存放在文件conf/hadoop-site.xml中;
在hadoop 2.x中变化非常大,文件为conf/hdfs-site.xml中,參数名为:dfs.namenode.hosts和fs.namenode.hosts.exclude。

參数作用:
dfs.hosts: 同意接入为DataNode的机器列表,假设不配置或所指定的列表文件为空则默认同意全部主机成为DataNode
dfs.hosts.exclude: 拒绝接入为DataNode的机器列表。假设一台机器同一时候出如今两个列表中,则拒绝。

它们的本质作用拒绝某些节点上的datanode进程连接。而不是调度这些节点上datanode进程的同意和关闭。

使用方法举例:
改动conf/mapred-site.xml,加入:
	<property>
<name>dfs.hosts</name>
<value>/opt/hadoop/conf/datanode-allow.list</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/hadoop/conf/datanode-deny.list</value>
</property>

假设不须要同意列表,就不要创建相应项了。

然后创建value所指定的文件。一行写一个主机名。

1.1 加入

1,在新slave上进行相关配置。

2,在master上的slave列表增加该slave(非必须,方便以后重新启动cluster用)

3。(若有)在datanode-allow.list中增加该slave

4,在slave上启动datanode进程:

执行:hadoop-daemon.sh start datanode

PS:能够用jps命令查看机器上的java进程的pid和进程名。

1.2 删除

极端不建议直接在slave上通过:
hadoop-daemon.sh stop datanode  
命令关掉datanode。这会导致hdfs中出现missing block。


1。在master上改动datanode-deny.list,加入对应机器
2,在master上刷新节点配置情况:
hadoop dfsadmin -refreshNodes  
此时在Web UI上马上就能够看到该节点变为Decommissioning状态,过一会就变为Dead了。
也能够通过:hadoop dfsadmin -report命令查看。
3。在slave上关闭datanode进程(非必须):
执行:hadoop-daemon.sh stop datanode  

1.2.1 又一次增加各个删除的节点

1,在master的datanode-deny.list删除对应机器
2。在master上刷新节点配置情况:
hadoop
dfsadmin -refreshNodes  
3,在slave上重新启动datanode进程:
hadoop-daemon.sh start datanode
 
PS:假设之前没有关闭该slave上的datanode进程,须要先关闭再又一次启动。

2. TackTracker

2.0 配置文件

hadoop 1.x下在master/namenode下改动配置文件conf/mapred-site.xml。

关键參数mapred.hosts和mapred.hosts.exclude。


对于hadoop 0.x须要改动配置文件conf/hadoop-site.xml;
对于hadoop 2.x还没有搞清楚,先不说。

參数作用:和datanode的相应项一样。

使用方法举例:
改动conf/mapred-site.xml。加入:
	<property>
<name><span style="font-family: Arial, Helvetica, sans-serif;">mapred</span><span style="font-family: Arial, Helvetica, sans-serif;">.hosts</name></span>
<value>/opt/hadoop/conf/tasktracker-allow.list</value>
</property>
<property>
<name><span style="font-family: Arial, Helvetica, sans-serif;">mapred</span>.hosts.exclude</name>
<value>/opt/hadoop/conf/tasktracker-deny.list</value>
</property>

假设不须要同意列表。就不要创建相应项了。

然后创建value所指定的文件。

一行写一个主机名。

2.1 加入

1,在新slave上进行相关配置。

2。在master上的slave列表增加该slave(非必须。方便以后重新启动cluster用)

3,(若有)在tasktracker-allow.list中增加该slave

4,在slave上启动tasktracker进程:

执行:hadoop-daemon.sh start tasktracker

PS:能够用jps命令查看机器上的java进程的pid和进程名。


2.2 删除

不建议直接在slave上通过:
hadoop-daemon.sh stop tasktracker  
命令关掉tasktracker,这会导致namenode觉得这些机器临时失联。在一个超时时间内(默认10min+30s)依旧如果它们是正常的还会将任务发送给它们。

1,在master上改动tasktracker-deny.list,加入对应机器
2。在master上刷新节点配置情况:
hadoop mradmin -refreshNodes  
此时在Web UI上马上就能够看到Nodes的数量降低了。而Exclude Nodes的数量添加了。能够点进去详细查看。

3,在slave上关闭tasktracker进程(非必须):
执行:hadoop-daemon.sh stop tasktracker  

2.2.1 又一次增加各个删除的节点

1,在master的tasktracker-deny.list删除对应机器
2。在master上刷新节点配置情况:
hadoop mradmin -refreshNodes  
3。在slave上重新启动tasktracker进程:
hadoop-daemon.sh start tasktracker  
PS:假设之前没有关闭该slave上的tasktracker进程。须要先关闭再又一次启动。

原载于http://blog.csdn.net/yanxiangtianji

转载请注明出处

版权声明:本文博主原创文章,博客,未经同意不得转载。

Hadoop动态加入/删除节点(datanode和tacktracker)的更多相关文章

  1. hadoop动态添加删除节点datanode及恢复

    1. 配置系统环境 主机名,ssh互信,环境变量等 本文略去jdk安装,请将datanode的jdk安装路径与/etc/hadoop/hadoop-evn.sh中的java_home保持一致,版本ha ...

  2. Hadoop新增和删除节点

    #新增节点 1.安装lunix,和以前一样的版本 2.初始化系统环境 2.1.设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 //增加 #Adv ...

  3. Hadoop 动态扩容 增加节点

    基础准备 在基础准备部分,主要是设置hadoop运行的系统环境 修改系统hostname(通过hostname和/etc/sysconfig/network进行修改) 修改hosts文件,将集群所有节 ...

  4. hadoop 添加,删除节点

    http://www.cnblogs.com/tommyli/p/3418273.html

  5. Hadoop 2.6.3动态增加/删除DataNode节点

    假设集群操作系统均为:CentOS 6.7 x64 Hadoop版本为:2.6.3 一.动态增加DataNode 1.准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode ...

  6. Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)

    不多说,直接上干货! hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集 ...

  7. Hadoop学习记录(5)|集群搭建|节点动态添加删除

    集群概念 计算机集群是一种计算机系统,通过一组松散继承的计算机软件或硬件连接连接起来高度紧密地协作完成计算工作. 集群系统中的单个计算机通常称为节点,通过局域网连接. 集群特点: 1.效率高,通过多态 ...

  8. Hadoop动态增加节点与删除节点

    Hadoop的全分布式安装网上也很多教程,踩过很多坑,整理不出来了……赶紧把增加删除节点留住. 均衡数据 (1)设置数据传输带宽为64M(默认值比较低) hdfs dfsadmin -setBalan ...

  9. hdfs以及hbase动态增加和删除节点

    一个知乎上的问题:Hbase的Region server和hadoop的datanode是否可以部署在一台服务器上?如果是的话,二者是否是一对一的关系?部署在同一台服务器上,可以减少数据跨网络传输的流 ...

随机推荐

  1. Zend Framework 留言本实战(转)

    一.环境搭建和ZF安装              *[注]本节内容大部分来至Zend Framework官方手册       1.1 Zend Framework下载 Zend Framework 使 ...

  2. CoDel Test Script

    This TCL script is retrieved from http://www.pollere.net/CoDel.html in November 2013 :) # Codel test ...

  3. 一键注册控件的批处理(包含x86 和 x64)

    @echo off if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86 if "%PROCESSOR_ARCH ...

  4. (一)MVP设计模式

    一.MVP介绍      随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时 ...

  5. Android 基于Netty的消息推送方案之Hello World(一)

    消息推送方案(轮询.长连接) 轮询 轮询:比较简单的,最容易理解和实现的就是客户端去服务器上拉信息,信息的及时性要求越高则拉信息的频率越高.客户端拉信息的触发可以是一些事件,也可以是一个定时器,不断地 ...

  6. ansible 学习与实践

    title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...

  7. arcmap从excel坐标数据生成点shp文件

    概述 今天试图在ArcMap中将excel数据转成点文件,在"Display XY Data"的时候,无法选择X,Y字段,很是纳闷,原来Excel中列的格式是文本,导致无法选择.有 ...

  8. .NET MVC通过反射获取数据修改历史记录,并插入数据表中

    本文属于原创,转载时请标明出处! 折磨了我一个晚上的问题,奈何对物理的反射印象太深了,整天去想着物理的反射.折射怎么解.感谢少将哥哥给我的指点,经过一个晚上对反射的恶补,最终搞定了.纪念一下. 1.核 ...

  9. java下载文件

    /** * * @param file * @param response */ private void downLoad(File file, HttpServletResponse respon ...

  10. java 后台线层也叫守护线层

    import java.util.concurrent.locks.*; class Do9 { public static void main(String[] args) { Ds d=new D ...