最近博主在进行Hive测试 压缩解压缩的时候 遇到了这个问题,

该问题也常出现在日常 hdfs 指令中, 在启动服务 与 hdfs dfs 执行指令的时候 :

都会显示该提示,下面描述下该问题应该如何解决:

参考文章:

Hadoop之—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

https://blog.csdn.net/l1028386804/article/details/51538611

[大数据入门]解决centos6.5中WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfor

https://blog.csdn.net/u012425536/article/details/78770410

异常解决:util.NativeCodeLoader: Unable to load native-hadoop library for your platform

https://blog.csdn.net/young_kim1/article/details/50324345

问题描述 :

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

这里描述下我出现问题的原因:主要是依赖包 版本 过低的问题。

首先我们要定位问题,出现该问题的原因主要是 hadoop  native  下面的 hadoop 静态库 的问题:

libhadoop.so.1.0.0

原因一:

网上有很多说法是版本 默认 64位 而 系统是  32位,那我们要自己验证一下。

我们首先看下自己操作系统的版本:

执行指令:

uname -r

  1. [root@master native]# uname -r
  2. 2.6.32-696.30.1.el6.x86_64

那我们再看下  libhadoop.so.1.0.0 库 的版本

执行指令:

file  libhadoop.so.1.0.0

  1. [root@master native]# file libhadoop.so.1.0.0
  2. libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

可以看到并不是版本的问题。

那我们到底是为什么呢?

原因二 :

其实是依赖库的问题

我们对静态库查看下依赖:看下依赖是否都正常:

通过指令 ldd libhadoop.so.1.0.0

  1. ./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
  2. linux-vdso.so.1 => (0x00007fff369ff000)
  3. libdl.so.2 => /lib64/libdl.so.2 (0x00007f3caa7ea000)
  4. libc.so.6 => /lib64/libc.so.6 (0x00007f3caa455000)
  5. /lib64/ld-linux-x86-64.so.2 (0x00007f3caac1b000)

可以看到是glibc 版本的问题:

我们再确认下:

GLIBC_2.14找不到,现在检查系统的glibc库,  ldd --version  即可检查。 输入命令:

ldd --version

  1. ldd (GNU libc) 2.12
  2. Copyright (C) 2010 Free Software Foundation, Inc.
  3. This is free software; see the source for copying conditions. There is NO
  4. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  5. Written by Roland McGrath and Ulrich Drepper.

还可以直接确认下glibc 目前支持的版本:

通过如下查询方法:

strings /lib64/libc.so.6|grep GLIBC

  1. GLIBC_2.2.5
  2. GLIBC_2.2.6
  3. GLIBC_2.3
  4. GLIBC_2.3.2
  5. GLIBC_2.3.3
  6. GLIBC_2.3.4
  7. GLIBC_2.4
  8. GLIBC_2.5
  9. GLIBC_2.6
  10. GLIBC_2.7
  11. GLIBC_2.8
  12. GLIBC_2.9
  13. GLIBC_2.10
  14. GLIBC_2.11
  15. GLIBC_2.12
  16. GLIBC_PRIVATE

可以看到目前只支持到 2.12

那么问题发生了转化,我们只需要升级 glibc 库就行了。

Glibc 升级:

Glibc 升级这里我们采用从源码编译安装的方法:

我也尝试了直接从rpm 包 安装的方式,但是并不成功,主要是系统中应用依赖的问题,

可以参看这篇文章 : rpm 包安装:

[大数据入门]解决centos6.5中WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfor

https://blog.csdn.net/u012425536/article/details/78770410

由于怕导致系统出问题,没有直接卸载原有的 rpm 包。

进入主题 :

下载源码:

http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz  这里可以选择你所需要的版本。

执行指令:

wget  http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz

安装

  1. [root@kafzook1 common]# tar -xf glibc-2.17.tar.gz
  2. [root@kafzook1 common]# cd glibc-2.17
  3. [root@kafzook1 glibc-2.17]# mkdir build; cd build
  4. [root@kafzook1 build]# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
  5. [root@kafzook1 build]# make -j 8
  6. [root@kafzook1 build]# make install
  7. [root@kafzook1 common]# strings /lib64/libc.so.6 | grep GLIBC
  8. 会看到下面的结果
  9. GLIBC_2.2.5
  10. GLIBC_2.2.6
  11. GLIBC_2.3
  12. GLIBC_2.3.2
  13. GLIBC_2.3.3
  14. GLIBC_2.3.4
  15. GLIBC_2.4
  16. GLIBC_2.5
  17. GLIBC_2.6
  18. GLIBC_2.7
  19. GLIBC_2.8
  20. GLIBC_2.9
  21. GLIBC_2.10
  22. GLIBC_2.11
  23. GLIBC_2.12
  24. GLIBC_2.13
  25. GLIBC_2.14
  26. GLIBC_2.15
  27. GLIBC_2.16
  28. GLIBC_2.17
  29. GLIBC_PRIVATE

安装 (make install)后可看到如下输出,证明安装完成:

在执行 hdfs dfs -ls / 就没有警告了:

  1. [root@master native]# hdfs dfs -ls /
  2. Found 10 items
  3. drwxr-xr-x - root supergroup 0 2018-05-15 22:23 /180-monitor
  4. drwxr-xr-x - root supergroup 0 2018-07-04 16:39 /bigdata
  5. drwxr-xr-x - root supergroup 0 2018-06-08 20:23 /hive
  6. -rw-r--r-- 1 root supergroup 10545797 2018-03-12 15:24 /log_20180309_10.1520563967876.txt
  7. drwxr-xr-x - szh supergroup 0 2018-03-12 17:10 /out
  8. drwxr-xr-x - root supergroup 0 2018-05-04 16:51 /test
  9. drwx-wx-wx - root supergroup 0 2018-05-14 20:25 /tmp
  10. drwxr-xr-x - root supergroup 0 2018-06-22 21:53 /user
  11. drwxr-xr-x - root supergroup 0 2018-05-08 22:28 /usr
  12. -rw-r--r-- 1 root supergroup 46 2018-03-12 15:50 /words.txt

原因三 :

环境配置的问题:

在/etc/profile中,添加下面配置:

  1. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  2. export HADOOP_HOME=/home/hadoop/labc/hadoop-2.7.1
  3. export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

最后记得使配置生效:source /etc/profile

并把相同配置添加到hadoop-env.sh文件末尾。

Hadoop _ 疑难杂症 解决1 - WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat的更多相关文章

  1. hadoop操作权限问题:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    今天想从Eclipse向hdfs上传文件时遇到了一个权限问题,日志如下: ERROR hive.log: Got exception: org.apache.hadoop.security.Acces ...

  2. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Exception in thread "main" java.io.IOException: No FileSystem for sc F

    1.执行脚本程序报如下所示的错误: [hadoop@slaver1 script_hadoop]$ hadoop jar web_click_mr_hive.jar com.bie.hive.mr.C ...

  3. Hadoop集群“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”解决办法

    Hadoop集群部署完成后,经常会提示 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfo ...

  4. HADOOP:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable终于解决了

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin- ...

  5. Hadoop - 彻底解决警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

    目录 1 - 在日志配置文件中忽略警告 - 有效 2 - 指定本地库的路径 - 无效 3 - 不使用 Hadoop 本地库 - 无效 4 - 替换 Hadoop 本地库 - 有效 5 - 根据源码,编 ...

  6. 解决讨厌的警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    问题: 执行任何hadoop命令,都会提示如下WARN.虽然影响不大,但是每次运行一个命令都有这么个WARN,让人很不爽,作为一个精致的男人, 必须要干掉它. [root@master logs]# ...

  7. Hadoop问题解决:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    在配置好hadoop的环境之后,命令启动./start-all.sh发现经常出现这样的一个警告: WARN util.NativeCodeLoader: Unable to load native-h ...

  8. hadoop报错WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    19/06/14 10:44:58 WARN common.Util: Path /opt/hadoopdata/hdfs/name should be specified as a URI in c ...

  9. [hadoop] WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    hadoop 启动后,有警告信息: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform ...

随机推荐

  1. DataFrames,Datasets,与 SparkSQL

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  2. 每天进步一点点------Allegro 铺铜、内电层分割

    一.Allegro 铺铜 1.建议初学者内电层用正片,因为这样就不用考虑flash焊盘,这时候所有的过孔和通孔该连内电层的就连到内电层,不该连的就不连.而如果用负片,那么如果做焊盘的时候如果没有做fl ...

  3. kali 插上耳机没声音

    这几天装kali装的真是心力憔悴,好不容易勉强可以使用了,插上耳机想要放松下,结果没有声音? excusu me? 在经历各种方法之后终于找到了解决方法,亲测可行. 1.先打开终端,输入systemc ...

  4. Box/坐标/方向/Row

    1.Box, 我们在做design planning的第一步就是确定floorplan的box,也就是设计的区域.这个区域可以划分为三个边界,如下图所示: 上图中,按对应的颜色框框可以分为:Die B ...

  5. 网关集成Swagger出现404错误

    原因是忘了在需要生成api的类上加入注解  @EnableSwagger2Doc

  6. mutiprocessing 同步类型,如锁,条件和队列官方案例:

    官方文档:https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing 1. 同步类型,如锁,条件和队列官 ...

  7. AS报错:Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter can not access a member of class com.android.build.gradle.tasks.ManifestProcessorTask with modifiers "private"

    删除所有.gradle文件夹 失效缓存/重新启动

  8. 最小生成树计数 模板 hdu 4408

    题意是给定n个点,m条边的无向图,求最小生成树的个数对p取模. 用kruscal计算最小生成树时,每次取连接了两个不同联通块的最小的边.也就是先处理d1条c1长度的边,再处理d2条c2长度的边.长度相 ...

  9. docker 报错 docker: Error response from daemon: driver failed....iptables failed:

    现象: [root@localhost test]# docker run --name postgres1 -e POSTGRES_PASSWORD=password -p : -d postgre ...

  10. ftrace使用

    前段时间遇到个问题,有个后继音频数据处理线程调度不及时导致音频输出延迟,音视频不同步. 因此从系统上入手,采用ftrace进行debug,来看有哪些线程会去抢占音频数据处理线程. ftrace 提供了 ...