在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

Hadoop2.6 安装布置问题总结(单机、分布式)的更多相关文章

  1. Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0

    Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0 环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统.如果用的是 Ubuntu 系统,请查 ...

  2. Hadoop三种安装模式:单机模式,伪分布式,真正分布式

    Hadoop三种安装模式:单机模式,伪分布式,真正分布式 一 单机模式standalone单 机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守 ...

  3. Hadoop安装教程_伪分布式

    文章更新于:2020-04-09 注1:hadoop 的安装及单机配置参见:Hadoop安装教程_单机(含Java.ssh安装配置) 注2:hadoop 的完全分布式配置参见:Hadoop安装教程_分 ...

  4. 安装配置 Kafka Manager 分布式管理工具

    Kafka Manager 特性,它支持以下内容(官方译解): 管理多个群集容易检查集群状态(主题,消费者,偏移量,经纪人,副本分发,分区分配)运行首选副本选举使用选项生成分区分配,以选择要使用的代理 ...

  5. 在Centos 7上安装配置 Apche Kafka 分布式消息系统集群

    Apache Kafka是一种颇受欢迎的分布式消息代理系统,旨在有效地处理大量的实时数据.Kafka集群不仅具有高度可扩展性和容错性,而且与其他消息代理(如ActiveMQ和RabbitMQ)相比,还 ...

  6. 在 Linux 多节点安装配置 Apache Zookeeper 分布式集群

    规划: 三台物理服务器就形成了(法定人数).对于高可用性集群,您可以使用高于3的任何奇数.例如,如果设置5台服务器,则集群可以处理两个故障节点等. 物理服务器需要开启的端口 2888 , 3888 和 ...

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

    原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...

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

    摘自: http://www.cnblogs.com/kinglau/p/3796164.html http://www.powerxing.com/install-hadoop/ 当开始着手实践 H ...

  9. Hadoop安装教程_单机/伪分布式配置

    环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统(可参考使用VirtualBox安装CentOS).如果用的是 Ubuntu 系统,请查看相应的 Ubuntu安装Hadoo ...

随机推荐

  1. XAF-如何实现自定义权限系统用户对象

    本示例使用XPO. 新建一个XAF项目.填加两个类进来:   [DefaultClassOptions] public class Employee : Person { public Employe ...

  2. 2018年美国大学生数学建模竞赛(MCM/ICM) A题解题思路

  3. Vue实例 中的常用配置项

    创建Vue实例时,使用 new Vue ({//配置项}) 或者 组件定义中 export default {//配置项},所有的Vue组件都是Vue实例,并且接受相同的选项对象(一些根实例特有的选项 ...

  4. Centos7+安装python3+wkhtmltoPdf+pdfkit

    前言 这几天要做一个将HTML转化为PDF的小功能.期间经历了颇多的挫折,刚开始是通过java做的,后来发现java库做这个事情实在是效果不理想,前端做好了样式转完之后会出现很多问题.后来我想起来py ...

  5. 用Python做一个翻译软件

    前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类似的Demo,给百度翻译发送一个post请求可以实现任意词组的翻译,利用 ...

  6. 浅谈C与Java

    Java的方法调用过程 Java变量:基本类型变量.指针变量 push 压入新的栈桢 在栈桢内部创建局部基本类型变量,接收参数值 在栈桢内部创建局部指针变量,接收参数值后,该指针变量指向堆上实例 po ...

  7. 出现 org.springframework.beans.factory.BeanCreationException 异常的原因及解决方法

    1 异常描述 在从 SVN 检出项目并配置完成后,启动 Tomcat 服务器,报出如下错误: 2 异常原因 通过观察上图中被标记出来的异常信息,咱们可以知道 org.springframework.b ...

  8. Openstack逻辑架构

    一. Keystone  -身份认证管理 提供了认证和授权的服务,openstack不同的组件通信都要经过授权,确保正确的用户和服务是经过认证的.并且它集成了大量的认证机制,比如用户名/密码和令牌/基 ...

  9. Centos7 zabbix 分布式监控

    分布式监控 zabbix Server ===> zabbix agent (只能同一个局域网监控)     分布式监控:         a. 分担压力,降低负载         b. 多机房 ...

  10. pstree命令详解

    基础命令学习目录首页 pstree命令是用于查看进程树之间的关系,即哪个进程是父进程,哪个是子进程,可以清楚的看出来是谁创建了谁#pstree几个重要的参数:-A: 各进程树之间的连接以ASCII码字 ...