参照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. C/C++ 结构体 指针 函数传递

    #include <stdio.h> #include <stdlib.h> struct student{ int num; ]; double dec; }; void s ...

  2. C# GMap下提供一个高德地图

    using System; using GMap.NET.Internals; using GMap.NET.Projections; namespace GMap.NET.MapProviders ...

  3. 【git常见问题】fatal: Not a valid object name: 'master'.

    创建本地分支:git branch dev 报错:fatal: Not a valid object name: 'master'. 原因: 问题描述-一个非法的master,原因:本地还没有创建ma ...

  4. 报错:Failed to instantiate the default view controller for UIMainStoryboardFile 'MainStoryboard' - perhaps the designated entry point is not set?

    原因分析:在StoryBoard中没有一个view controller设置了Initial Scene. 解决方案:在Storyboard中,选择一个view conroller作为story bo ...

  5. Android驱动开发前的准备

    最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会. Android在近几年时间发展迅速,已经成为智能手机操作系统的老大.不过,因为Android原生的代码 ...

  6. mysql 常用语句模板

    插入INSERT IGNORE INTO test (`f1`, `f2`, `f3`) VALUES (v1,v2,v3); 更新update test set f1=v1,f2=v2 where ...

  7. ACE bus

    ACE bus增加的内容: 1):5状态的cache model 2):关于coherency的additional signal 3):两个cache master访问shared cache的ad ...

  8. 家教O2O维护“老师”的逼格,算不尊重市场吗

    既然做O2O,本身就是把这当服务业的.出钱的人才是老大.老师受到尊重是因为你传授的东西他人认可,而不该是因为“老师”两个字.另外,成年人会去请家教的,往往是自己有一些长处的.你只是一方面的老师,人家可 ...

  9. 【转】Python练习,网络爬虫框架Scrapy

    一.概述 下图显示了Scrapy的大体架构,其中包含了它的主要组件及系统的数据处理流程(绿色箭头所示).下面就来一个个解释每个组件的作用及数据的处理过程. 二.组件 1.Scrapy Engine(S ...

  10. eclipse 安装activity插件

    公司做流程需要用到流程插件,之前用了bpm4 activity是基于bpm4延伸的,这里先介绍下activity 插件是如何安装的 官网资料 *Name:*Activiti BPMN 2.0 desi ...