• 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

  • 相关阅读:
    Linux rabbitmq的安装和安装amqp的php插件
    php 安装xdebug扩展
    php 安装pdo_mysql 扩展
    php 安装redis扩展
    给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
    php 实现多线程
    PHP-Fcgi下PHP的执行时间设置方法
    nginx php 安装
    PHP-fpm启动时 出现 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'fileinfo.so' in Unknown on line 0
    CentOS 6.7 编译PHP7 make时出现错误:undefined reference to `libiconv_close’
  • 原文地址:https://www.cnblogs.com/chasewade/p/3509305.html
Copyright © 2020-2023  润新知