文档章节

Hadoop使用常见问题以及解决方法

peizhenfly
 peizhenfly
发布于 2015/02/06 06:37
字数 846
阅读 13
收藏 0
1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out Answer: 
程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。 修改办法: 修改2个文件。 
        /etc/security/limits.conf vi /etc/security/limits.conf 加上: 
* soft nofile 102400 * hard nofile 409600  
        $cd /etc/pam.d/     $sudo vi login 
        添加        session    required     /lib/security/pam_limits.so  


2:Too many fetch-failures Answer: 

出现这个问题主要是结点间的连通不够全面。 1) 检查 、/etc/hosts    要求本机ip 对应 服务器名 
   要求要包含所有的服务器ip + 服务器名 2) 检查 .ssh/authorized_keys 
   要求包含所有服务器(包括其自身)的public key  


3:处理速度特别的慢 出现map很快 但是reduce很慢 而且反复出现 reduce=0%  Answer: 结合第二点,然后 

修改 conf/hadoop-env.sh 中的export HADOOP_HEAPSIZE=4000   


4:能够启动datanode,但无法访问,也无法结束的错误 

在重新格式化一个新的分布式文件时,需要将你NameNode上所配置的dfs.name.dir这一namenode用来存放NameNode 持久存储名字空间及事务日志的本地文件系统路径删除,同时将各DataNode上的dfs.data.dir的路径 DataNode 存放块数据的本地文件系统路径的目录也删除。如本此配置就是在
NameNode上删除
/home/hadoop/NameData,在DataNode上删除/home/hadoop/DataNode1和/home/hadoop/DataNode2。这是因为Hadoop在格式化一个新的分布式文件系统时,每个存储的名字空间都对应了建立时间的那个版本(可以查看/home/hadoop /NameData/current目录下的VERSION文件,上面记录了版本信息),在重新格式化新的分布式系统文件时,最好先删除NameData 目录。必须删除各DataNode的dfs.data.dir。这样才可以使namedode和datanode记录的信息版本对应。 

注意:删除是个很危险的动作,不能确认的情况下不能删除!!做好删除的文件等通通备份!!  

5java.io.IOException: 

Could not obtain block: blk_194219614024901469_1100 file=/user/hive/warehouse/src_20090724_log/src_20090724_log 出现这种情况大多是结点断了,没有连接上。  

6:java.lang.OutOfMemoryError: Java heap space 
出现这种异常,明显是jvm内存不够得原因,要修改所有的datanode的jvm内存大小。 Java -Xms1024m -Xmx4096m 

一般jvm的最大内存使用应该为总内存大小的一半,我们使用的8G内存,所以设置为4096m,这一值可能依旧不是最优的值。 

7: Namenode in safe mode  解决方法 

bin/hadoop dfsadmin -safemode leave  


8:java.net.NoRouteToHostException: No route to host j解决方法: 

sudo /etc/init.d/iptables stop  


9:更改namenode后,在hive中运行select 依旧指向之前的namenode地址 这是因为:When youcreate a table, hive actually stores the location of the table (e.g. 

hdfs://ip:port/user/root/...) in the SDS and DBS tables in the metastore . So when I bring up a new cluster the master has a new IP, but hive's metastore is still pointing to the locations within the old 
cluster. I could modify the metastore to update with the new IP everytime I bring up a cluster. But the easier and simpler solution was to just use an elastic IP for the master 
所以要将metastore中的之前出现的namenode地址全部更换为现有的namenode地址

本文转载自:http://wenku.baidu.com/link?url=HxGJ1subALDqahmb1ID0Cof3i4s97A4N-ywZ2jb1wuW7Ho_L-6zghyJekQdl0Ekll...

共有 人打赏支持
peizhenfly
粉丝 1
博文 38
码字总数 1188
作品 0
西安
程序员
DKhadoop安装配置教程与常见问题解决方法

上周分别就DKHadoop的安装准备工作以及服务器操作系统配置写了两篇分享的文章,这是个人第一次尝试写一个系统性的分享文章,必然会有很多疏漏的地方,还望见谅吧。今天分享的是DKHadoop安装以...

adnb34g
07/10
0
0
Hive 常见问题

HIVE启动报错 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/MRVersion at org.apache.hadoop.hive.shims.Hadoop23Shims.isMR2(Hadoop23Shims.java......

litterMo
2016/07/15
624
0
关于学习Hadoop中未总结的资料

1)Cygwin相关资料   (1)Cygwin上安装、启动ssh服务失败、ssh localhost失败的解决方案   地址:http://blog.163.com/pwcrab/blog/static/16990382220107267443810/   (2)windows...

Carl_
2015/06/25
0
0
搭建Hadoop2.7.3+Hive2.1.1及MySQL(配置Hive+MySQL+Connector)(三)

续上一篇: 搭建Hadoop2.7.3+Hive2.1.1及MySQL(配置Hive+Hadoop)(二) 准备工作下载最新连接器地址 https://dev.mysql.com/downloads/connector/j/ 例子:下载mysql-connector-java-5.1.41.t...

roy_88
2017/03/08
0
0
CentOS SSH无密码登录原理,配置以及常见问题

1.原理简介 为了便于理解,假设需要在hadoop148这台机器上可以通过无密码登录的方式连接到hadoop107上。 首先在 hadoop148上生成一个密 钥对,包括一个公钥和一个私钥,并将公钥复制到hadoo...

双月通天
2016/03/22
102
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
0
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
31
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部