`

hadoop配置、运行错误总结二

 
阅读更多

上一篇
十二、如果遇到如下错误:

FAILED java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI:***

就是URI里边出现了不允许出现的字符,比如冒号:之类的,操作系统不允许的文件命名字符。详细的可以根据提示的部分(星号部分)来进行grep匹配查看。消除掉就可以解决了。

十三、遇到tasktracker无法启动,tasktracker日志报错如下:

ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.net.BindException: Address already in use ***

是端口被占用或者已经有相应的进程启动了,这时候你先停止集群,然后使用ps -aux | grep hadoop 命令,来看看相关的hadoop进程,把hadoop相关的守护进程kill掉即可。

十四、遇到datanode无法启动的情况,datanode日志报错如下:

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: No locks available

网上有许多说需要format,个人感觉是扯淡,因为我同样的添加节点,添加的其他节点没有问题,只有一个有问题,所以问题一定不在是否format身上,而且如果format后hdfs内的数据就会全部丢失,我也不会去尝试这种方法。详细看了一下,apache的邮件列表有这样一段内容:

No locks available can mean that you are trying to use hadoop on a filesystem that does not support file level locking. Are you trying to run your name node storage in NFS space?

这里提到文件级锁的情况,使用

$ /etc/init.d/nfs status

命令查看网络文件系统的情况,都是关闭的。另外使用df -Th或者mount命令可以查看文件系统的类型,得到的结果确实是NFS文件系统的问题。不能使用挂在的网络文件系统,因为又貌似只读的情况,即便不是只读情况,也像上边说的,是不支持file级锁的。
最后解决办法,可以尝试给nfs添加文件级的锁。我这里就是修改dfs.data.dir,不使用nfs完事了。

十五、datanode died,并且无法启动该进程,log报如下错误:

2012-06-04 10:31:34,915 INFO org.apache.hadoop.hdfs.server.common.Storage: Cannot access storage directory /data5/hadoop_data
2012-06-04 10:31:34,915 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /data5/hadoop_data does not exist.
2012-06-04 10:31:35,033 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskErrorException: Invalid value for volsFailed : 2 , Volumes tolerated : 0

我的这个问题,查到原因是该节点的磁盘变成的只读(only read)模式,网上搜了一下发现这种情况还蛮多,Linux机器的硬盘本来都是设置成读写(Read/Write)方式的,不过偶尔会发现自动变成了只读(Read Only),查了一些资料,发生这种情况的原因有多种,可能的问题:

  • 文件系统错误
  • 内核相关硬件驱动bug
  • FW固件类问题
  • 磁盘坏道
  • 硬盘背板故障
  • 硬盘线缆故障
  • HBA卡故障
  • RAID卡故障
  • inode资源耗尽

解决的办法:

  • 重启服务器(命令reboot)
  • 重新mount硬盘
  • fsck尝试修复
  • 更换硬盘

一个详细的解决办法(未尝试,看着挺靠谱的)。

十六、jps无法查看到hadoop、hbase的daemon守护进程,但是hadoop、hbase均工作正常,web页面也能访问,用ps -ef|grep java 也能看到启动的java进程。

造成这个情况的原因是java程序启动后,默认(请注意是默认)会在/tmp/hsperfdata_userName目录下以该进程的id为文件名新建文件,并在该文件中存储jvm运行的相关信息,其中的userName为当前的用户名,/tmp/hsperfdata_userName目录会存放该用户所有已经启动的java进程信息。对于windows机器/tmp用Windows存放临时文件目录代替。而jps、jconsole、jvisualvm等工具的数据来源就是这个文件(/tmp/hsperfdata_userName/pid)。所以当该文件不存在或是无法读取时就会出现jps无法查看该进程号,jconsole无法监控等问题。

所以如果你的tmp有定期清空、磁盘满、写入权限等情况,均会造成jps无法查看java进程的情况,需要解决的可以设置缓存的保存位置。关于设置该文件位置的参数为-Djava.io.tmpdir

另外:
/tmp/hsperfdata_userName/pid文件会在对应java进程退出后被清除。如果java进程非正常退出(如kill -9),那么pid文件会被保留,直到执行一次java命令或是加载了jvm程序的命令(如jps、javac、jstat),会将所有无用的pid文件都清除掉

十七、执行mapreduce任务的时候报错如下:

2012-06-21 10:50:43,290 WARN org.mortbay.log: /mapOutput: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find taskTracker/hadoop/jobcache/job_201206191809_0004/attempt_201206191809_0004_m_000006_0/output/file.out.index in any of the configured local directories
2012-06-21 10:50:45,592 WARN org.apache.hadoop.mapred.TaskTracker: getMapOutput(attempt_201206191809_0004_m_000006_0,0) failed : org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find taskTracker/ha.doop/jobcache/job_201206191809_0004/attempt_201206191809_0004_m_000006_0/output/file.out.index in any of the configured local directories

虽然是两个warn,但是也影响作业效率,所以还是尝试解决一下,错误原因是无法找到作业的中间输出文件。需要作如下检查:

a、配置mapred.local.dir属性
b、df -h 看看缓存路径下的空间是否足够
c、free 看看内存空间是否足够
d、确保缓存路径可写权限
e、检查磁盘损坏

namenode循环报错如下:

2012-08-21 09:20:24,486 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Cannot roll edit log, edits.new files already exists in all healthy directories:
/data/work/hdfs/name/current/edits.new
/backup/current/edits.new
2012-08-21 09:20:25,357 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop cause:java.net.ConnectException: Connection refused
2012-08-21 09:20:25,357 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop cause:java.net.ConnectException: Connection refused
2012-08-21 09:20:25,359 WARN org.mortbay.log: /getimage: java.io.IOException: GetImage failed. java.net.ConnectException: Connection refused

secondarynamenode也有相关错误。
搜到一个说法原因是:

With 1.0.2, only one checkpoint process is executed at a time. When the namenode gets an overlapping checkpointing request, it checks edit.new in its storage directories. If all of them have this file, namenode concludes the previous checkpoint process is not done yet and prints the warning message you've seen.

这样的话如果你确保edits.new文件是之前错误操作残留下的没有用的文件的话,那么可以删掉,检测之后是否还有这样的问题。
另外请确保namenode的hdfs-site.xml的配置有如下项:

<property>
<name>dfs.secondary.http.address</name>
<value>0.0.0.0:50090</value>
</property>

将上述的0.0.0.0修改为你部署secondarynamenode的主机名

secondarynamenode的hdfs-site.xml有如下项:

<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>

将上述的0.0.0.0修改为你部署namenode的主机名

分享到:
评论

相关推荐

    hadoop配置运行错误

    hadoop是一个大数据处理的基础架构,但是在实际使用过程中经常会碰到各种各样的问题,以下是解决hadoop配置运行错误的一些经验总结: 一、hadoop集群在namenode格式化后重启集群会出现Incompatible namespaceIDS...

    hadoop hive入门学习总结

    如果在查询时遇到“FAILED: Hive Internal Error: java.lang.RuntimeException(Error while making MR scratch directory - check filesystem config (null))”,这通常是由于Hadoop配置问题导致的。解决方法如下: ...

    Hadoop学习总结和源码分析

    “Hadoop学习总结之五:Hadoop的运行痕迹.doc”可能涉及监控和日志记录,这是理解Hadoop系统运行状态和问题排查的重要手段。通过监控Hadoop集群的性能指标,如CPU利用率、内存使用情况、磁盘I/O等,可以优化系统配置...

    配置Eclipse连接Hadoop

    - 配置其他相关环境变量,如`HADOOP_CONF_DIR`,指向Hadoop配置文件的目录。 2. **配置Eclipse插件**: - 安装Hadoop相关的Eclipse插件,如"Hadoop Eclipse Plugin"或"Big Data Tools",它们提供了与Hadoop集群...

    Hadoop安装教程_单机_伪分布式配置

    1. **权限问题**:确保所有的Hadoop配置文件和服务都是以hadoop用户身份运行的。 2. **网络问题**:检查网络配置是否正确,确保主机名解析正常。 3. **日志错误**:查阅Hadoop的日志文件,通常位于`$HADOOP_HOME/...

    hadoop-window环境配置.txt

    ### Hadoop在Windows环境下的配置知识点详解 #### 一、Hadoop简介 Hadoop是一个能够对大量数据进行分布式处理的软件框架,它为用户提供了高可靠性、高效性、可扩展性的数据处理能力。Hadoop的核心组件包括HDFS...

    Hadoop的安装部署与配置实验 共11页.pdf

    下面是 Hadoop 的安装部署与配置实验总结。 一、实验环境准备 在进行 Hadoop 安装部署与配置实验之前,需要准备好实验环境。这里使用 VMware 和 Ubuntu 12.04 LTS 64bit 作为虚拟机的操作系统。首先,需要安装 JDK...

    Hadoop配置

    ### Hadoop配置详解 #### 一、环境搭建与配置前准备 **1.1 安装环境** - **操作系统:** Ubuntu 14.04.3 LTS - **Hadoop 版本:** hadoop-2.5.2 或 hadoop-2.6.0 或更高版本 - **Java 版本:** Oracle JDK 7u80 **...

    hadoop安装配置步骤

    2. **安装Java**:Hadoop依赖于Java运行环境,因此需提前安装JDK并配置好JAVA_HOME环境变量。 #### 三、环境变量配置 完成上述准备工作后,接下来需要配置操作系统环境变量以支持Hadoop运行: 1. **添加HADOOP_HOME...

    win7下eclipse配置hadoop的插件

    总结来说,配置Eclipse开发Hadoop项目涉及到下载和安装插件、配置环境变量、引入Hadoop库以及在Eclipse中设置Hadoop路径。通过这些步骤,开发者可以在Windows 7上的Eclipse环境中高效地编写和测试Hadoop MapReduce...

    hadoop3.0.0安装和配置

    - 进入Hadoop配置目录`$HADOOP_HOME/etc/hadoop`。 - 编辑以下核心配置文件: - `hadoop-env.sh`:设置Java路径和其他环境变量。 - `core-site.xml`:配置Hadoop的基本属性,如默认FS(文件系统)。 - `hdfs-...

    hadoop-1.2.1-安装配置手册(含安装介质)

    本文详细介绍了Hadoop 1.2.1的安装与配置流程,包括环境准备、SSH配置、JDK安装、Hadoop配置文件设置、Hadoop格式化及启动等步骤。通过本手册的指引,您可以顺利完成Hadoop集群的搭建,并掌握基本的故障排查方法。...

    hadoop-3.1.1 bin目录文件-含hadoop.dll、winutils

    在IT行业中,Hadoop是一个...确保它们正确配置并可被系统找到,可以避免许多与环境配置相关的错误,使得开发者能够专注于Hadoop应用的编写和测试。了解和掌握这些基础知识,对于在Windows上高效地使用Hadoop至关重要。

    【IT十八掌徐培成】Hadoop第04天-05.win7下hadoop运行需要dll和exe文件的支持.zip

    5. **配置文件**:在Windows上启动Hadoop,需要修改Hadoop配置文件,如`core-site.xml`、`hdfs-site.xml`和`mapred-site.xml`,设置正确的路径、端口和参数,以适应Windows环境。 6. **环境变量**:确保设置正确的...

    hadoop-eclipse-plugin-2.6.0.jar.zip_2.6.0_hadoop_hadoop plugin

    2. **配置Hadoop环境**:在Eclipse中,需要配置Hadoop的运行环境,包括Hadoop的安装路径、HDFS地址等信息。 3. **创建Hadoop项目**:在Eclipse的“文件”菜单中选择“新建” -&gt; “其他”,在弹出的对话框中找到...

    Hadoop配置手记

    总结起来,配置Hadoop集群是一个涉及网络配置、SSH无密码登录、环境变量设置、Hadoop配置文件修改以及服务启动的复杂过程。正确配置这些参数是保证Hadoop集群高效稳定运行的基础。随着Hadoop版本的更新,这些配置...

    Eclipse中编译运行Hadoop-0.20.1源码

    总结一下,编译和运行Hadoop-0.20.1源码需要准备合适的开发环境,正确导入源代码到Eclipse项目,启动Hadoop集群,最后编译和运行源代码。通过这种方式,开发者可以深入理解Hadoop的工作流程,调试代码,以及进行定制...

    hadoop2x-eclipse-plugin

    总结来说,Hadoop2x-eclipse-plugin是Hadoop开发者在Eclipse中提升生产力的必备工具,它使Hadoop开发更加高效、便捷。对于希望深入Hadoop2.x开发的工程师而言,熟练掌握并运用这款插件将极大地提高工作效率,减少...

    hadoop2.8.0 eclipse jb51

    2. 配置文件:如core-site.xml, hdfs-site.xml, yarn-site.xml等,定义Hadoop集群的配置参数。 3. Eclipse插件:jb51相关的Eclipse插件文件,用于在IDE中集成Hadoop功能。 4. 示例代码:演示如何使用Hadoop API编写...

Global site tag (gtag.js) - Google Analytics