更改hadoop native库文件后datanode故障
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
更改hadoop native库文件后datanode故障的更多相关文章
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序
很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...
- spark使用hadoop native库
默认情况下,hadoop官方发布的二进制包是不包含native库的,native库是用C++实现的,用于进行一些CPU密集型计算,如压缩.比如apache kylin在进行预计算时为了减少预计算的数据 ...
- Hadoop支持的压缩格式对比和应用场景以及Hadoop native库
对于文件的存储.传输.磁盘IO读取等操作在使用Hadoop生态圈的存储系统时是非常常见的,而文件的大小等直接影响了这些操作的速度以及对磁盘空间的消耗. 此时,一种常用的方式就是对文件进行压缩.但文件被 ...
- Linux 库文件详解
转自: http://www.cppblog.com/deane/articles/165216.html http://blog.sciencenet.cn/blog-1225851-904348. ...
- hadoop配置及无法移动文件到hdfs故障解析
首先博主用的64位ubuntu,hadoop官方只提供32位版本,这样的话启动本地库无法兼容,需要自己编译为64位版本,或下载别人编译好的64位版本. 下载好需要在etc/hadoop目录下改动以下几 ...
- hadoop 2.2.0的datanode中存储block的多个文件夹的负载均衡问题
hadoop的分布式文件系统HDFS的存储方式是,将数据分成block,分布式存储在整个hadoop集群的datanode中,每个block默认的大小是64M,这些block文件的具体存储位置是在ha ...
- 解决hadoop启动后datanode无法启动问题
hadoop部署完成后datanode无法启动问题解决 1.检查是否有遗留的hadoop进程还在运行,如果有的话,先stop-all.sh或kill杀掉: 2.在master节点上,删除/tmp/ha ...
- 修改hadoop配饰文件文件后导致hive无法找到原有的dfs文件
修改了hadoop/etc/hadoop/core-site.xml文件中的 <property> <name>fs.defaultFS</name> <va ...
- hadoop对于压缩文件的支持及算法优缺点
hadoop对于压缩文件的支持及算法优缺点 hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心. 如果 ...
随机推荐
- Redis集群的安装测试(伪分布模式 - 主从复制)
想跑一下Redis集群,但是没有那么多服务器,所以使用伪分布式模式,模拟一下,记录一下安装过程. 软件: redis-3.0.3.tar.gz 集群正常工作至少需要3个主节点(本示例创建6个节点,3主 ...
- 摘:"error LNK2019: 无法解析的外部符号 该符号在函数 中被引用" 错误原因
例如“error LNK2019: 无法解析的外部符号error LNK2001: 无法解析的外部符号“private: static struct _OVERLAPPED CUsbCom::g_Wr ...
- BAT解密:互联网技术发展之路(5)- 开发层技术剖析
BAT解密:互联网技术发展之路(5)- 开发层技术剖析 1. 开发框架 在系列文章的第2篇"BAT解密:互联网技术发展之路(2)- 业务怎样驱动技术发展"中我们深入分析了互联网业务 ...
- 使用TestFlight邀请外部人员測试APP
怎样使用TestFlight邀请外部人员測试APP 详细过程例如以下: 1.在邀请測试人员的时候.按上线流程打包APP,提交. 2.提交审核,在邀请測试员的时候,你必须先提交审核,苹果会在大约2个工作 ...
- Ubuntu 14.04主机上部署k8s集群
部署结构 3台虚拟机,其中1台作为master,2台作为minion,都安装了最新版本的docker engine(目前是1.11.2) k8s版本是1.3.0 主要问题 部署步骤基本按照官方文档:h ...
- Android Studio 使用感受 错误解决
刚到公司不久,公司叫我用Android studio软件,曾经一直在用的是eclipse ADT.突然接触到的新名词让我有点适应只是来. 好吧,既然是公司要求,肯定有它的道理.就从网上下载了它的安装包 ...
- 分享一个mysql 复杂查询的例子
发布:脚本学堂/MySQL 编辑:thebaby 2013-08-23 09:37:37 [大 中 小] 有关mysql复杂查询的一个例子,正在学习mysql的朋友,可以作为一个参考. 在my ...
- ORACLE中DELETE和TRUNCATE的区别
语法 delete from AA truncate table AA 区别 1.delete from后面可以写条件(也就是where子句,delete from AA where aa.列名 = ...
- python文件目录操作大全
python只获取当前目录下的文件夹及文件名 list = os.listdir(rootdir)#列出目录下的所有文件和目录 for line in list: filepath = os.path ...
- jquery插件-table转Json数据插件
使 用开源插件Table-to-json: 官方地址:http://lightswitch05.github.io/table-to-json/ 功能说明:将js对象table转换成javascrip ...