WARN util.NativeCodeLoader: Unable to load native-hadoop l... using builtin-java classes where applicable(附编译脚本)
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(附编译脚本)的更多相关文章
- 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/ ...
- [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 ...
- 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 ...
- 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- ...
- 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 ...
- Hadoop安装—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platf
今天在安装hadoop完成测试创建用户目录失败在网上找到了原因记录一下原文地址 http://blog.csdn.net/l1028386804/article/details/51538611 配置 ...
- 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 ...
- 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 ...
- Hadoop _ 疑难杂症 解决1 - WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat
最近博主在进行Hive测试 压缩解压缩的时候 遇到了这个问题, 该问题也常出现在日常 hdfs 指令中, 在启动服务 与 hdfs dfs 执行指令的时候 : 都会显示该提示,下面描述下该问题应该如何 ...
- Hadoop - 彻底解决警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
目录 1 - 在日志配置文件中忽略警告 - 有效 2 - 指定本地库的路径 - 无效 3 - 不使用 Hadoop 本地库 - 无效 4 - 替换 Hadoop 本地库 - 有效 5 - 根据源码,编 ...
随机推荐
- HDOJ Important Sisters
Important Sisters Time Limit: 7000/7000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- 一个简单有效的兼容IE7浏览器的办法
最近发现了一个简单有效的兼容IE7浏览器的办法 直接将下面代码复制道页面 <meta http-equiv="X-UA-Compatible" content="I ...
- .NET CMS系统--pageAdmin 模板样式设置
修改方法: 表单模型管理 - 数据表管理 - 模型管理 修改产品详情页
- JAVA中如何创建一个二维数组,然后给二维数组赋值!
普通的赋值是:int[][] i = {{1,2,3},{2,3,4},{1,3,4}}; 如果是其他情况可以这样:比如: import java.util.* public class TT(){ ...
- Oracle 时间字符 转
http://www.cnblogs.com/linximf/archive/2011/11/21/2257036.html oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对 ...
- Educational Codeforces Round 34 A. Hungry Student Problem【枚举】
A. Hungry Student Problem time limit per test 1 second memory limit per test 256 megabytes input sta ...
- 洛谷——P1227 [JSOI2008]完美的对称
P1227 [JSOI2008]完美的对称 题目描述 在峰会期间,必须使用许多保镖保卫参加会议的各国代表.代表们除了由他自己的随身保镖保护外,组委会还指派了一些其他的特工和阻击手保护他们.为了使他们的 ...
- 审查php.ini自动分析程序
源码 https://github.com/sektioneins/pcc 使用方法 环境: mac cli 命令行执行 git clone https://github.com/sektionein ...
- dogpile搜索引擎
有发现了一个新的搜索引擎——dogpile,结果还不错.据说是综合了多个搜索引擎的结果,展现了最终的搜索结果. 从百科上介绍说,这是一个[元搜索引擎].不懂,继续百科之,如下: 搜索引擎分为全文搜索引 ...
- mac下安装好sencha cmd后每次都需要输入source ~/.bash_profile
解决办法: 在终端输入vim ~/.zshrc加一句 source ~/.bash_profile