WARN util.NativeCodeLoader: Unable to load native-hadoop l... using builtin-java classes where applicable

反正我是看着这个警告十分不爽,搞得我的屏幕都不清爽了

提示hadoop不能加载本地库。

以前官网会提供32位的安装包,但目前提供的下载包为64位的,在linux 32位系统下安装后会一直提示错误“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable ”,但官网又不提供32位系统下的安装包,所以我们只能自己编译打包源码。

大家可以到$HADOOP_HOME/lib/native下,查看文件libhadoop.so.1.0.0,里面会显示Hadoop的位数,官网下载好的显示是64位的,截图如下:

编译准备

1、下载所需的软件

先去官网下载hadoop2.7.1源码并解压,打开解压目录下的BUILDING.txt,编译过程和需要的软件其实就是根据这个文档里的描述来的。

包括:

JDK1.7+
maven 3.0 or later
findbugs 1.3.9
protocolBuffer 2.5.0
cmake 2.6
zlib-devel
openssl-devel
根据网友的资料,也需要安装autoconf automake gcc等。

编译之后的目录

/root/packages/hadoop-2.7.4-src/hadoop-dist/target/hadoop-2.7.4/lib/native

算了不写废话,直接上脚本,我表示可以成功执行

#!/bin/bash

# 免责声明: blablabla......
# 需要安装的依赖
# NOTE: 非yum安装的一律安装到目录/usr/local
# cmake 2.6
# zlib-devel
# openssl-devel
# JDK1.+
# maven 3.0 or later
# findbugs 1.3.
# protocolBuffer 2.5. # . 安装jdk
# 关于java的安装和环境变量配置前面已经有脚本了
java -version && echo "java安装成功"
java -version || echo "java未安装或者安装失败" # . 依赖安装
yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel source /etc/profile # . 安装maven 3.3.
maven -version && echo "maven安装成功"
maven -version || echo "maven未安装或者安装失败"
mvn -version > /dev/null
if [ $? -ne ]; then
maven_bin=/root/packages/apache-maven-3.3.-bin.tar.gz # 软件下载的地址
# 判断文件是否已经已经存在
if [ ! -f $maven_bin ]; then
curl http://mirror.bit.edu.cn/apache//maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz -o \
$maven_bin --progress
fi tar zxf $maven_bin -C /usr/local/ # 解压到指定的目录
unfoldName=`tar tf $maven_bin | head -n ` # 获取解压之后的文件夹名称
unfoldName=${unfoldName%%/*} # 去掉最后的目录分隔符/
maven_home=/usr/local/$unfoldName # 获取home目录 # 先删除/etc/profile中已有的配置
sed -i '/MAVEN_HOME/d' /etc/profile
sed -i '/MAVEN_OPTS/d' /etc/profile
# 写入/etc/profile
echo "MAVEN_HOME=$maven_home" >> /etc/profile
echo 'MAVEN_OPTS="-Xms256m -Xmx512m"' >> /etc/profile
echo 'PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile
echo 'export MAVEN_HOME MAVEN_OPTS PATH' >> /etc/profile
source /etc/profile
mvn -version && echo "maven 3.3.9安装成功" || exit 1
fi source /etc/profile
protoc --version && echo "protoc安装成功"
protoc --version || echo "protoc未安装或者安装失败"
protoc --version > /dev/null
if [ $? -ne 0 ]; then
rm -rf /usr/local/protobuf-2.5.0
protobuf=/root/packages/protobuf-2.5.0.tar.gz
if [ ! -f $protobuf ]; then
# 我擦, curl下载https会出问题
wget -O $protobuf https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
fi
protobuf_unfold=`tar tf /root/packages/protobuf-2.5.0.tar.gz | head -n 1`
protobuf_unfold=${protobuf_unfold%%/*}
rm -rf /root/packages/protobuf-2.5.0
tar zxf $protobuf -C /root/packages/
/root/packages/$protobuf_unfold/configure --prefix=/usr/local/$protobuf_unfold
cd /root/packages/$protobuf_unfold
make && make install
sed -i '/PROTOBUF_HOME/d' /etc/profile
protobuf_home=/usr/local/$protobuf_unfold
echo "PROTOBUF_HOME=$protobuf_home" >> /etc/profile
echo 'PATH=$PROTOBUF_HOME/bin:$PATH' >> /etc/profile
echo 'export PROTOBUF_HOME PATH' >> /etc/profile
source /etc/profile
protoc --version && echo "protobuf 2.5.0 安装成功" || exit 1
else
protoc --version | echo
fi findbugs -version > /dev/null if [ $? -ne 0 ]; then
findbugs_bin=/root/packages/findbugs-1.3.9.tar.gz
if [ ! -f $findbugs_bin ]; then
wget -O $findbugs_bin https://nchc.dl.sourceforge.net/project/findbugs/findbugs/1.3.9/findbugs-1.3.9.tar.gz
fi
findbugs_unfold=`tar tf $findbugs_bin | head -n 1`
findbugs_unfold=${findbugs_unfold%%/*}
tar zxf $findbugs_bin -C /usr/local/
findbugs_home=/usr/local/$findbugs_unfold
sed -i '/FINDBUGS_HOME/d' /etc/profile
echo "FINDBUGS_HOME=$findbugs_home" >> /etc/profile
echo 'PATH=$PATH:$FINDBUGS_HOME/bin' >> /etc/profile
echo 'export FINDBUGS PATH' >> /etc/profile
source /etc/profile
findbugs -version && echo "findbugs 3.0.1 安装成功" || echo "findbugs 3.0.1 安装失败"
else
findbugs -version | echo
fi source /etc/profile
hadoop_source=/root/packages/hadoop-2.7.4-src.tar.gz
ls $hadoop_source > /dev/null if [ $? -ne 0 ]; then
wget -O $hadoop_source http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4-src.tar.gz
fi
hadoop_source_unfold=`tar tf $hadoop_source | head -n 1`
hadoop_source_unfold=${hadoop_source_unfold%%/*}
tar zxf $hadoop_source -C /root/packages/
cd /root/packages/$hadoop_source_unfold
mvn package -Pdist,native -DskipTests -Dtar

最后可以成功编译

然后用32位的so去替换官方的64位的,就不会有警告了

look, 是不是没有报错了

脚本真的是方便呢,是不是要去学一下python。。~o( =∩ω∩= )m。

WARN util.NativeCodeLoader: Unable to load native-hadoop l... using builtin-java classes where applicable(附编译脚本)的更多相关文章

  1. WARN util.NativeCodeLoader: Unable to load native-hadooplibrary for your platform… using builtin-java classes where applicable

    方法1glibc 官方要求的2.14版本以上 方法2:http://www.secdoctor.com/html/yyjs/31101.html 方法3: http://dl.bintray.com/ ...

  2. [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 ...

  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... using builtin-java classes where applicable,解决方案

    安装Hadoop的时候直接用的bin版本,根据教程安装好之后运行的时候发现出现了:WARN util.NativeCodeLoader: Unable to load native-hadoop li ...

  6. Hadoop安装—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platf

    今天在安装hadoop完成测试创建用户目录失败在网上找到了原因记录一下原文地址 http://blog.csdn.net/l1028386804/article/details/51538611 配置 ...

  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 _ 疑难杂症 解决1 - WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat

    最近博主在进行Hive测试 压缩解压缩的时候 遇到了这个问题, 该问题也常出现在日常 hdfs 指令中, 在启动服务 与 hdfs dfs 执行指令的时候 : 都会显示该提示,下面描述下该问题应该如何 ...

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

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

随机推荐

  1. bzoj 2844 albus就是要第一个出场 异或和出现次数 线性基

    题目链接 题意 给定\(n\)个数,将其所有的子集(\(2^n\)个)的异或和按升序排列.给出一个询问\(q\),问\(q\)在该序列中第一次出现位置的下标(下标从\(1\)开始). 题解 结论 记其 ...

  2. 转 C++拷贝构造函数详解

    C++拷贝构造函数详解 一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一 ...

  3. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---47

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  4. 导入Excel表中的数据

    第一步:转换导入的文件 private void btnSelectFile_Click(object sender, EventArgs e) { OpenFileDialog ofd = new ...

  5. Android 利用工具实现一键自动findViewById功能

    在线网站工具 地址:http://android.lineten.net/layout.php

  6. (转)Kettle命令行

    kettle使用命令行来运行ktr和kjb 1:cmd方式运行 1.ktr的运行:运行transformation文件是通过Pan.bat来运行的. 打开cmd命令行窗口,转到Pan.bat所在的目录 ...

  7. CCCC L2-010. 排座位【并查集/分类讨论】

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...

  8. Word Pattern - LeetCode

    Given a pattern and a string str, find if str follows the same pattern. Here follow means a full mat ...

  9. HTML DOM介绍

    HTML DOM定义了一系列的对象,以及访问和处理HTML的方法.通过DOM可以浏览所有的HTML元素,不但可以修改或者删除元素的文本和属性,而且可以创建新的元素. 一.首先对一个元素进行操作前,要得 ...

  10. Spring MVC 学习

    一.基础 Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高.Spring 3.0更加完善,实现了对Struts 2的超越.现在 ...