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 - 根据源码,编 ...
随机推荐
- 【BZOJ1874】取石子游戏(SG函数)
题意:小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子, 每次取石子的个数有限制,谁不能取石子时就会输掉游戏. 小H先进行操作, 他想问你他是否有必 ...
- windows 加入域
点击computer,右击选system ,点 change setting,填写domain和computer-name 加入域,下次登陆加入,在域中会检查computer name
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---7
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- JS-严格模式、非严格模式
2018年11月14日晚上,我在“深入理解javascript”书上第一次知道“严格模式”“非严格模式”这2个名词: “严格模式”使用指令:“use strict”: 这个指令我其实有经常看到,在其他 ...
- python-re之中文匹配
#coding=utf-8 import re import chardet#检测网页编码形式的模块 p = re.compile(r'\d+') print p.findall('one1two2t ...
- 洛谷 P1464 Function【动态规划(递推)/记忆化搜索(递归)】
题目描述 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,2 ...
- webpack常用配置项配置文件介绍
一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...
- 2016集训测试赛(二十四)Problem C: 棋盘控制
Solution 场上的想法(显然是错的)是这样的: 我们假设棋子是一个一个地放置的, 考虑在放置棋子的过程中可能出现哪些状态. 我们令有序整数对\((i, j)\)表示总共控制了\(i\)行\(j\ ...
- Python 集成开发环境(IDE)
DiscoverSDK网站进行了一次调查 - 什么是最好的Python IDE,这里是调查的结果 Python是一种非常流行的开源编程语言.得益于无尽的模块选项,Python今天广泛用于脚本 ...
- SQL-基础学习4--聚集函数:AVG(),COUNT(),MAX(),MIN(),SUM();聚集不同值:DISTINCT
第九课 9.1 聚集函数(对某些行运行的函数,计算并返回一个值) 我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专门的函数.使用这些函数,SQL查询可用于检索数据,以便分析和报表生成. ...