Hadoop集群运行中遇到的问题

Hadoop集群运行问题

  • 注意事项
    • 安装与配置
    • 集群启动
    • 问题

注意事项

安装与配置

需要严格按照安装文档安装和修改配置文件。

在yarn-site.xml中需要添加如下配置参数指定yarn.resourcemanager.hostname为Master节点的IP。
yarn.resourcemanager.hostname 192.168.1.4
否则任务运行时会出现如下ConnectException:Connection refused:
11: og4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. java.net.ConnectException: Call From node06/192.168.1.4 to 0.0.0.0:8032 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused at sun.reflect.GeneratedConstructorAccessor3.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:801)

集群启动

需要严格按照文档步骤启动。

  1. 在启动hadoop之前必须要在每个节点上启动zookeeper。
  2. 在启动hdfs之前必须启动journalnode,因为在运行hdfs namenode -format的时候会与每个节点的journalnode通信,否则会出告警:
    org.apache.hadoop.ipc.Client: Failed to connect to server: node05/192.168.1.9:9000:
  3. 启动之前需要保证每个节点的telnet服务是正在运行的,这样可以保证能与端口9000连接。
    CentOS: yum install telnet
    yum install telnet-server
    service telnet restart
    Mac: launchctl load -w /System/Library/LaunchDaemons/telnet.plist
  4. 文件权限问题:在hadoop集群上运行ok,在本地运行时会以本地的用户名在集群上创建文件,运行过程中对文件的读写有问题。
  5. 两个namenode同时都为standby,可能是由于在nn1上start-dfs了,停掉之后又到nn2上start-dfs造成的,中间一定要有namenode format,并将active namenode的默认dfs目录copy到standby目录上。
  6. 有时候datanode创建失败,是因为namenode cluster-id与datanode不一致了,需要删除整个dfs文件,或者修改cluster-id试试
  7. start-all.sh脚本运行过程中有很多地方需要输入本地用户的密码,可以将本地的公钥id_rsa.pub里的内容添加到authorized_keys中:
    CentOS中以上两个文件的目录为 : /root/.ssh/
    Mac 中以上两个文件的目录为:/var/root/.ssh/

问题

  1. 当每个节点的资源不平衡时,是否可以让datanode在该节点启动?
  2. 资源是如何调度分配的?Memory和vcore是怎么划分和调度的?资源多的节点可以优先调度吗?

你可能感兴趣的:(Hadoop,大数据)