• Hadoop完全分布式配置及常见错误集合


    JDK配置和Hadoop安装网上教程比较多,就不多说了。

    1.ssh配置(实现在主机之间执行指令时不需要输入密码)。

         1).在所有机器上建立.ssh目录(假设在/home/user下)
           $mkdir .ssh
         2).在namenode上生成密钥对,$ssh-keygen -t rsa
         3).然后一直【Enter】,即默认保存在~/.ssh/id_rsa文件中。
         4).接着$cd ~/.ssh  (这几个个命令只需在NameNode上执行就OK了)
            $cp id_rsa.pub authorized_keys  
            $scp authorized_keys DataNode1:/home/user/.ssh 
            $scp authorized_keys DataNode2:/home/user/.ssh
         5).进入所有机器的.ssh目录,改变authorized_keys文件的许可权限:$chmod 644 authorized_keys
         这时从NameNode向其他机器(DataNode)发起SSH连接,只在第一次登录时需要输入密码。另外ssh连接过程中时出现
         "Agent admitted failure to sign using the key" 时,在windows下"服务"启动VMware Agent Service这个服务。再重启VMware即可。

    2.DataNode和NameNode未启动
         1).格式化分布式文件系统 $bin/hadoop namenode -format;
         2).启动hadoop守护进程  $bin/start-all.sh:
           Q: 可能会出现"chown: changing ownership of  ‘/hadoop-0.20.203.0/bin/../logs’: Operation not permitted"的错误,
           A:不能自动创建或读取文件夹,跟权限有关系:可能文件或目录是用root用户创建的,先用root登录把logs目录删了,然后换成普通账户,再运行bin/start-all.sh
         3).用jps命令检测启动情况 $bin/jps
         正常情况下,在NameNode上会启动NameNode、JobTracker、Secondary NameNode进程
            

      在DataNode上启动DataNode和TaskTracker进程;

      否则打开hadoop的日志文件logs查看对应未启动进程的log文件。检查conf下的三个配置文件(对于端口被占用同样适用)。
         附: 查看端口是否启动:netstat -tnl

    3.  1)浏览器访问时如http://NameNode:50070 Live Nodes是否为0(注意:进程启动正常,而Live Nodes也可能为0),
            可能是因为防火墙的原因,需要到所有的节点上执行service iptables stop 来关闭防火墙;
         2)还有http://NameNode:50030 的Nodes是否为0——>
          解决1:将各机器的tmp目录下的内容删除,再重新格式化文件系统,就可以正常运转了。
          解决2:可能是因为子节点的mapred-site.xml的配置错误,一定要配置成namenode的ip

    4. 最后运行WordCount实例,查看分布式部署结果图(1个master,1个slave):

         1).查看JobTracker运行状态(50030)

      2).查看NameNode状态(50070):

      

    总结:hadoop单机和伪分布配置都比较简单,但是完全的分布式在配置过程中各种各样的情况都会出现,也希望大家能少走一些弯路。

      注意linux下的权限机制,还有最重要的log文件~

    其他错误:

         1)Hadoop报错“could only be replicated to 0 nodes, instead of 1”

         2) Source name ugi already exists   (这个不知道怎么回事??)

  • 相关阅读:
    spring配置初始化出错
    Java常用工具类(计算MD5,验证码随机生成,天数差值计算)
    Java基础(静态static)
    websocket使用nginx代理后连接频繁打开和关闭
    关于kafka客户端版本与服务端版本不一致导致的一次坑
    kafka
    maven常用命令含义
    pg数据库org.postgresql.util.PSQLException: ERROR: "xxx" is not a sequence
    @Param注解和@Mapper注解
    springmvc对参数接收的两个注解@RequestParam和@RequestBody
  • 原文地址:https://www.cnblogs.com/Seiyagoo/p/2378926.html
Copyright © 2020-2023  润新知