[英]Hadoop 2.2.0 Setup (Pseudo-Distributed Mode): ERROR// Warn util.NativeCodeLoader: unable to load native-hadoop library
[英]hadoop error: util.NativeCodeLoader (hdfs dfs -ls does not work!)
我已经看到很多人在安装hadoop时遇到问题。 我经历了所有相关的stackoverflow问题,但无法解决问题。
问题是 :
hdfs dfs -ls
16/09/27 09:43:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: `.': No such file or directory
我正在使用Ubuntu 16.04,并且从Apache镜像下载了hadoop稳定版2.7.2:
http://apache.spinellicreations.com/hadoop/common/
我已经安装了Java和ssh。
哪个java
java是/ usr / bin / java
哪个javac
javac是/ usr / bin / javac
哪个SSH
ssh是/ usr / bin / ssh
回声$ JAVA_HOME
/ usr / lib / jvm / java-9-openjdk-amd64
注意:
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1091 auto mode
1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
2 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1091 manual mode
Press <enter> to keep the current choice[*], or type selection number:
〜/ .bashrc中的hadoop环境变量
导出JAVA_HOME = / usr / lib / jvm / java-9-openjdk-amd64导出HADOOP_INSTALL = / home / bhishan / hadoop-2.7.2导出PATH = $ PATH:$ HADOOP_INSTALL / bin导出PATH = $ PATH:$ HADOOP_INSTALL / sbin导出HADOOP_MAPRED_HOME = $ HADOOP_INSTALL导出HADOOP_COMMON_HOME = $ HADOOP_INSTALL导出HADOOP_HDFS_HOME = $ HADOOP_INSTALL导出YARN_HOME = $ HADOOP_INSTALL导出HADOOP_COMMON_LIB_NATIVE_DIR = $ HADOOP_INSTALL / lib \\ HADOOP_INSTALL
导出PATH = $ PATH:$ HADOOP_HOME / bin
修改文件:
/home/bhishan/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
在末尾添加了一行:
export JAVA_HOME=/usr/lib/jvm/java-9-openjdk-amd64
pastebin中指向hadoop-env.sh的链接在这里:
http://pastebin.com/a3iPjB04
然后我创建了一些空目录:
/home/bhishan/hadoop-2.7.2/tmp /home/bhishan/hadoop-2.7.2/etc/hadoop/hadoop_store /home/bhishan/hadoop-2.7.2/etc/hadoop/hadoop_store/hdfs / home / bhishan /hadoop-2.7.2etc/hadoop/hadoop_store/hdfs/datanode /home/bhishan/hadoop-2.7.2/etc/hadoop/hadoop_store/hdfs/namenode
对文件的修改: /home/bhishan/hadoop-2.7.2/etc/hadoop/hdfs-site.xml
<property> <name>dfs.replication</name> <value>1</value> <description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time. </description> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/bhishan/hadoop-2.7.2/etc/hadoop/hadoop_store/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/bhishan/hadoop-2.7.2/etc/hadoop/hadoop_store/hdfs/datanode</value> </property>
pastebin中的链接是这样的:
http://pastebin.com/cha7ZBr8
/home/bhishan/hadoop-2.7.2/etc/hadoop/core-site.xml
以下:
hadoop.tmp.dir
/home/bhishan/hadoop-2.7.2/tmp其他临时目录的基础。fs.default.name
hdfs:// localhost:54310默认文件系统的名称。 一个URI,其方案和权限确定FileSystem的实现。 uri的方案确定命名FileSystem实现类的config属性(fs.SCHEME.impl)。 uri的权限用于确定文件系统的主机,端口等。
指向core-site.xml的pastebin的链接是这样的: http : //pastebin.com/D184DuGB
/home/bhishan/hadoop-2.7.2/etc/hadoop/mapred-site.xml
mapred.job.tracker
localhost:54311 MapReduce作业跟踪程序运行的主机和端口。 如果为“本地”,则作业将作为单个映射在流程中运行,并减少任务。
pastebin链接为:
http://pastebin.com/nVxs8nMm
当我在终端中输入主机名时说BP
猫/ etc / hosts
127.0.0.1本地主机BP
127.0.1.1本地主机
:: 1 ip6-localhost ip6-loopback
fe00 :: 0 ip6-localnet
ff00 :: 0 ip6-mcastprefix
ff02 :: 1 ip6-allnodes
ff02 :: 2 ip6-allrouters
我也禁用了ipv6
猫/etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
hadoop描述
Hadoop版本
Hadoop 2.7.2
哪个Hadoop
hadoop是/home/bhishan/hadoop-2.7.2/bin/hadoop
哪个HDFS
hdfs是/home/bhishan/hadoop-2.7.2/bin/hdfs
重新启动Hadoop
cd /home/bhishan/hadoop-2.7.2/sbin
停止-dfs.sh
stop-yarn.sh
cd /home/bhishan/hadoop-2.7.2/tmp && rm -Rf *
hadoop namenode-格式
start-dfs.sh
start-yarn.sh
现在错误来了
hdfs dfs -ls
16/09/26 23:53:14 WARN util.NativeCodeLoader:无法在适用的平台上使用内置的Java类为您的平台加载本机Hadoop库ls:`。':无此类文件或目录
检查jps
jps
6688 sun.tools.jps.Jps
3909 SecondaryNameNode
3525 NameNode
4327节点管理器
4184资源管理器
3662个数据节点
检验性的
hadoop checknative -a
16/09/27 09:28:18 WARN util.NativeCodeLoader:无法使用适用于本机库检查的内置Java类,为您的平台加载本机Hadoop库:
hadoop:错误
zlib:假
snappy:错误
lz4:错误
bzip2:错误
openssl:错误
16/09/27 09:28:18 INFO util.ExitUtil:以状态1退出
然后我安装了缺少的库:
a)哪个hadoop提供了Hadoop 2.7.2
b)sudo apt-get install-重新安装zlibc zlib1g zlib1g-dev
从突触管理器中,我可以看到已安装以下库:
zlib1g,zlib1g-dev,zlib1g:i386,zlibc
c)安装了snappy和python-snappy。
d)在Synaptic管理器中,我可以看到lz4 liblz4-1,liblz4-tool,python-lz4,python3-lz4
e)bzip2已经安装。
f)openssl已经安装。
另外,我试图在具有四个核心的Single笔记本电脑中运行hadoop。 版本是2.7.2,版本是3.0,如果我必须从头重新安装hadoop,也许我应该选择hadoop3。 建议将受到欢迎。
相关链接:
hdfs dfs -ls命令的结果
配置多个节点后,hdfs dfs ls无法正常工作
hadoop fs -ls不起作用
Namenode尚未开始
没有要停止的Namenode或Datanode或Secondary NameNode
Hadoop 2.6.1警告:WARN util.NativeCodeLoader
Hadoop 2.2.0设置(伪分布式模式):错误//警告util.NativeCodeLoader:无法加载本地hadoop库
命令“ hadoop fs -ls”。 不起作用
并且,
hadoop fs -mkdir出现连接异常失败
Hadoop集群设置-java.net.ConnectException:连接被拒绝
安装配置单元后的Hadoop(本地和主机目标不匹配)
帮助将不胜感激!
从这个错误:
hdfs dfs -ls
16/09/27 09:43:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: `.': No such file or directory
忽略有关本机库的警告-即使出现该警告,该命令也应能正常工作。
当您以没有路径的方式运行hdfs dfs -ls时,它将尝试列出HDFS中的主目录内容,默认情况下为/ user /。 在这种情况下,我怀疑这个问题仅仅是您的用户目录不存在。
如果您运行,它可以正常工作吗:
hadoop fs -ls /
然后执行:
hadoop fs -mkdir -p /user/<your_user_name>
hadoop fs -ls
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.