Hadoop 添加删除数据节点(datanode)
前提条件:
添加机器安装jdk等,最好把环境都搞成一样,示例可做相应改动
实现目的:
在hadoop集群中添加一个新增数据节点。
1. 创建目录和用户
mkdir -p /app/hadoop
groupadd hadoop
useradd licz -g hadoop -d /app/hadoop
chown licz:hadoop /app/hadoop
passwd licz
注:如果出现下面的问题
[root@dbserver22 ~]# su - licz
-bash-3.2$
解决办法:
cp -a /etc/skel/. /app/hadoop
2. 修改环境变量
[licz@server123 ~]$ vi .bash_profile
PATH=$PATH:$HOME/bin
export LANG=zh_CN
export PATH
unset USERNAME
export HADOOP_HOME=/app/hadoop/hadoop-1.2.1
export JAVA_HOME=/usr/java/jdk1.6.0_18
export HIVE_HOME=/app/hadoop/hive-0.11.0
export PIG_HOME=/app/hadoop/pig-0.12.0
export PIG_CLASSPATH=/app/hadoop/pig-0.12.0/conf
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$HADOOP_HOME/bin:$PIG_HOME/bin:$HIVE_HOME/bin
export PATH
export HADOOP_HOME_WARN_SUPPRESS=1
3. 修改host文件,添加服务器
[root@server123 ~]# vi /etc/hosts
10.1.32.91 nticket1
10.1.32.93 nticket2
10.1.32.95 nticket3
10.1.5.123 server123
同样在其它各节点都添加新的server123服务器
4. 配置ssh免密码连入
步骤为:
->在新节点上生成自己的密钥
->把原集群中的密钥复制添加到新节点的密钥当中
->再把新节点上的新密钥复制(覆盖)到原集群中的新节点
--首先,为了避免误操作,操作之前要先备份原集群的密钥文件
[licz@nticket1 .ssh]$ cp authorized_keys authorized_keys.bak
[licz@server123 ~]$ ssh-keygen -t rsa
[licz@server123 ~]$ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
[licz@server123 ~]$ ssh nticket1 cat ~/.ssh/authorized_keys >> ~/.ssh/authorized_keys
[licz@server123 ~]$ scp ~/.ssh/authorized_keys nticket1:~/.ssh/authorized_keys
[licz@server123 ~]$ ssh nticket1 date
2014年 02月 12日 星期三 11:31:08 CST
[licz@nticket1 .ssh]$ ssh server123 date
三 2月 1211:25:57 CST 2014
--同样把新新密钥复制(覆盖)到原集群中的新节点
[licz@server123 ~]$ scp ~/.ssh/authorized_keys nticket2:~/.ssh/authorized_keys
[licz@server123 ~]$ scp ~/.ssh/authorized_keys nticket3:~/.ssh/authorized_keys
5. 修改hadoop配置文件
--在各节点修改hadoop的配置文件
[licz@nticket1 conf]$ vi slaves
nticket2
nticket3
server123
6. 安装hadoop
--把集群中的hadoop复制到新节点
[licz@nticket2~]$ scp -r hadoop-1.2.1/server123:/app/hadoop
7. 在新节点上启动datanode和tasktracker
[licz@server123~]$ hadoop-daemon.sh start datanode
startingdatanode, logging to /app/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-licz-datanode-server123.out
[licz@server123~]$ hadoop-daemon.sh start tasktracker
startingtasktracker, logging to /app/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-licz-tasktracker-server123.out
--测试安装成功
[licz@server123 ~]$ jps
18356 DataNode
18517 TaskTracker
18780 Jps
8. 进行block块的均衡
--在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description>
Specifies the maximum bandwidth thateach datanode can utilize for the balancing purpose in term of the number ofbytes per second.
</description>
</property>
运行以下命令:
[licz@server123conf]$ start-balancer.sh -threshold 5
startingbalancer, logging to /app/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-licz-balancer-server123.out
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved
2014-2-20 17:55:14 0 0 KB 14.12 GB 14.06 GB
--测试
[licz@server123~]$ hadoop dfs -ls /user/hive
Found 1 items
drwxr-xr-x - licz supergroup 0 2014-02-10 11:25/user/hive/warehouse
[licz@nticket1 ~]$ hadoop dfsadmin -report
Configured Capacity: 2588293705728 (2.35 TB)
Present Capacity: 2027166097408 (1.84 TB)
DFS Remaining: 2026681536512 (1.84 TB)
DFS Used: 484560896 (462.11 MB)
DFS Used%: 0.02%
Under replicated blocks: 9
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 3 (3 total, 0 dead)
Name: 10.1.32.95:50010
Decommission Status : Normal
Configured Capacity: 1041225043968 (969.72 GB)
DFS Used: 242110464 (230.89 MB)
Non DFS Used: 102109831168 (95.1 GB)
DFS Remaining: 938873102336(874.39 GB)
DFS Used%: 0.02%
DFS Remaining%: 90.17%
Last contact: Fri Feb 14 09:49:02 CST 2014
Name: 10.1.32.93:50010
Decommission Status : Normal
Configured Capacity: 1041225043968 (969.72 GB)
DFS Used: 242143232 (230.93 MB)
Non DFS Used: 57774628864 (53.81 GB)
DFS Remaining: 983208271872(915.68 GB)
DFS Used%: 0.02%
DFS Remaining%: 94.43%
Last contact: Fri Feb 14 09:49:02 CST 2014
Name: 10.1.5.123:50010
Decommission Status : Normal
Configured Capacity: 505843617792 (471.1 GB)
DFS Used: 307200 (300 KB)
Non DFS Used: 401243148288 (373.69 GB)
DFS Remaining: 104600162304(97.42 GB)
DFS Used%: 0%
DFS Remaining%: 20.68%
Last contact: Fri Feb 14 09:49:03 CST 2014
参考 http://blog.csdn.net/lichangzai/article/details/19118711
添加节点
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.sh
1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
[root@slave-004 hadoop]# ./bin/start-balancer.sh -threshold 5
3)设置balance的带宽,默认只有1M/s

1 <property>
2 <name>dfs.balance.bandwidthPerSec</name>
3 <value>1048576</value>
4 <description>
5 Specifies the maximum amount of bandwidth that each datanode
6 can utilize for the balancing purpose in term of
7 the number of bytes per second.
8 </description>
9 </property>

注意:
1. 必须确保slave的firewall已关闭;
2. 确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中
删除节点
1.集群配置
修改conf/hdfs-site.xml文件

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

2确定要下架的机器
dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个。这个将阻止他们去连接Namenode。如:
slave-003
slave-004
3.强制重新加载配置
[root@master hadoop]# ./bin/hadoop dfsadmin -refreshNodes
它会在后台进行Block块的移动
4.关闭节点
等待刚刚的操作结束后,需要下架的机器就可以安全的关闭了。
[root@master hadoop]# ./bin/ hadoop dfsadmin -report
可以查看到现在集群上连接的节点
正在执行Decommission,会显示:
Decommission Status : Decommission in progress 执行完毕后,会显示:
Decommission Status : Decommissioned
5.再次编辑excludes文件
一旦完成了机器下架,它们就可以从excludes文件移除了
登录要下架的机器,会发现DataNode进程没有了,但是TaskTracker依然存在,需要手工处理一下
参考 http://www.cnblogs.com/rilley/archive/2012/02/13/2349858.html
Hadoop 添加删除数据节点(datanode)的更多相关文章
- Hadoop 添加删除Slave
Hadoop 添加删除Slave @(Hadoop) 在hdfs-site.xml文件中添加如下配置: <property> <name>dfs.hosts</name& ...
- KingbaseES R3集群在线删除数据节点案例
案例说明: kingbaseES R3集群一主多从的架构,一般有两个节点是集群的管理节点,所有的节点都可以为数据节点:对于非管理节点的数据节点可以在线删除:但是对于管理节点,无法在线删除,如果删除管理 ...
- Hadoop日常维护系列——Hadoop添加删除节点
添加节点 1.修改host 和普通的datanode一样.添加namenode的ip 2.修改namenode的配置文件conf/slaves 添加新增节点的ip或host 3.在新节点的 ...
- hadoop新增新数据节点和退役数据节点
新增数据节点 0. 需求随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点.1. 环境准备 (1)在hadoop03主机上再克 ...
- redis cluster中添加删除重分配节点例子
redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢. 一,redis cluster命令行 //集群(cluster) CLUSTER INFO 打 ...
- redis cluster 添加 删除 重分配 节点
redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢. 一,redis cluster命令 //集群(cluster) CLUSTER INFO 打印集群的信 ...
- centos8平台redis cluster集群添加/删除node节点(redis5.0.7)
一,当前redis cluster的node情况: 我们的添加删除等操作都是以这个cluster作为demo cluster采用六台redis,3主3从 redis1 : ip: 172.17.0.2 ...
- 使用Bootstrap + Vue.js实现 添加删除数据
界面首先需要引入bootstrap的css和bootstrap的js文件,还有vue.js和jQuery.js才可以看见效果. 这里提供bootstrap的在线文件给大家引用: <!-- 最新版 ...
- HDFS数据节点DataNode未启动解决方法
在解决这个问题的过程中,我又是积累了不少经验... 首先让我搞了很久的问题是,书上说进程全部启动的命令是/bin/start-all.sh,但是当我执行的时候显示command not found.后 ...
随机推荐
- linux系统:rm-rf执行以后,怎么办?我来教你恢复文件。
记得我当时也犯过这个错误 rm -rf /* 傻傻的盯着屏幕看... 还好当时是在自己的虚拟机里,没什么数据,打镜像恢复回来就好了.今天看到这篇文章,备用!嗯 是的 万一哪天脑抽了 --------- ...
- C语言程序设计现代方法_基本类型(第七章)
C语言支持两种不同的数值类型,整数类型,浮点类型. C语言的整数类型有不同的尺寸.int类型通常为32位,但在老的CPU上可能是16位.有些可能是64位. 因此,int型如果在16位CPU上最大值就是 ...
- python 自动生成C++代码 (代码生成器)
python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...
- 利用Java的读写锁实现缓存的设计
Java中的读写锁: 多个读锁不互斥, 读锁与写锁互斥, 写锁与写锁互斥, 这是由JVM自行控制的,我们只要上好相应的锁即可. 缓存的设计: package com.cn.gbx; import ja ...
- Jquery基本、层次选择器
基本选择器: $("#none").css("background","#bbffaa"); 改变id为none的所有元素的背景色 $(&q ...
- 上不了Google是码农的悲哀
http://refyt.com/?r=34d1edb7dba42e8d 上不了Google是码农的悲哀.1. 资料大部分都在国外的网站,差不多倍感伤心.2. Google Play没有办法访问了.3 ...
- Codeforces 731F Video Cards
题意:给定n个数字,你可以从中选出一个数A(不能对该数进行修改操作),并对其它数减小至该数的倍数,统计总和.问总和最大是多少? 题解:排序后枚举每个数作为选出的数A,再枚举其他数, sum += a[ ...
- SQL 调优专题总结
oracle 的优化器: oracle 有两种优化器:基于规则的优化器(rbo/rule based optimizer)和基于代价的优化器(cbo/cost based optimizer). 有时 ...
- Vnc viewer与windows之间的复制粘贴
用VNC连接到Linux之后,最纠结的问题就是无法复制粘贴.其实很简单,在Linux里面,打开一个终端,然后输入命令: vncconfig 之后,会弹出一个窗口 不要关闭那个小窗口 之后,就可以愉快的 ...
- Oracle 10g实现存储过程异步调用
DBMS_JOB是什么?DBMS_JOB是Oracle数据库提供的专家程序包的一个.主要用来在后台运行程序,是数据库中一个极好的工具. 可用于自动调整调度例程任务,例如分析数据表,执行一些归档操作,清 ...