zoukankan      html  css  js  c++  java
  • 如何确定Hadoop守护进程分别会在哪台机器上运行

    经过一段时间的配置,Hadoop环境总算运行起来了,但是呢,为何主节点就没有跑tasktracker和datanode进程,slave节点也没有跑secondary进程,Hadoop是如何控制的呢?

    经过看权威指南(267页)和跟群里同学讨论,还有自己测试,最终确定:

    tasktracker和datanode这两个守护进程 —— 只会在conf/slaves文件里指定的那些节点上运行

    secondarynamenode 这个守护进程 —— 只会在conf/masters文件里指定的那个节点上运行

    namenode和jobtracker这两个守护进程 —— 他们只会在同一台server上运行,可以通过core-site.xml和mapred-site.xml来确定要运行的主机。并且,假如说配置文件里指定的是node1,那么必须要在node1这台server上运行start脚本。否则,tasktracker,datanode和secondarynamenode这些进程都能顺利启动,而namenode和jobtracker无法启动。

    实际测试结果:

    我的配置环境:(请对下面频繁出现的delly表示淡定和理解。。。因为我的英文名叫Delly。。。)

    dellypc-master,dellypc-1,dellypc-2三台主机。

    其中,masters文件里记录了dellypc-master(表示secondarynamenode在dellypc-master上运行),slaves文件里记录了dellypc-1和dellypc-2(表示datanode和tasktracker要在dellypc-1和dellypc-2上运行)。

    core-site.xml文件里:hdfs://dellypc-master:9000, mapred-site.xml文件里:<value>dellypc-master:9001</value>。(表示namenode跟jobtracker都在dellypc-master上运行,分别监听9000和9001端口)

    正常情况:

    在dellypc-master上执行start-all.sh脚本,完全正常。

    结果:

    dellypc-master:namenode,jobtracker和secondarynamenode

    dellypc-1:tasktracker和datanode

    dellypc-2:tasktracker和datanode

    测试1:

    在dellypc-1上执行start-all.sh脚本,namenode和jobtracker没有启动,其他进程正常启动。

    结果:

    dellypc-master:secondarynamenode

    dellypc-1:tasktracker和datanode

    dellypc-2:tasktracker和datanode

    测试2:

    修改core-site.xml: <value>hdfs://dellypc-1:9000</value>

    修改mapred-site.xml: <value>dellypc-1:9001</value>

    然后,再dellypc-1上执行start-all.sh,

    结果:

    dellypc-master:secondarynamenode

    dellypc-1:tasktracker,datanode和jobtracker

    dellypc-2:tasktracker和datanode

    奇怪的是namenode没有启动起来!按照预期,namenode应该会在dellypc-1上启动的嘛。。。为什么?

    纠结了一会儿,大概想出来问题的关键了:因为在dellypc-1上没有格式化的hdfs文件系统,所以无法正常启动namenode。

    也许你会跟我一样想说格式化一下试试呗,于是我就做了。。。但是格式化的时候失败了,因为我在hdfs-site.xml这个文件里设置了两个namenode元数据存储的目录,但是dellypc-1上没有其中的一个目录。于是我想就改回去吧。配置改回去,结果发现,datanode启动不了了。。。。。所以说啊,这个hdfs应该是一种分布式系统,跟所有的节点可能都会有关联。。。

    最后又把dellypc-1和dellypc-2上的hadoop文件夹删掉,又重新从主节点拷贝了一份,这才恢复了正常。

    这些试验,足够解决我的疑问了。希望也同样能帮到有同样疑问的同学。

  • 相关阅读:
    Miller-Rabin素性测试
    ###Canny边缘检测算子
    ###SIFT特征
    建立一个免费的网站
    ###C中的extern-static-const关键词
    ###Git使用问题
    ###Fedora下安装Retext
    ###使用phpmailer自动邮件提醒
    Markdown学习
    有线和无线同时连接,选择其一上网
  • 原文地址:https://www.cnblogs.com/delly/p/3849738.html
Copyright © 2011-2022 走看看