• adoop集群动态添加和删除节点


    hadoop集群动态添加和删除节点说明

    上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除。

    首先将启动四台机器(一主三从)组成的hadoop集群,还是要提醒一句,在启动集群的时候一定要切换到hadoop用户下,并使用jps命令检查hadoop集群中的每台机器是否已经启动成功。

    master机器:

    [plain] view plain copy
     
    1. [root@master ~]# su - hadoop  
    2.  [hadoop@master ~]$ start-all.sh  
    3. Warning: $HADOOP_HOME is deprecated.  
    4.    
    5. starting namenode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out  
    6. slave1: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out  
    7. slave3: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave3.out  
    8. slave2: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out  
    9. master: starting secondarynamenode, loggingto/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out  
    10. starting jobtracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out  
    11. slave2: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out  
    12. slave1: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out  
    13. slave3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave3.out  
    14.  [hadoop@master ~]$ jps  
    15. 1900 Jps  
    16. 1662 SecondaryNameNode  
    17. 1741 JobTracker  
    18. 1512 NameNode  
    19. [hadoop@master ~]$  



    slave1机器:

    [plain] view plain copy
     
    1. [root@slave1 ~]# su - hadoop  
    2. [hadoop@slave1 ~]$ jps  
    3. 1476 DataNode  
    4. 1562 TaskTracker  
    5. 1620 Jps  



    slave2机器:

    [plain] view plain copy
     
    1. [root@slave2 ~]# su - hadoop  
    2. [hadoop@slave2 ~]$ jps  
    3. 1474 DataNode  
    4. 1630 Jps  
    5. 1536 TaskTracker  


    slave3机器:

    [plain] view plain copy
     
    1. [root@slave3 ~]# su - hadoop  
    2. [hadoop@slave3 ~]$ jps  
    3. 1474 DataNode  
    4. 1651 Jps  
    5. 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
     
    1. [hadoop@slave4 bin]$ hadoop-daemon.sh startdatanode  
    2. Warning: $HADOOP_HOME is deprecated.  
    3.    
    4. starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave4.out  
    5. [hadoop@slave4 bin]$  
    6. [hadoop@slave4 bin]$  
    7. [hadoop@slave4 bin]$ hadoop-daemon.sh starttasktracker  
    8. Warning: $HADOOP_HOME is deprecated.  
    9.    
    10. starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave4.out  



    使用jps检测是否启动成功:

    [plain] view plain copy
     
    1. [hadoop@slave4 bin]$ jps  
    2. 24581 Jps  
    3. 24505 TaskTracker  
    4. 24432 DataNode  
    5. [hadoop@slave4 bin]$  



    然后我们通过浏览器访问namenode和mapreduce,看集群中是否添加了一个节点。

    namenode:

    mapreduce:

     

    添加成功后我们就要考虑删除如何执行。其实并难。

    首先关闭需要删除的节点:

    [plain] view plain copy
     
    1. [hadoop@slave4 bin]$ hadoop-daemon.sh stopdatanode  
    2. Warning: $HADOOP_HOME is deprecated.  
    3. stopping datanode  
    4. [hadoop@slave4 bin]$ hadoop-daemon.sh stoptasktracker  
    5. Warning: $HADOOP_HOME is deprecated.  
    6. stopping tasktracker  



    使用jps命令检查是否关闭成功。

    [plain] view plain copy
     
    1. [hadoop@slave4 bin]$ jps  
    2. 24649 Jps  
    3. [hadoop@slave4 bin]$  



    其实此时通过浏览器查看已经少了一个节点,但是这种删除只是临时的,当集群关闭,再重新启动集群,这个临时删除的节点就会再次加到集群中。

    接下来我就说一下如何在配置文件中配置,保证重启集群,不会再将删除的集群添加进去。

    进入master机器中hadoop用户下hadoop解压目录下的conf目录:

    将:将下面的这几行添加到hdfs-site.xml配置文件中即可。

    [html] view plain copy
     
    1. <property>  
    2.          <name>dfs.hosts.exclude</name>  
    3.          <value>/home/hadoop/hadoop/conf/excludes</value>  
    4. </property>  



    然后在conf目录下创建一个excludes文件,将需要删除的节点机器名添加到文件中即可。

    添加结束后刷新一下节点信息:

    [plain] view plain copy
     
    1. [hadoop@master conf]$ hadoop dfsadmin –refreshNodes  



    刷新浏览器,查看namenode和mapreduce对应的节点数:

    namenode:

    mapreduce:

    这样就完成了hadoop集群的添加的删除了。

  • 相关阅读:
    servlet异步处理机制
    分析logfilter+session
    java web后台工作原理
    xml的作用
    本学期学习目标 企业级运用和互联网运用的区别
    JAVA EE 思维导图
    第六周
    第五周
    第四周作业
    javaee第三周
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/7258655.html
Copyright © 2020-2023  润新知