问题1:

报错信息如下:

  Container exited with a non-zero exit code 143  Killed by external signal
解决方案:

分配的资源不够,加大内存或者调整代码,尽量避免类似JsonObject这样的大对象过度消耗内存,或者Include below properties in yarn-site.xml and restart VM

<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers</description>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>





#####问题2:
报错信息如下:
```
HDFS进入安全模式: Name node is in safemode mode
```

解决方案:
退出安全模式, 执行命令:	hadoop dfsadmin -safemode leave





#####问题3:
报错信息如下:
```
INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-Java classes where applicable -- hadoop的本地库加载失败。
```

解决方案:

检查native库的版本信息,32bit的版本和64bit的版本在不匹配的机器上会加载失败,检查的命令是file <native-so-file>

native库依赖的glibc的版本问题。如果在高版本gcc(glibc)的机器上编译的native库,放到低版本的机器上使用,会由于glibc版本不一致导致该错误。

Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。

如果加载成功,输出为:

DEBUG util.NativeCodeLoader - Trying to load the custom-built native-hadoop library...
INFO util.NativeCodeLoader - Loaded the native-hadoop library

如果加载失败,则报错为

Unable to load native-hadoop library for your platform...

相关的配置:

  1. 在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:(Hadoop默认的配置为启用本地库)
<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
  1. 另外,可以在环境变量中设置使用本地库的位置:
export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs





#####问题4:
报错信息如下:
```
maps to localhost, but this does not map back
```

解决方案:
原因:  因为DNS服务器把 192.168.x.x 的地址都反向解析成 localhost ,而DNS服务器不是自己的,不能改。
办法: 编辑ssh 客户端的 /etc/hosts 文件,把出问题的IP 地址和主机名加进去,就不会报这样的错了。





#####问题5:
报错信息如下:
```
java.io.IOException: Incompatible clusterIDsin /home/wangming/hadoop-data/dfs/data
```

解决方案:
格式化HDFS前, 先将原来的hadoop目录删除





#####问题6:
报错信息如下:
```
jps命令正常,但是8088端口的WEB页面无法访问
```

解决方案:
检查一下防火墙和selinux状态, 将防火墙和selinux关闭
防火墙:
service iptables status

关闭selinux:

  1. 永久修改
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
  1. 临时修改,执行以下命令:
setenforce 0

内容扩展:

setenforce 1: 设置SELinux 成为enforcing模式
setenforce 0: 设置SELinux 成为permissive模式





#####问题7:
报错信息如下:
```
8088端口访问正常,但是看不到datanode节点
```

解决方案:
可能出现的问题和解决方案:
1.8080端口没有打开, 手动启动yarn
2.8080端口被其他进程占用, kill掉占用该端口的进程, 然后重启yarn
3.8080端口被其他进程占用, 若(2)中占用的程序不能kill调用,则在yarn-site.xml配置文件中配置yarn.resourcemanager.address项, 将8080端口改为其他端口号, 比如: 8085





#####问题8:
报错信息如下:
```
org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.216.131:54310
```

解决方案:

hostname的问题,同时,namenode与datanode的/etc/hosts内容都必须是ip位址与hostname的对应,不能使用127.0.0.1代替本机的ip地址,否则hadoop使用hostname找IP时,会以127.0.0.1作为IP地址.

1. 检查slave机器到master机器的连通性;
2. 检查master机器上,是否打开了192.168.216.131:54310的监听(netstat -nap | grep 54310)





#####问题9:
报错信息如下:
```
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain:
```

解决方案:
检查hostname是否在/etc/hosts文件中配置, 若无则将hostname配置到/etc/hosts文件中





#####问题10:
1.报错信息如下:
```
java.net.NoRouteToHostException: No route to host
```

解决方案:
zookeeper的IP要配对





#####问题11:
报错信息如下:
```
CALL TO LOCALHOST/127.0.0.1:9000
```

解决方案:

检查网卡,主机名,主机名与IP的映射是否正确:

  /etc/sysconfig/network-scripts/ifcfg-eth0            网卡:
/etc/sysconfig/network 主机名:
/etc/hosts 主机名与IP的映射:





#####问题12:
报错信息如下:
```
打开namenode:50070页面,Datanode Infomation只显示一个节点
```

解决方案:
检查主机名,主机名与IP的映射,SSH配置是够正确
主机名:/etc/sysconfig/network
主机名与IP的映射:/etc/hosts
SSH配置:
~/.ssh/config
~/.ssh/authorized_keys
~/.ssh/known_hosts





#####问题13:
报错信息如下:
```
hadoop的文件不能下载以及YARN中Tracking UI不能访问历史日志
```

解决方案:
  windows系统不能解析域名所致,将/etc/hosts文件中主机名与IP的映射配置到到windows系统下的C:\Windows\System32\drivers\etc\hosts文件中





#####问题14:
5.报错信息如下:
```
NativeCrc32.nativeComputeChunkedSumsByteArray
```

解决方案:
  配置eclipse的hadoop-home,bin和system32文件夹中加入64位的2.6版本的hadoop.dll





#####问题15:
报错信息如下:
```
HDFS误删文件如何恢复
```

解决方案:

$HADOOP_HOME/etc/hadoop/core-site.xml文件中添加以下配置

<property>
<name>fs.trash.interval</name>
<value>2880</value>
<description>HDFS垃圾箱设置,可以恢复误删除,配置的值为分钟数,0为禁用</description>
</property>

恢复文件执行hdfs dfs -mv /user/root/.Trash/Current/误删文件 /原路径







搭建Hadoop所遇过的坑的更多相关文章

  1. 搭建Spark所遇过的坑

    一.经验 1.Spark Streaming包含三种计算模式:nonstate .stateful .window 2.kafka可通过配置文件使用自带的zookeeper集群 3.Spark一切操作 ...

  2. Ubuntu搭建Hadoop的踩坑之旅(一)

    本文将介绍如何使用虚拟机一步步从安装Ubuntu到搭建Hadoop伪分布式集群. 本文主要参考:在VMware下安装Ubuntu并部署Hadoop1.2.1分布式环境 - CSDN博客 一.所需的环境 ...

  3. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)

    系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...

  4. 阿里云搭建hadoop集群服务器,内网、外网访问问题(详解。。。)

    这个问题花费了我将近两天的时间,经过多次试错和尝试,现在想分享给大家来解决此问题避免大家入坑,以前都是在局域网上搭建的hadoop集群,并且是局域网访问的,没遇见此问题. 因为阿里云上搭建的hadoo ...

  5. 使用Docker搭建Hadoop集群(伪分布式与完全分布式)

    之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...

  6. Centos 搭建Hadoop

    Centos搭建Hadoop 一.搭建Hadoop需要JDK环境,首先配置JDK 二.下载haoop 三.在Centos服务器上解压下载好的安装包 四.修改配置文件 4.1 hadoop-env.sh ...

  7. [Hadoop] 在Ubuntu系统上一步步搭建Hadoop(单机模式)

    1 Hadoop的三种创建模式 单机模式操作是Hadoop的默认操作模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,会保守地选择最小配置,即单机模式.该模式主要用于开发调试M ...

  8. 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群

    本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...

  9. 基于Eclipse搭建Hadoop源码环境

    Hadoop使用ant+ivy组织工程,无法直接导入Eclipse中.本文将介绍如何基于Eclipse搭建Hadoop源码环境. 准备工作 本文使用的操作系统为CentOS.需要的软件版本:hadoo ...

随机推荐

  1. LVM和RAID

    RAID: Redundant Arrays of Inexpensive Disks Independent Berkeley: A case for Redundent Arrays of Ine ...

  2. 00.Python中下划线的5种含义

    转自这里 先放上 简短的"速查表",罗列了五种Python下划线模式的含义: 模式 举例 含义 单前导下划线 _var 命名约定,仅供内部使用.通常不会由Python解释器强行执行 ...

  3. 洛谷P1055 ISBN号码【字符数组处理】

    题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括 99 位数字. 11 位识别码和 33 位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号 ...

  4. 【codeforces 797E】Array Queries

    [题目链接]:http://codeforces.com/problemset/problem/797/E [题意] 给你一个n个元素的数组; 每个元素都在1..n之间; 然后给你q个询问; 每个询问 ...

  5. nyoj_102_次方求模_201308221547

    次方求模时间限制:1000 ms  |  内存限制:65535 KB 难度:3描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100)每组测试只有一行,其中有三 ...

  6. Java 和JS Base64加密

    项目在登录.注册等场景实现时,经常会用到用户信息前端加密,然后项目后端二次解密,避免信息直接在浏览器上以明文显示. 本文主要介绍了base64加密的方式处理代码,不支持中文 源码如下: base64. ...

  7. vjudge B - Design T-Shirt

    B - Design T-Shirt 思路:水题,模拟即可. #include<cstdio> #include<cstring> #include<iostream&g ...

  8. 你还在苦逼地findViewById吗?使用ButterKnife从此轻松定义控件

    前段时间笔者在苦逼地撸代码~最后发现有些复杂的界面在写了一屏幕的findviewbyid~~~另一堆setOnXXXListener~有没有方便一点的方法让我们简单点不用每次都定义一次.find一次, ...

  9. js判断object的具体类型(或者说判断object的类class)

    The JavaScript specification gives exactly one proper way to determine the class of an object: Objec ...

  10. ASP.NET快速开发框架不得不做的几个功能、高大上档次后台管理UI界面

    俗话说磨刀不误砍柴工,确实,一早上花一个小时去磨刀一天下来肯定能多砍很多柴.我们做软件开发也是同样的道理,有套好开发框架在手里,开发也是事半功倍.那么一套MVC快速开发框架至少得具有哪些功能才能帮我们 ...