Hadoop中正确地添加和移除节点
正确地添加和移除节点
添加节点
克隆
克隆一台全新的Linux(如有IP冲突,可右击VMware右下角网络图标断开连接)
打开/etc/hostname修改主机名
打开/etc/sysconfig/network-script/ifcfg-ens33修改IP
重启
安装
使用安装包+hadoop-install.sh脚本快速安装一个Hadoop节点
注意使用source hadoop-install.sh执行
配置NameNode
打开/etc/hosts添加新节点的IP和主机名
打开etc/hadoop/slaves添加新节点的主机名
打开hdfs-site.xml,设置节点平衡带宽设置(默认值1M,下面设置为10M)
<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>20971520</value>
</property>
同步DataNode配置
在所有DataNode节点上执行hadoop-pull.sh
注意修改脚本中的NameNode变量值!
启动
在新节点上执行
hadoop-daemon.sh start datanode
平衡
让各个DataNode中的数据均匀分布,
start-balancer.sh -threshold 5
-threshold是平衡阈值,默认值允许10%的差异,值越小越平衡,但花费的时间会越长
通过下面的命令也可以设置平衡时使用的网络带宽(字节/秒)
在网络带宽受限的情况下,平衡速度较慢,需要耐心等待一段时间才能观察到效果
平衡时先通过NameNode提供的元数据进行平衡规划,然后开启多线程将数据从老节点移到新节点。
如果想查看平衡的过程,可以用下面的命令:
hdfs balancer -threshold 5
移除节点
如果节点中已经保存了数据,则从slaves中移除节点,重启集群这种暴力手段就不适用了,如果暴力删除则会造成数据丢失。为了解决生产环境中平稳安全地移除节点的问题,Hadoop提供了一个流程:
设置排除
在namenode中打开hdfs-site.xml,设置节点排除文件的位置(必须是绝对路径)
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/share/hadoop/etc/hadoop/excludes</value>
</property>
在excludes文件中添加要排除的节点主机名,一行一个
更新节点配置
在NameNode中执行下面命令,强制重新加载配置
hdfs dfsadmin -refreshNodes
在Hadoop站点上很快就能看到Decommission正在进行,此时NameNode会检查并将数据复制到其它节点上以恢复副本数(要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们)。通过命令也可以查看状态:
hdfs dfsadmin -report
等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令,如:
hadoop-daemon.sh stop datanode
几分钟后,节点将从Decommissioned进入Dead状态。
更新集群配置
从NameNode的excludes文件及slaves文件、hosts文件中去掉已经移除的主机名
在所有DataNode上执行hadoop-pull.sh脚本,同步配置。
Hadoop中正确地添加和移除节点的更多相关文章
- iOS中通知的添加和移除
我们都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用.很多时候我们根据自身需要将相关代 ...
- js中数组的添加和移除
1.引入js文件 <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script>2.HTML中代 ...
- spring:如何用代码动态向容器中添加或移除Bean ?
先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F ...
- jQuery中添加/改变/移除改变CSS样式例子
在jquery中对于div样式操作我们会使用到CSS() removeClass() addClass()方法来操作了,下面我们就整理了几个例子大家一起来看看吧. CSS()方法改变CSS样式 ...
- Vue中,给当前元素添加类名移除兄弟元素类名的方法
在Vue中,给当前元素添加类名移除兄弟元素类名的方法 今天在项目中需要做一个效果,点击对应的li改变当前的color,其他的li取消颜色,在jQuery中这很容易,由于之前已经引入了jQuery,所以 ...
- 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
- JS中的DOM操作怎样添加、移除、移动、复制、创建和查找节点
DOM操作怎样添加.移除.移动.复制.创建和查找节点? (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元 ...
- hadoop移除节点的优雅方式
step 1:使用hdfs-site.xml的配置项,排除节点. <property> <name>dfs.hosts.exclude</name> <val ...
- hadoop 2.7 添加或删除datanode节点
1.测试环境 ip 主机名 角色 10.124.147.22 hadoop1 namenode 10.124.147.23 hadoop2 namenode 10.124.147.32 hadoop3 ...
随机推荐
- 基于Java Netty框架构建高性能的Jt808协议的GPS服务器(转)
原文地址:http://www.jt808.com/?p=971 使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器,并不是一件简单容易的事情,开发出来一段程序和能够承受数十万 ...
- 微服务Spring Cloud与Kubernetes比较
转 http://www.tuicool.com/articles/VnMf2y3 Spring Cloud或Kubernetes都宣称它们是开发运行微服务的最好环境,哪个更好?答案是两个都是,但他们 ...
- [POJ 1236][IOI 1996]Network of Schools
Description A number of schools are connected to a computer network. Agreements have been developed ...
- iOS应用安全防护框架概述
iOS应用安全防护框架概述 攻易防难,唯有缜密.多层的防护网络才能可靠的保护我们iOS应用程序的安全.那么,一个完善的iOS应用安全防护框架都要写哪些东西呢? 首先,先梳理一下常见的逆向及攻击工具. ...
- js基本知识1
Javascript 作用 1. 网页特效 2. 用户交互 3. 表单验证 Js 就是可以用来控制 结构 和 样式 . 1.2 体验js 认识常用的三个输出语句. 都属于 js 内置对象 . 大家买手 ...
- c# 程序调试出现“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。”
简单的程序代码如下:DataSet ds=new DataSet();try{ string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data ...
- [Eth]Mac/Phy/mdio/Rgmii
转自:http://www.cnblogs.com/zxc2man/p/3769777.html 1. MDIO(Management Data Input/Output),对G比特以太网而言,串行通 ...
- Qt之QThreadPool和QRunnable
简述 QRunnable 是所有 runnable 对象的基类,而 QThreadPool 类用于管理 QThreads 集合. QRunnable 类是一个接口,用于表示一个任务或要执行的代码,需要 ...
- lnmp服务器的目录信息
LNMP状态管理命令: LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}Nginx状态管理:/etc/init.d/nginx ...
- C++和Java函数传递数组参数比较
如果我想实现函数参数传递数组的业务需求,在Java中很容易实现,如下所示.因为Java有.length方法,可以获取数组的长度. public class Test { public static v ...