参照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的解决过程记录的更多相关文章

  1. linux 下执行.sh文件提示permission denied

    linux 下执行.sh文件提示permission denied 在脚本文件目录下运行命令,赋予权限: chmod 777 *.sh or chmod +x  *.sh

  2. 解决 EntityFrameworkCore 执行 Add-Migration命令提示无法识别转义符的错误

    版本.asp.net core 2.0   EntityFrameworkCore2,0,. 之前执行Add-Migration 命令 提示无法识别的转义序列,各种不成功, 解决办法,找到 项目里面的 ...

  3. 对hadoop 执行mapreduce时发生异常Illegal partition for的解决过程

    来自:http://blog.csdn.net/hezuoxiang/article/details/6878026 写了个mapreduce的JAVA程序,自定义了个partition class ...

  4. /tmp目录下执行脚本失败提示Permission denied

    Linux上执行Shell脚本运行失败提示Permission denied一个问题,挺好的问题,切中了知识盲点. 问题现象 Shell脚本在/tmp目录下,执行./test.sh运行失败,提示Per ...

  5. linux 下执行py问题提示cannot import name request

    最近因为工作需要,需要在linux上去执行python代码,但是在执行的时候提示cannot import name request,我以为是导入有问题,然后我就把代码放到与包一个目录下,执行py问题 ...

  6. [转帖]Linux /tmp目录下执行脚本失败提示Permission denied

    Linux /tmp目录下执行脚本失败提示Permission denied https://www.cnblogs.com/linyfeng/p/11087655.html 国产化的环境上 就有一个 ...

  7. 安卓8.0真机运行appium1.4遇到的问题:运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装?

    运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装? 这3个apk的目录分别是: D:\P ...

  8. 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 ...

  9. hadoop 安装过程记录

    1)首先配置好了四个linux虚拟机 root pwd:z****l*3 关闭了防火墙 开通了 sshd服务 开通了 ftp服务 配置了 jdk 1.8 配置好了互信 (之前配置的过程忘了!--检查了 ...

随机推荐

  1. chrome浏览器调试typescript

    在chrome的开发人员工具的配置项中,有一个sourcemap的选项,用来配置javascript源码和生成代码的关系. 如果能在浏览器中直接调试typescript代码,才能让我们真正体会到typ ...

  2. PhpStorm 4.0 & 5.0 部署本地Web应用 (转)

    1.创建新的项目(project),创建完成之后单击工具栏的应用运行/调试(Select Run/Debug Configuration)的下拉菜单弹出 Edit Cofigurations选项,单击 ...

  3. android 使用shape来优化界面效果

    看下效果图: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...

  4. HTML5的postMessage使用记要////////////////////////////zzzzzzzz

    2014-11-09 20:17:27http://jo2.org/html5-js-postmessage-tips/--点击数:2710     HTML5提出了一个新的用来跨域传值的方法,即po ...

  5. qq

    引用:http://blog.sina.com.cn/s/blog_9e2e84050101blqz.html 腾讯QQ使用何种开发平台?                   腾讯QQ的开发分客户端软 ...

  6. C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编

      验证电话号码的主要代码如下: public bool IsTelephone(string str_telephone) { return System.Text.RegularExpressio ...

  7. 去除表单自动填充时,-webkit浏览器默认给文本框加的黄色背景

    input:-webkit-autofill { -webkit-box-shadow:inset 0 0 0 100px #2B2B35 inset; -webkit-text-fill-color ...

  8. 阿里yum源

    转:http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0.d6ykiD 1.备份 mv /etc/yum.repos.d/Cent ...

  9. console.dir() 与 console.log() 区别

    Difference console.log prints the element in an HTML-like tree console.dir prints the element in a J ...

  10. 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 ...