hadoop运维笔记1

标签: hadoop 运维 笔记 | 发表时间:2015-01-20 15:14 | 作者:xiaowei2002
出处:http://www.iteye.com

hadoop使用中的几个小细节(二)

1 某次正常运行mapreduce实例时,抛出错误

java.io.IOException: All datanodes xxx.xxx.xxx.xxx:xxx are bad. Aborting…

at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2158)

at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)

at org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)

java.io.IOException: Could not get block locations. Aborting…

at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2143)

at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1400(DFSClient.java:1735)

at org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1889)

经查明,问题原因是linux机器打开了过多的文件导致。用命令ulimit -n可以发现linux默认的文件打开数目为1024,修改/ect/security/limit.conf,增加hadoop soft 65535

再重新运行程序(最好所有的datanode都修改),问题解决

P.S:据说hadoop dfs不能管理总数超过100M个文件,有待查证

2 运行一段时间后hadoop不能stop-all.sh的问题,显示报错

no tasktracker to stop ,no datanode to stop

问题的原因是hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。

在配置文件中的export HADOOP_PID_DIR可以解决这个问题



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [hadoop 运维 笔记] 推荐:

hadoop运维笔记1

- - 企业架构 - ITeye博客
hadoop使用中的几个小细节(二). 1 某次正常运行mapreduce实例时,抛出错误. 经查明,问题原因是linux机器打开了过多的文件导致. 用命令ulimit -n可以发现linux默认的文件打开数目为1024,修改/ect/security/limit.conf,增加hadoop soft 65535.

Hadoop学习笔记之在Eclipse中远程调试Hadoop

- - BlogJava-首页技术区
话说Hadoop 1.0.2/src/contrib/eclipse-plugin只有插件的源代码,这里给出一个我打包好的对应的Eclipse插件:. 下载后扔到eclipse/dropins目录下即可,当然eclipse/plugins也是可以的,前者更为轻便,推荐;重启Eclipse,即可在透视图(Perspective)中看到Map/Reduce.

todd的hadoop world的ppt笔记

- - 蓝色时分
todd的ppt是本次hadoop world大会上的亮点. 之前知道他让hdfs随机读性能提升了2-3倍. (都是ppt上翻译过来再加上理解的). IO cache上的改进: 1 增加了预读,避免大量随机seek,对mapreduce这样的只读一次数据的应用很有效 2 去掉了write在OS层面的cache,因为对map reduce来说这是不必要的 3 脏页数据立即刷新.

heipark------hadoop性能调优笔记

- - 开源软件 - ITeye博客
官方解释:The maximum number of map tasks that will be run  simultaneously by a task tracker.. 我的理解:一个tasktracker最多可以同时运行的map任务数量. 优化值:mapred.tasktracker.map.tasks.maximum = cpu数量.

hadoop作业reduce过程调优使用到的参数笔记

- - 编程语言 - ITeye博客
reduce的运行是分成三个阶段的. 分别为copy->sort->reduce. 由于job的每一个map都会根据reduce(n)数将数据分成map 输出结果分成n个partition,. 所以map的中间结果中是有可能包含每一个reduce需要处理的部分数据的. 所以,为了优化reduce的执行时间,hadoop中是等job的第一个map结束后,.

学习笔记:Twitter核心数据类库团队的Hadoop优化经验

- - 博客 - 伯乐在线
此稿介绍了Twitter的核心数据类库团队,在使用Hadoop处理离线任务时,使用的性能分析方法,及由此发现的问题和优化手段,对如何使用JVM/HotSpot profile(-Xprof)分析Hadoop Job的方法调用开销、Hadoop配置对象的高开销、MapReduce阶段的排序中对象序列化/反序列的高开销问题及优化等给出了实际可操作的方案.

Hadoop Streaming 编程

- - 学着站在巨人的肩膀上
Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如:. 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer). 本文安排如下,第二节介绍Hadoop Streaming的原理,第三节介绍Hadoop Streaming的使用方法,第四节介绍Hadoop Streaming的程序编写方法,在这一节中,用C++、C、shell脚本 和python实现了WordCount作业,第五节总结了常见的问题.

Hadoop使用(一)

- Pei - 博客园-首页原创精华区
Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成. 其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上.

Hadoop MapReduce技巧

- - 简单文本
我在使用Hadoop编写MapReduce程序时,遇到了一些问题,通过在Google上查询资料,并结合自己对Hadoop的理解,逐一解决了这些问题. Hadoop对MapReduce中Key与Value的类型是有要求的,简单说来,这些类型必须支持Hadoop的序列化. 为了提高序列化的性能,Hadoop还为Java中常见的基本类型提供了相应地支持序列化的类型,如IntWritable,LongWritable,并为String类型提供了Text类型.

Hadoop TaskScheduler浅析

- - kouu&#39;s home
TaskScheduler,顾名思义,就是MapReduce中的任务调度器. 在MapReduce中,JobTracker接收JobClient提交的Job,将它们按InputFormat的划分以及其他相关配置,生成若干个Map和Reduce任务. 然后,当一个TaskTracker通过心跳告知JobTracker自己还有空闲的任务Slot时,JobTracker就会向其分派任务.