执行Hadoop job提示SequenceFile doesn't work with GzipCodec without native-hadoop code的解决过程记录
参照Hadoop.The.Definitive.Guide.4th的例子,执行SortDataPreprocessor作业时失败,输出的错误信息
SequenceFile doesn't work with GzipCodec without native-hadoop code!
根据提示初步猜测应该是没有加载到对应的库,怀疑是java的某个jar包没有加载到。根据提示搜索参考了一些解决方案,应该是hadoop native lib没有加载到,于是继续了解什么是hadoop native lib。
hadoop native lib
字面上意思就是hadoop的本地运行库,由于hadoop的一些操作(比如压缩)为了提高性能,不适合使用java的库运行,所以提供一批本地库。
参考http://www.cnblogs.com/gpcuster/archive/2011/02/17/1957042.html
好了,搞明白hadoop native lib后,现在要定位为什么没有加载成功
继续搜索,找到了相似的解决方案,参考http://blog.csdn.net/jiedushi/article/details/7496327,学习到了如下debug命令
export HADOOP_ROOT_LOGGER=DEBUG,console
通过这个设置,可以显示hadoop执行作业时的调试信息,也就是可以输出错误信息
启用调试之后,执行hadoop checknative(这是检测hadoop本地库是否加载成功的命令)
输出如下调试信息
16/03/18 03:44:41 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /usr/hadoop/lib/native/libhadoop.so.1.0.0: libc.so.6: version `GLIBC_2.14' not found (required by /usr/hadoop/lib/native/libhadoop.so.1.0.0)
根据调试信息继续进入另外一个洞,什么是GLIBC?
简单了解GLIBC,发现是一个C运行库,功能很强大,linux系统的重要基础组件。
根据提示信息"GLIBC_2.14"搜索,引出了一个更根本的问题,本机的GLIBC的版本不是2.14,是2.12,参考http://www.cnblogs.com/gw811/p/3676856.html(这篇文章的export方式升级版本无效果,还会导致命令行完全不可用)
现在确定需要升级GLIBC到2.14版本,直接用yum install不行,仅仅只是给2.12版本打升级包,但是版本没有升级。找了好几个解决方案,最终找到一个可行的
http://blog.csdn.net/niying/article/details/42491557
安装2.14版的步骤还算简单,只是比较长特别是执行make -j4,需要点耐心,关键步骤是通过更新软链接升级GLIBC版本
ln -fs /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
/lib64/libc.so.6本身就是一个已存在软链接,指向的是同目录的llibc-2.12.so,通过上述命令将新版的库链接到libc.so.6
完成上述步骤执行,再次执行hadoop checknative
INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
看到上述信息说明本地库加载成功
接着继续执行SortDataPreprocessor作业,成功运行,到此问题解决。
执行Hadoop job提示SequenceFile doesn't work with GzipCodec without native-hadoop code的解决过程记录的更多相关文章
- linux 下执行.sh文件提示permission denied
linux 下执行.sh文件提示permission denied 在脚本文件目录下运行命令,赋予权限: chmod 777 *.sh or chmod +x *.sh
- 解决 EntityFrameworkCore 执行 Add-Migration命令提示无法识别转义符的错误
版本.asp.net core 2.0 EntityFrameworkCore2,0,. 之前执行Add-Migration 命令 提示无法识别的转义序列,各种不成功, 解决办法,找到 项目里面的 ...
- 对hadoop 执行mapreduce时发生异常Illegal partition for的解决过程
来自:http://blog.csdn.net/hezuoxiang/article/details/6878026 写了个mapreduce的JAVA程序,自定义了个partition class ...
- /tmp目录下执行脚本失败提示Permission denied
Linux上执行Shell脚本运行失败提示Permission denied一个问题,挺好的问题,切中了知识盲点. 问题现象 Shell脚本在/tmp目录下,执行./test.sh运行失败,提示Per ...
- linux 下执行py问题提示cannot import name request
最近因为工作需要,需要在linux上去执行python代码,但是在执行的时候提示cannot import name request,我以为是导入有问题,然后我就把代码放到与包一个目录下,执行py问题 ...
- [转帖]Linux /tmp目录下执行脚本失败提示Permission denied
Linux /tmp目录下执行脚本失败提示Permission denied https://www.cnblogs.com/linyfeng/p/11087655.html 国产化的环境上 就有一个 ...
- 安卓8.0真机运行appium1.4遇到的问题:运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装?
运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装? 这3个apk的目录分别是: D:\P ...
- mysql5.7执行sql语句提示Expression #1 of ORDER BY clause is not in GROUP BY
mysql 新版本出现group by 语句不兼容问题 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause ...
- hadoop 安装过程记录
1)首先配置好了四个linux虚拟机 root pwd:z****l*3 关闭了防火墙 开通了 sshd服务 开通了 ftp服务 配置了 jdk 1.8 配置好了互信 (之前配置的过程忘了!--检查了 ...
随机推荐
- chrome浏览器调试typescript
在chrome的开发人员工具的配置项中,有一个sourcemap的选项,用来配置javascript源码和生成代码的关系. 如果能在浏览器中直接调试typescript代码,才能让我们真正体会到typ ...
- PhpStorm 4.0 & 5.0 部署本地Web应用 (转)
1.创建新的项目(project),创建完成之后单击工具栏的应用运行/调试(Select Run/Debug Configuration)的下拉菜单弹出 Edit Cofigurations选项,单击 ...
- android 使用shape来优化界面效果
看下效果图: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...
- HTML5的postMessage使用记要////////////////////////////zzzzzzzz
2014-11-09 20:17:27http://jo2.org/html5-js-postmessage-tips/--点击数:2710 HTML5提出了一个新的用来跨域传值的方法,即po ...
- qq
引用:http://blog.sina.com.cn/s/blog_9e2e84050101blqz.html 腾讯QQ使用何种开发平台? 腾讯QQ的开发分客户端软 ...
- C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
验证电话号码的主要代码如下: public bool IsTelephone(string str_telephone) { return System.Text.RegularExpressio ...
- 去除表单自动填充时,-webkit浏览器默认给文本框加的黄色背景
input:-webkit-autofill { -webkit-box-shadow:inset 0 0 0 100px #2B2B35 inset; -webkit-text-fill-color ...
- 阿里yum源
转:http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0.d6ykiD 1.备份 mv /etc/yum.repos.d/Cent ...
- console.dir() 与 console.log() 区别
Difference console.log prints the element in an HTML-like tree console.dir prints the element in a J ...
- centos7 卸载openJDK 安装jdk7
[root@cms02 root]# rpm -qa | grep jdk java--openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64 java--ope ...