参照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#字符显示转换{0:d}

    C#:String.Format数字格式化输出 : int a = 12345678; //格式为sring输出// Label1.Text = string.Format("asdfads ...

  2. 【皇甫】☀ TreeSet

    -Set: 元素是无序(存入和取出的顺序不一致),元素不可以重复 |-- HashSet: 底层数据结构是哈希表 HashSet是如何保证元素的唯一性的呢? 是通过元素的两个方法,hashCode和e ...

  3. 基础-DP

    Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...

  4. NSAttributedString字符串属性类

    //定义一个可变字符串属性对象aStr NSMutableAttributedString *aStr = [[NSMutableAttributedString alloc]initWithStri ...

  5. HTML5--拖动01

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. .net之工作流工程展示及代码分享(一)工作流表单

    Workflow表单的作用是能够在客户端进行表单设计,然后在流程中动态开放哪些输入框可以供用户填写. 在这里我扩展了一个常用的WebEditor工具——KindEditor,能够插入自定义的html符 ...

  7. C#获取EF实体对象或自定义属性类的字段名称和值

    在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值.修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里.现 ...

  8. MongoDB - 在Windows上安装

    1 下载MongoDB社区版, 下载链接 http://www.mongodb.org/downloads?_ga=1.129742796.1997610832.1481940266 2 安装Mong ...

  9. 在mac电脑上创建java的一些简单操作

    首先你要在电脑上下载一个JDK创造出一个java环境 如下第二个: 然后步奏如下: step1:苹果->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop ...

  10. android应用刷新系统多媒体库(增加or删除多媒体文件)

    系统:android4.4及其以上 功能:app中拍照, 并实现浏览.删除照片操作. 实现: 1.拍照,存储到指定路径path 2.通知系统多媒体数据库刷新数据. 主要使用MediaScannerCo ...