adoop集群动态添加和删除节点
2017-07-30 11:37
513 查看
hadoop集群动态添加和删除节点说明
上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除。
首先将启动四台机器(一主三从)组成的hadoop集群,还是要提醒一句,在启动集群的时候一定要切换到hadoop用户下,并使用jps命令检查hadoop集群中的每台机器是否已经启动成功。
master机器:
[plain] view plain copy
[root@master ~]# su - hadoop
[hadoop@master ~]$ start-all.sh
Warning: $HADOOP_HOME is deprecated.
starting namenode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out
slave1: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out
slave3: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave3.out
slave2: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out
master: starting secondarynamenode, loggingto/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out
starting jobtracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out
slave2: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out
slave1: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out
slave3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave3.out
[hadoop@master ~]$ jps
1900 Jps
1662 SecondaryNameNode
1741 JobTracker
1512 NameNode
[hadoop@master ~]$
slave1机器:
[plain] view plain copy
[root@slave1 ~]# su - hadoop
[hadoop@slave1 ~]$ jps
1476 DataNode
1562 TaskTracker
1620 Jps
slave2机器:
[plain] view plain copy
[root@slave2 ~]# su - hadoop
[hadoop@slave2 ~]$ jps
1474 DataNode
1630 Jps
1536 TaskTracker
slave3机器:
[plain] view plain copy
[root@slave3 ~]# su - hadoop
[hadoop@slave3 ~]$ jps
1474 DataNode
1651 Jps
1536 TaskTracker
四台机器的hadoop集群启动成功,在通过浏览器看一下集群的情况,如下面的图,mapreduce和namenode都是对应三个从服务器。
namenode:
mapreduce:
现在我就执行添加服务器的操作,其实这个很简单,首先我们要准备一台新的服务器,并且在新的服务器中安装好jdk环境以及hadoop,具体怎么安装就不说了,看上一篇博客。
修改所有机器的hosts文件和/home/hadoop/hadoop/conf下slaves文件,切换到hosts文件在文件的后面添加新节点的ip和机器名:192.168.56.204 slaves,再切换到hadoop用户,在slaves文件后面添加slave4,到此一台机器就配置完成,其他机器也是一样。新添加的节点中hosts文件和/home/hadoop/hadoop/conf下slaves文件内容和之前已经存在的节点配置一样,这里就不赘述了。
这里需要注意的是,需要在master机器中将.ssh目录下的公钥认证列表authorized_keys发送给slave4,这样启动hadoop集群的时候就不要输入slave4机器的密码了,方便启动操作,其实不发也可以,就是启动集群的时候数据密码麻烦一点。
配置都完成了,现在就在slave4机器中操作了。
切换到hadoop用户,进入hadoop的bin目录下执行下面的两个命令:
[plain] view plain copy
[hadoop@slave4 bin]$ hadoop-daemon.sh startdatanode
Warning: $HADOOP_HOME is deprecated.
starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave4.out
[hadoop@slave4 bin]$
[hadoop@slave4 bin]$
[hadoop@slave4 bin]$ hadoop-daemon.sh starttasktracker
Warning: $HADOOP_HOME is deprecated.
starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave4.out
使用jps检测是否启动成功:
[plain] view plain copy
[hadoop@slave4 bin]$ jps
24581 Jps
24505 TaskTracker
24432 DataNode
[hadoop@slave4 bin]$
然后我们通过浏览器访问namenode和mapreduce,看集群中是否添加了一个节点。
namenode:
mapreduce:
添加成功后我们就要考虑删除如何执行。其实并难。
首先关闭需要删除的节点:
[plain] view plain copy
[hadoop@slave4 bin]$ hadoop-daemon.sh stopdatanode
Warning: $HADOOP_HOME is deprecated.
stopping datanode
[hadoop@slave4 bin]$ hadoop-daemon.sh stoptasktracker
Warning: $HADOOP_HOME is deprecated.
stopping tasktracker
使用jps命令检查是否关闭成功。
[plain] view plain copy
[hadoop@slave4 bin]$ jps
24649 Jps
[hadoop@slave4 bin]$
其实此时通过浏览器查看已经少了一个节点,但是这种删除只是临时的,当集群关闭,再重新启动集群,这个临时删除的节点就会再次加到集群中。
接下来我就说一下如何在配置文件中配置,保证重启集群,不会再将删除的集群添加进去。
进入master机器中hadoop用户下hadoop解压目录下的conf目录:
将:将下面的这几行添加到hdfs-site.xml配置文件中即可。
[html] view plain copy
<property>
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/hadoop/conf/excludes</value>
</property>
然后在conf目录下创建一个excludes文件,将需要删除的节点机器名添加到文件中即可。
添加结束后刷新一下节点信息:
[plain] view plain copy
[hadoop@master conf]$ hadoop dfsadmin –refreshNodes
刷新浏览器,查看namenode和mapreduce对应的节点数:
namenode:
mapreduce:
这样就完成了hadoop集群的添加的删除了。
上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除。
首先将启动四台机器(一主三从)组成的hadoop集群,还是要提醒一句,在启动集群的时候一定要切换到hadoop用户下,并使用jps命令检查hadoop集群中的每台机器是否已经启动成功。
master机器:
[plain] view plain copy
[root@master ~]# su - hadoop
[hadoop@master ~]$ start-all.sh
Warning: $HADOOP_HOME is deprecated.
starting namenode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out
slave1: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out
slave3: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave3.out
slave2: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out
master: starting secondarynamenode, loggingto/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out
starting jobtracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out
slave2: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out
slave1: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out
slave3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave3.out
[hadoop@master ~]$ jps
1900 Jps
1662 SecondaryNameNode
1741 JobTracker
1512 NameNode
[hadoop@master ~]$
slave1机器:
[plain] view plain copy
[root@slave1 ~]# su - hadoop
[hadoop@slave1 ~]$ jps
1476 DataNode
1562 TaskTracker
1620 Jps
slave2机器:
[plain] view plain copy
[root@slave2 ~]# su - hadoop
[hadoop@slave2 ~]$ jps
1474 DataNode
1630 Jps
1536 TaskTracker
slave3机器:
[plain] view plain copy
[root@slave3 ~]# su - hadoop
[hadoop@slave3 ~]$ jps
1474 DataNode
1651 Jps
1536 TaskTracker
四台机器的hadoop集群启动成功,在通过浏览器看一下集群的情况,如下面的图,mapreduce和namenode都是对应三个从服务器。
namenode:
mapreduce:
现在我就执行添加服务器的操作,其实这个很简单,首先我们要准备一台新的服务器,并且在新的服务器中安装好jdk环境以及hadoop,具体怎么安装就不说了,看上一篇博客。
修改所有机器的hosts文件和/home/hadoop/hadoop/conf下slaves文件,切换到hosts文件在文件的后面添加新节点的ip和机器名:192.168.56.204 slaves,再切换到hadoop用户,在slaves文件后面添加slave4,到此一台机器就配置完成,其他机器也是一样。新添加的节点中hosts文件和/home/hadoop/hadoop/conf下slaves文件内容和之前已经存在的节点配置一样,这里就不赘述了。
这里需要注意的是,需要在master机器中将.ssh目录下的公钥认证列表authorized_keys发送给slave4,这样启动hadoop集群的时候就不要输入slave4机器的密码了,方便启动操作,其实不发也可以,就是启动集群的时候数据密码麻烦一点。
配置都完成了,现在就在slave4机器中操作了。
切换到hadoop用户,进入hadoop的bin目录下执行下面的两个命令:
[plain] view plain copy
[hadoop@slave4 bin]$ hadoop-daemon.sh startdatanode
Warning: $HADOOP_HOME is deprecated.
starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave4.out
[hadoop@slave4 bin]$
[hadoop@slave4 bin]$
[hadoop@slave4 bin]$ hadoop-daemon.sh starttasktracker
Warning: $HADOOP_HOME is deprecated.
starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave4.out
使用jps检测是否启动成功:
[plain] view plain copy
[hadoop@slave4 bin]$ jps
24581 Jps
24505 TaskTracker
24432 DataNode
[hadoop@slave4 bin]$
然后我们通过浏览器访问namenode和mapreduce,看集群中是否添加了一个节点。
namenode:
mapreduce:
添加成功后我们就要考虑删除如何执行。其实并难。
首先关闭需要删除的节点:
[plain] view plain copy
[hadoop@slave4 bin]$ hadoop-daemon.sh stopdatanode
Warning: $HADOOP_HOME is deprecated.
stopping datanode
[hadoop@slave4 bin]$ hadoop-daemon.sh stoptasktracker
Warning: $HADOOP_HOME is deprecated.
stopping tasktracker
使用jps命令检查是否关闭成功。
[plain] view plain copy
[hadoop@slave4 bin]$ jps
24649 Jps
[hadoop@slave4 bin]$
其实此时通过浏览器查看已经少了一个节点,但是这种删除只是临时的,当集群关闭,再重新启动集群,这个临时删除的节点就会再次加到集群中。
接下来我就说一下如何在配置文件中配置,保证重启集群,不会再将删除的集群添加进去。
进入master机器中hadoop用户下hadoop解压目录下的conf目录:
将:将下面的这几行添加到hdfs-site.xml配置文件中即可。
[html] view plain copy
<property>
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/hadoop/conf/excludes</value>
</property>
然后在conf目录下创建一个excludes文件,将需要删除的节点机器名添加到文件中即可。
添加结束后刷新一下节点信息:
[plain] view plain copy
[hadoop@master conf]$ hadoop dfsadmin –refreshNodes
刷新浏览器,查看namenode和mapreduce对应的节点数:
namenode:
mapreduce:
这样就完成了hadoop集群的添加的删除了。
相关文章推荐
- Hadoop2.x集群动态添加删除数据节点
- redis集群(单机模拟)动态添加、删除节点
- Hadoop2.x集群动态添加删除数据节点
- redis 集群之动态添加redis节点,删除指定ID的redis节点,以及查看redis集群中各个节点的信息
- Hadoop2.6集群动态添加和删除数据节点
- Hadoop学习记录(5)|集群搭建|节点动态添加删除
- Hadoop2.x集群动态添加删除数据节点
- Redis集群动态添加和删除节点
- hadoop集群动态添加和删除节点说明
- HDFS添加删除节点并进行集群平衡
- hadoop 添加删除节点以及搭建集群注意问题
- redis集群动态添加主节点和从节点
- Elasticsearch5.2.1集群搭建,动态加入节点,并添加监控诊断插件
- redis集群动态增加或者删除节点 和Docker启动报错
- Hadoop学习3_在HADOOP集群中添加节点和删除节点
- Jquery动态添加及删除页面节点元素示例代码
- Hadoop动态添加/删除节点(datanode和tacktracker)
- 【hadoop 2.7.1 】动态添加节点、删除节点
- ambari动态添加删除节点
- Hadoop学习笔记—13.分布式集群中节点的动态添加与下架