hadoop报错日志 hadoop 部署经验

标签: Hadoop | 发表时间:2012-02-07 21:25 | 作者:jrckkyy
出处:http://hi.baidu.com/jrckkyy

1,配置文件里设置的namenode 物理文件存放的目录,和MR 中 tasktracker 物理文件存放的目录需要提前在每台机器上建立好。

2,每台机器的hosts里配置和 hostname得到的系统名字对应正确。

 

 

1、taskTracker和jobTracker 启动失败

2011-01-05 12:44:42,144 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.lang.RuntimeException: Not a host:port pair: local
 at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:136)
 at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:123)
 at org.apache.hadoop.mapred.JobTracker.getAddress(JobTracker.java:1807)
 at org.apache.hadoop.mapred.TaskTracker.<init>(TaskTracker.java:905)
 at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:2833)

需配置mapred.job.tracker属性,在mapred-site.xml的configuration节点中配置(job-tracker host为jobTracker服务器的ip或域名)

<property>
                <name>mapred.job.tracker</name>
                <value>[job-tracker host]:9001</value>
</property>

2、namenode启动失败

STARTUP_MSG:   build = -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
2011-02-28 15:54:29,719 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.NullPointerException
        at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:134)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:156)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:160)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:175)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)

需配置fs.default.name属性,在core-site.xml的configuration节点中配置(namenode host为namenode服务器的ip或域名)

<property>
                <name>fs.default.name</name>
                <value>[namenode host]:9000</value>
</property>

3、hadoop运行需要地方存放一些临时文件,而数据量较大的时候,这些临时文件也会比较大,所以配置临时目录的时候要确定这些目录是否有足够的空间,如果没有指定目录,一般会放在/tmp这个目录下面。

一般需要指定的目录有:hadoop-env.sh里的export HADOOP_PID_DIR=;hdfs-site.xml里的dfs.name.dir和dfs.data.dir;core-site.xml里的hadoop.tmp.dir;mapred-site.xml里的mapred.system.dir、mapred.local.dir、mapred.tmp.dir。

4、分布式运行,查看日志是个非常郁闷的事情,一般的程序标准输出会放在与bin同级的logs目录下的userlogs下面,会有相当多的文件夹。可通过 http://job-tracker host:port/jobdetails.jsp查看hadoop运行状况和日志,一般port为50030。

5、有时,当你申请到一个HOD集群后马上尝试上传文件到HDFS时,DFSClient会警告NotReplicatedYetException。通常会有一个如下报错信息。
org.apache.hadoop.ipc.RemoteException: java.io.IOException File /root/testdir/hadoop-default.xml could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.dfs.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1123)
at org.apache.hadoop.dfs.NameNode.addBlock(NameNode.java:330)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
……
不幸的是我也遇到了这个报错,google了很久才找到一个解决方案: 当你向一个DataNodes正在和NameNode联络的集群上传文件的时候,这种现象就会发生。在上传新文件到HDFS之前多等待一段时间就可以解决这个问题,因为这使得足够多的DataNode启动并且联络上了NameNode。

6、Error: Java heap space
mapred-site.xml中设置

<property>
                <name>mapred.child.java.opts</name>
                <value>-Xmx512m</value>
</property>

调整这个数字。

7、 Namenode in safe mode
解决方法
bin/hadoop dfsadmin -safemode leave

阅读全文
类别: Hadoop  查看评论

相关 [hadoop 日志 hadoop] 推荐:

hadoop报错日志 hadoop 部署经验

- - 学着站在巨人的肩膀上
1,配置文件里设置的namenode 物理文件存放的目录,和MR 中 tasktracker 物理文件存放的目录需要提前在每台机器上建立好. 2,每台机器的hosts里配置和 hostname得到的系统名字对应正确. 1、taskTracker和jobTracker 启动失败. 需配置mapred.job.tracker属性,在mapred-site.xml的configuration节点中配置(job-tracker host为jobTracker服务器的ip或域名).

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就会向其分派任务.

HADOOP安装

- - OracleDBA Blog---三少个人自留地
最近有时间看看hadoop的一些东西,而且在测试的环境上做了一些搭建的工作. 首先,安装前需要做一些准备工作. 使用一台pcserver作为测试服务器,同时使用Oracle VM VirtualBox来作为虚拟机的服务器. 新建了三个虚拟机以后,安装linux,我安装的linux的版本是redhat linux 5.4 x64版本.

Hadoop Corona介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/hadoop-corona/hadoop-corona/. Hadoop Corona是facebook开源的下一代MapReduce框架. 其基本设计动机和Apache的YARN一致,在此不再重复,读者可参考我的这篇文章 “下一代Apache Hadoop MapReduce框架的架构”.

Hadoop RPC机制

- - 企业架构 - ITeye博客
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. Hadoop底层的交互都是通过 rpc进行的. 例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的.

Hadoop Rumen介绍

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-rumen-introduction/. 什么是Hadoop Rumen?. Hadoop Rumen是为Hadoop MapReduce设计的日志解析和分析工具,它能够将JobHistory 日志解析成有意义的数据并格式化存储.

Hadoop contrib介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-contrib/. Hadoop Contrib是Hadoop代码中第三方公司贡献的工具包,一般作为Hadoop kernel的扩展功能,它包含多个非常有用的扩展包,本文以Hadoop 1.0为例对Hadoop Contrib中的各个工具包进行介绍.