zoukankan      html  css  js  c++  java
  • Hadoop-2.2.0集群部署时live nodes数目不对的问题

    关于防火墙,hadoop本身配置都确定没任何问题,集群启动不报错,但打开50070页面,始终live nodes数目不对,于是我尝试/etc/hosts文件配置是否存在逻辑的错误:
    127.0.0.1       localhost
    192.168.1.233   localhost
    # Hadoop 
    192.168.1.233   ubuntu-233
    192.168.1.234   ubuntu-234
    192.168.1.235   ubuntu-235
    192.168.1.236   ubuntu-236
    上面是Master节点的hosts文件配置,233为master,234、235、236为slave节点。
    三个slave节点的hosts文件和上面一样,但都没有【192.168.1.23X  localhost】那条记录。

    当我在master节点hosts文件中删除【192.168.1.233 localhost】这条记录时,集群启动一切正常,并且能正确识别三个节点,正常上传下载文件。


    仔细分析上面的hosts文件,有个逻辑的问题:
    【192.168.1.233 localhost】
    【192.168.1.233 ubuntu-233】
    这两条记录同时配置在master节点的hosts文件中存在逻辑的冲突,
    为了做实验,我交换了上面两条记录,于是此时master节点的hosts文件为:
    127.0.0.1       localhost
    #192.168.1.233   localhost
    # Hadoop 
    192.168.1.233   ubuntu-233
    192.168.1.234   ubuntu-234
    192.168.1.235   ubuntu-235
    192.168.1.236   ubuntu-236
    192.168.1.233   localhost
    发现启动hadoop集群一切正常。
    问题确定是这两条记录引起的:
    【192.168.1.233 localhost】
    【192.168.1.233 ubuntu-233】
    一个ip对应两个名字,Linux系统应该只采纳排序靠头的记录,当之后有同ip的记录时,估计会抛弃。
    于是hadoop集群的master节点只知道:【192.168.1.233 localhost】
    我这推测,当hadoop的内部机制会把【192.168.1.233 localhost】的映射发送到各个slave节点,最后造成一个回环,每个节点获得namenode的信息都是localhost名字,而具体到各个机器,localhost
    反向映射到自己,最后造成集群中一个死路回环。

    具体hadoop的内部机制是否如上推测,有待于进一步跟源码。但这或许是一个hadoop的小bug。

    最后建议:/etc/hosts文件,一个ip只对应一个有效的机器名字,避免逻辑冗余与回环

    来自:http://blog.csdn.net/u013281331/article/details/17963363

  • 相关阅读:
    内存分配问题
    C++ assert 的一点说明
    强大的stringstream
    C++中随机数
    C++ 中new
    C++ 中string 详解 转载自 博客园
    未命名名字空间
    使用ifstream和getline读取文件内容[c++]
    6.bootstrap练习笔记-缩略图和list-group
    3.bootstrap练习笔记-媒体内容
  • 原文地址:https://www.cnblogs.com/chasewade/p/3509305.html
Copyright © 2011-2022 走看看