hadoop是用cloudra的官方yum源安装的,服务器是CentOS6.3 64位操作系统,自己写的mapreduce执行的时候hadoop会提示以下错误:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

网上说是这样的

Hadoop的native是在32 bit环境下编译的,在64bit环境下运行会有问题,所以需要下载hadoop的源码在64bit环境下重新编译

然后在官方文档里找到了相应的解释

链接:http://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/NativeLibraries.html

The pre-built 32-bit i386-Linux native hadoop library is available as part of the hadoop distribution and is located in the lib/native directory. You can download the hadoop distribution from Hadoop Common Releases.Be sure to install the zlib and/or gzip development packages - whichever compression codecs you want to use with your deployment.

于是,按照官档里的说明在服务器上Build出新的hadoop,把native里面的库文件替换默认的的库文件,搞定,重启hadoop所有服务,自己写的mapreduce可以用了,那么接下来问题来了……发现hdfs进入了Safemode,说有个多少多少块corrupted,然后发现重启期间有同事在使用mapreduce,怀疑是这个原因造成了数据的损坏。由于数据有备份,于是手动解除Safemode,用hadoo fsck删掉了坏掉的数据块,此时是不提示corrupted了,可是惊奇的发现,datanode没有起来!

Hadoop datanode is dead and pid file exists

紧接着,找到存在的pid file,rm之,再起!还是不行!找到datanode的日志,发现有FATAL信息!

2014-11-26 14:35:49,577 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory.createDescriptor0(Ljava/lang/String;Ljava/lang/St
ring;I)Ljava/io/FileDescriptor;at org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory.createDescriptor0(Native Method)at org.apache.hadoop.io.nativeio.SharedFileDescriptorFactory.create(SharedFileDescriptorFactory.java:87)at org.apache.hadoop.hdfs.server.datanode.ShortCircuitRegistry.<init>(ShortCircuitRegistry.java:169)at org.apache.hadoop.hdfs.server.datanode.DataNode.initDataXceiver(DataNode.java:586)at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:773)at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:292)at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1893)at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1780)at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1827)at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2003)at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2027)
2014-11-26 14:35:49,580 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
2014-11-26 14:35:49,582 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at carweb94/10.14.1.94

搜索了下,发现是native库文件的问题!好吧,这下找到元凶了,把默认的native库文件替换回来了,问题解决了。排错的过程中,这篇文章给了很大启发。

http://stackoverflow.com/questions/26467568/hadoop-2-5-0-failed-to-start-datanode

转载于:https://www.cnblogs.com/fanfanfantasy/p/4123412.html

更改hadoop native库文件后datanode故障相关推荐

  1. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序...

    很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...

  2. git删除本地代码库文件后同步到远程仓库同时删除远程仓库文件

    1.更新本地代码库 git pull 2.对需要删除的文件.文件夹进行如下操作: git rm ss.c(删除文件) git rm -r aaa (删除文件夹) 3.提交修改 git commit - ...

  3. linux 环境变量文件_应急响应系列之Linux库文件劫持技术分析,有点硬核哟

    0×01 菜逼阶段 Linux库文件劫持这种案例在今年的9月份遇到过相应的案例,当时的情况是有台服务器不断向个可疑IP发包,尝试建立连接,后续使用杀软杀出木马,重启后该服务器还是不断的发包,使用net ...

  4. Linux库文件详解

    源自: https://www.cnblogs.com/yangg518/p/5842651.html 转自: http://www.cppblog.com/deane/articles/165216 ...

  5. halcon 库文件使用

    halcon库文件的使用 在打开halcon开发程序时,有时打开时会出现 [函数未实现] 的报警 主要原因库文件未导入(开发工具不认识 库文件) 解决方法: 1.打开函数 ==> 管理函数 2. ...

  6. java 中 Native.loadLibrary 不能加载 jar 包中库文件的解决方案

    比如拿 jna 加载海康测速库文件为例: windows环境: (HCNetSDK) Native.loadLibrary("E:\\xxx\\HCNetSDK.dll", HCN ...

  7. php编译自己库文件,php编译后追加库模块-gd库

    [root@local]# yum install gd-devel                  ##安装gd的开发包 [root@local]# cd /root/lnmp/src/php-5 ...

  8. linux下Qt调用C++库文件(.so)程序实现

    文章目录 主要内容 一.编程环境及实现方法 二.项目实现 1.创建项目 2.导入库文件 三.项目中遇到的问题 总结 主要内容 如标题所示,在linux下使用qtcreator创建项目调用C++库文件, ...

  9. hadoop HDFS常用文件操作命令

    命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs -ls / 列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls -R / 列 ...

最新文章

  1. 大型企业网络配置系列课程详解(五) --Frame-Relay配置与相关概念的理解
  2. svn服务端及客户端搭建和使用(三)
  3. 大学c语言程序设计大赛,关于举办宁夏大学第二届C语言程序设计大赛的通知
  4. 06:校门外的树【一维数组】
  5. 爱快--虚拟机单网卡(带机上网)
  6. 下载npm并配置npm环境
  7. 删除操作,提示“无法读取源文件或磁盘”,解决办法!
  8. cso是什么职位(企业cso是什么职位)
  9. 软件工程专业知识体系
  10. 电脑安全证书错误怎么处理比较好
  11. 【Serenity BDD】Serenity 2.2.0 版本变动说明及相应的配置变动
  12. 我是如何在一家独角兽公司做业务中台、数据中台的?8页ppt详解中台建设实践!...
  13. 罗技M590优联无法使用的问题解决
  14. 简单猜年龄游戏Python代码
  15. 中国城市电话区号对照表中国移动短信中心号查询及命名规则
  16. Unity3D Shader 入门
  17. VMware虚拟机ping不通主机,Destination Host Unreachable
  18. [企业微信通知系列]Jenkins发布后自动通知
  19. DJI大疆 windows SDK开发入门(1) integrate SDK into Application
  20. jdk8移除了PermGen,取而代之的是MetaSpace

热门文章

  1. 使用list和tuple
  2. 硬件断点 DrxHook
  3. Ubuntu设置RS-232串口登陆终端(译文,节选)
  4. Docker shipyard 试用
  5. 探索ArrayList自动改变size真相
  6. 获取一个窗口的所有子窗口(包括嵌套) - 回复 asian 的问题
  7. FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程
  8. drf5 版本和认证组件
  9. 1720: 交换瓶子
  10. 【全球发布】乘云而上的阿里云MVP