学习hadoop 出现的问题,以及解决方案

学习hadoop 出现的问题,以及解决方案 博客分类: 云计算 hadoopjvmeclipse&">nbsp;

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记录的信息版本对应。

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

5:java.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,这一值可能依旧不是最优的值。(其实对于最好设置为真实物理内存大小的0.8)

7:出现map%,但是呢reduce到98%左右的时候呢,就直接进failedjobs了

解决办法:

检查mapred.map.tasks是不是设置的太多了,设置太多的话会导致处理大量的小文件

检查mapred.reduce.parallel.copies是否设置合适。

8:

系统根目录下的/tmp文件夹是不可以删除的

否则bin/hadoop jps

会出现异常:

Exception in thread "main" java.lang.NullPointerException  at sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager.activeVms(LocalVmManager.java:127)

at sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.activeVms(MonitoredHostProvider.java:133)

at sun.tools.jps.Jps.main(Jps.java:45)

同时

bin/hive

Unable to create log directory /tmp/hadoopuser

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记录的信息版本对应。

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

5:java.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,这一值可能依旧不是最优的值。(其实对于最好设置为真实物理内存大小的0.8)

7:出现map%,但是呢reduce到98%左右的时候呢,就直接进failedjobs了

解决办法:

检查mapred.map.tasks是不是设置的太多了,设置太多的话会导致处理大量的小文件

检查mapred.reduce.parallel.copies是否设置合适。

8:

系统根目录下的/tmp文件夹是不可以删除的

否则bin/hadoop jps

会出现异常:

Exception in thread "main" java.lang.NullPointerException  at sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager.activeVms(LocalVmManager.java:127)

at sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.activeVms(MonitoredHostProvider.java:133)

at sun.tools.jps.Jps.main(Jps.java:45)

同时

bin/hive

Unable to create log directory /tmp/hadoopuser

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记录的信息版本对应。

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

5:java.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,这一值可能依旧不是最优的值。(其实对于最好设置为真实物理内存大小的0.8)

7:出现map%,但是呢reduce到98%左右的时候呢,就直接进failedjobs了

解决办法:

检查mapred.map.tasks是不是设置的太多了,设置太多的话会导致处理大量的小文件

检查mapred.reduce.parallel.copies是否设置合适。

8:

系统根目录下的/tmp文件夹是不可以删除的

(jps is based on jvmstat and it needs to be able to secure a memory mapped file on the temporary file system.

否则bin/hadoop jps

会出现异常:

Exception in thread "main" java.lang.NullPointerException  at sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager.activeVms(LocalVmManager.java:127)

at sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.activeVms(MonitoredHostProvider.java:133)

at sun.tools.jps.Jps.main(Jps.java:45)

同时

bin/hive

Unable to create log directory /tmp/hadoopuser

hadoop java.io.ioexception:cannot open filename /user/...

在eclipse里面写程序运行时,出现了这样的错误,hadoop java.io.ioexception:cannot open filename /user/...

弄了半天,还查看了日志文件,可能是1)输入文件名写错了2)把hadoop.temp.dir下全删了,datanode的也是,然后重新格式化重启hadoop3)在安全模式,等待自动停止或手动停止安全模式

10/10/25 16:45:39 INFO mapred.JobClient:  map 92% reduce 30%

10/10/25 16:45:44 INFO mapred.JobClient: Task Id : attempt_201010251638_0003_m_000013_1, Status : FAILED

java.io.IOException: Cannot open filename /user/eryk/input/conf

额,发现是一个命令打的有问题

错误的命令:

eryk@eryk-1520:~/tmp/hadoop$ bin/hadoop fs -put conf/ input

包含的内容:

eryk@eryk-1520:~/tmp/hadoop$ bin/hadoop fs -lsr

drwxr-xr-x   - eryk supergroup          0 2010-10-25 16:49 /user/eryk/input

-rw-r--r--   1 eryk supergroup       3936 2010-10-25 16:48 /user/eryk/input/capacity-scheduler.xml

drwxr-xr-x   - eryk supergroup          0 2010-10-25 16:49 /user/eryk/input/conf

-rw-r--r--   1 eryk supergroup       3936 2010-10-25 16:49 /user/eryk/input/conf/capacity-scheduler.xml

-rw-r--r--   1 eryk supergroup        535 2010-10-25 16:49 /user/eryk/input/conf/configuration.xsl

-rw-r--r--   1 eryk supergroup        388 2010-10-25 16:49 /user/eryk/input/conf/core-site.xml

-rw-r--r--   1 eryk supergroup       2360 2010-10-25 16:49 /user/eryk/input/conf/hadoop-env.sh

-rw-r--r--   1 eryk supergroup       1245 2010-10-25 16:49 /user/eryk/input/conf/hadoop-metrics.properties

-rw-r--r--   1 eryk supergroup       4190 2010-10-25 16:49 /user/eryk/input/conf/hadoop-policy.xml

-rw-r--r--   1 eryk supergroup        258 2010-10-25 16:49 /user/eryk/input/conf/hdfs-site.xml

-rw-r--r--   1 eryk supergroup       2815 2010-10-25 16:49 /user/eryk/input/conf/log4j.properties

-rw-r--r--   1 eryk supergroup        274 2010-10-25 16:49 /user/eryk/input/conf/mapred-site.xml

-rw-r--r--   1 eryk supergroup         10 2010-10-25 16:49 /user/eryk/input/conf/masters

-rw-r--r--   1 eryk supergroup         10 2010-10-25 16:49 /user/eryk/input/conf/slaves

-rw-r--r--   1 eryk supergroup       1243 2010-10-25 16:49 /user/eryk/input/conf/ssl-client.xml.example

-rw-r--r--   1 eryk supergroup       1195 2010-10-25 16:49 /user/eryk/input/conf/ssl-server.xml.example

-rw-r--r--   1 eryk supergroup        535 2010-10-25 16:48 /user/eryk/input/configuration.xsl

-rw-r--r--   1 eryk supergroup        388 2010-10-25 16:48 /user/eryk/input/core-site.xml

-rw-r--r--   1 eryk supergroup       2360 2010-10-25 16:48 /user/eryk/input/hadoop-env.sh

-rw-r--r--   1 eryk supergroup       1245 2010-10-25 16:48 /user/eryk/input/hadoop-metrics.properties

-rw-r--r--   1 eryk supergroup       4190 2010-10-25 16:48 /user/eryk/input/hadoop-policy.xml

-rw-r--r--   1 eryk supergroup        258 2010-10-25 16:48 /user/eryk/input/hdfs-site.xml

-rw-r--r--   1 eryk supergroup       2815 2010-10-25 16:48 /user/eryk/input/log4j.properties

-rw-r--r--   1 eryk supergroup        274 2010-10-25 16:48 /user/eryk/input/mapred-site.xml

-rw-r--r--   1 eryk supergroup         10 2010-10-25 16:48 /user/eryk/input/masters

-rw-r--r--   1 eryk supergroup         10 2010-10-25 16:48 /user/eryk/input/slaves

-rw-r--r--   1 eryk supergroup       1243 2010-10-25 16:48 /user/eryk/input/ssl-client.xml.example

-rw-r--r--   1 eryk supergroup       1195 2010-10-25 16:48 /user/eryk/input/ssl-server.xml.example

发现里面的内容重复了一遍

修改后的命令:

eryk@eryk-1520:~/tmp/hadoop$ bin/hadoop fs -put conf input

只是去掉了conf后面的"/"

里面的内容:

eryk@eryk-1520:~/tmp/hadoop$ bin/hadoop fs -lsr

drwxr-xr-x   - eryk supergroup          0 2010-10-25 16:49 /user/eryk/input

-rw-r--r--   1 eryk supergroup       3936 2010-10-25 16:49 /user/eryk/input/capacity-scheduler.xml

-rw-r--r--   1 eryk supergroup        535 2010-10-25 16:49 /user/eryk/input/configuration.xsl

-rw-r--r--   1 eryk supergroup        388 2010-10-25 16:49 /user/eryk/input/core-site.xml

-rw-r--r--   1 eryk supergroup       2360 2010-10-25 16:49 /user/eryk/input/hadoop-env.sh

-rw-r--r--   1 eryk supergroup       1245 2010-10-25 16:49 /user/eryk/input/hadoop-metrics.properties

-rw-r--r--   1 eryk supergroup       4190 2010-10-25 16:49 /user/eryk/input/hadoop-policy.xml

-rw-r--r--   1 eryk supergroup        258 2010-10-25 16:49 /user/eryk/input/hdfs-site.xml

-rw-r--r--   1 eryk supergroup       2815 2010-10-25 16:49 /user/eryk/input/log4j.properties

-rw-r--r--   1 eryk supergroup        274 2010-10-25 16:49 /user/eryk/input/mapred-site.xml

-rw-r--r--   1 eryk supergroup         10 2010-10-25 16:49 /user/eryk/input/masters

-rw-r--r--   1 eryk supergroup         10 2010-10-25 16:49 /user/eryk/input/slaves

-rw-r--r--   1 eryk supergroup       1243 2010-10-25 16:49 /user/eryk/input/ssl-client.xml.example

-rw-r--r--   1 eryk supergroup       1195 2010-10-25 16:49 /user/eryk/input/ssl-server.xml.example

时间: 2024-08-04 00:59:02

学习hadoop 出现的问题,以及解决方案的相关文章

一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop                     NameNode.DFSZKFailoverController(zkfc)slaver1    192.168.199.131    jdk.hadoop                       NameNode.DFSZKFailoverController(

大讲台浅谈什么是Hadoop及如何学习Hadoop

首先hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序.HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streamingaccess)文件系统中的数据. Hadoop的框架最核心的设计就是:HDFS和MapRe

什么是Hadoop,怎样学习Hadoop

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据. Hadoop的框架最核心的设计就是:HDFS和

求openstack、hadoop和磁盘阵列共存的解决方案

问题描述 目前项目环境搭建需要openstack和hadoop环境,openstack负责分配不同虚拟镜像,hadoop主要负责数据存储和将来mapreduce的计算.网络环境有32台服务器,一个磁盘阵列,要求提供高速文件访问和在不同虚拟机环境下的并行计算.请有经验的行家给个合理的解决方案.自己的一些想法:1.看到Savannaproject的基本思路是把hadoop架设在openstack上,应该是利用openstack灵活分配虚拟镜像的能力,定制NameNode.DataNode等节点镜像,

一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序

一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流.反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象.Java序列化(java.io.Serializable) 二:Hadoop序列化的特点 (1):序列化格式特点: 紧凑:高效使用存储空间. 快速:读写数据的额外开销小. 可扩展:可透明地读取老格式的数据. 互操作:支持多语言的交互. (2):Hadoop的序列化格式:Writable接口 三:Hadoop序列化的作用: (1):

部署Hadoop相关的四个解决方案

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;     Apache Hadoop距离企业级应用可以说是越来越近了,不少大型公司在他们的系统中都部署了Hadoop的相关解决方案.然而对于公司的高层领导来说,它只是一个符号化的名词. Hadoop到底适不适合我们企业?部署Hadoop到底划不划算?它能给我们带来什么?对于究竟要不要投资这项技术,你需要向领导解释清楚.本文就介绍了一些关于Hadoop的常见问题,希望能

Castle学习笔记----ActiveRecord配置封装的解决方案

使用ActiveRecord开发的过程中我想大家都想到过,配置那么多要是不Ctrl+C/Ctrl+V还得自己去记在脑袋里,必然杂弄? 无论你是使用Hashtable,ArrayList等集合对象来处理还是使用web.config类配置或是使用XML文件单独配置,始终你都得记住或是让你的硬盘帮你记住ActiveRecord的配置串.方便你Ctrl+C/Ctrl+V. [使用集合对象处理] Hashtable properties = new Hashtable(); properties.Add(

给刚学习Hadoop朋友的一些建议

说到大数据,很多人纷纷开始关注大数据和Hadoop以及数据挖掘和数据可视化了,我现在创业,遇到很多传统数据行业往Hadoop上面去转型的公司和个人,提了很多问题,大多数问题还都是差不多的.所以我想整理一些,也可能是很多人都关注的问题. 关于Hadoop版本的选择? 目前为止,作为半只脚迈进Hadoop大门的人,我建议大家还是选择Hadoop 1.x用.可能很多人会说,Hadoop都出到2.4,为啥还用1.x呢,说这话一听就没玩过hadoop. 理由一: Hadoop 1.x和2.x是完全两个不同

刚开始学习hadoop

刚刚写了或的表描述.扫描表数据.添加表数据.创建表.代码如下: package com.hbase.test; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor;