zoukankan      html  css  js  c++  java
  • Hadoop2.6 安装布置问题总结(单机、分布式)

    在debian7虚拟机上安装hadoop2.6,期间遇到一些问题在此记录一下。

    安装参考:

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS


    1、安装后出现

    ...

    master: Error: JAVA_HOME is not set and could not be found.

    ...

    需要看下对应日志的详细错误信息,在安装hadoop目录下(我的设置 HADOOP_PREFIX=/usr/local/hadoop) $HADOOP_PREFIX/logs/hadoop-hadoop-node-debian.log,根据信息可知道hadoop在运行环境中找不到 JAVA_HOME 变量,找不到jdk的位置

    输入 env 发现我们已经设置了,但是hadoop发现不了,解决方法修改hadoop的环境设置文件,使用jdk的绝对路径:

    在 $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh 中,可以发现

    export JAVA_HOME=${JAVA_HOME}

    将${JAVA_HOME} 改成jdk绝对路径(我的jdk路径为 /usr/lib/jvm/jdk1.8.0_111),即

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111

    修改后重启hadoop,问题解决


    2、启动 start-dfs.sh 失败

    启动dfs时(sh ./sbin/start-dfs.sh)出现报错

    ...

    Syntax error: word unexpected (expecting “)”)”

    ...

    根据其信息找到对应的脚步文件发现并没有问题,最后发现是bash的问题,sh 等同于 bash --posix,直接启动或使用bash启动就正常了:

    ./sbin/start-dfs.sh

    bash ./sbin/start-dfs.sh

    参考:https://blog.csdn.net/qq_16018407/article/details/78899796


    3、启动start-dfs.sh后,使用jps发现 namesecondary进程不在,其对应报错:

    ...

    ... FATAL org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Failed to start secondary namenode  

    java.net.BindException: Port in use: 0.0.0.0:50090  

    ...

    发现端口已存在被占用,应该是前面启动失败时导致的问题解决方法就是找到对应的进程id然后kill掉:

    sudo lsof -i:50090 -P  //找到对应的进程id

    sudo kill -9 PID  //kill掉对应的进程

    再重启 start-dfs.sh即可(先执行stop-dfs.sh),问题解决

    参考:

    Hadoop 安装配置错误总结


    更新至 2018-6-5


    最近搭了一个四台虚拟机的分布式集群,和进行了一次动态增加节点,故把遇到的问题分享一下。

    4、克隆虚拟机:

    我使用的是VMware Workstation,右键配置好的虚拟机--》管理--》克隆--》一直下一步到命名新虚拟机,指定安装位置--》完成

    之后要编辑虚拟机--》网络适配器--》高级--》重新生成Mac地址--》确定。


    5、指定ip和主机名

    编辑 /etc/network/interfaces 文件可指定ip 和 网关等信息,然后可以使用 /etc/init.d/networking restart 重启生效;

    编辑 /etc/hostname 文件可指定主机名,同时还需要修改 /etc/hosts 文件修改集群中的 ip和name关系,方便使用;


    6、同步时间ntp

    先下载ntp:

    apt-get install ntp

    然后修改ntp设置:

    server [ip] iburst

    重启:

    /etc/init.d/ntp restart

    查看结果:

    ntpq -p


    7、动态增加节点步骤:

    • a、修改新服hostname和hosts文件,hosts文件需要同步到集群所有服务器
    • b、设置所有namendoe免密登录到新服
    • c、修改主节点slave文件,添加新增节点的ip信息(集群重启时使用)
    • d、将hadoop的配置文件scp到新的节点上
    • e、添加datanode:
    1. 在新增的节点上,运行sbin/hadoop-daemon.sh start datanode即可

    2. 然后在namenode通过hdfs dfsadmin -report查看集群情况

      (后面3步没用到)

    3. 最后还需要对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,即hdfs dfsadmin -setBalancerBandwidth 67108864即可

    4. 默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%

    5. 然后启动Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可

    • f、添加nodemanager:
    1.  在新增节点,运行sbin/yarn-daemon.sh start nodemanager即可
    2.  在ResourceManager,通过yarn node -list查看集群情况

    参考:

    Hadoop 2.6.0动态添加节点


    更新至2018-7-12

  • 相关阅读:
    js日期 操作
    c# 调用c++ dll
    多维数组与交错数组的转换
    c++多态
    c++ 指向类成员函数的函数指针
    c++虚析构函数的使用及其注意点
    c++模板实现 linq
    Php 常用类
    Php ORM 对象关系映射
    Php OpenID
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/9139595.html
Copyright © 2011-2022 走看看