hadoop error: util.NativeCodeLoader (hdfs dfs -ls does not work!)
hadoop error: util.NativeCodeLoader (hdfs dfs -ls does not work!)
我看到很多人在安装 hadoop 时遇到问题。我检查了所有相关的 Whosebug 问题,但无法解决问题。
问题是:
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
导出路径=$路径:$HADOOP_INSTALL/bin
导出路径=$路径:$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/native
导出 HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
导出路径=$路径:$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 的 link 在这里:
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中的link是这样的:
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 A base
for other temporary directories.
fs.default.name
hdfs://localhost:54310 The name of the
default file system. A URI whose scheme and authority determine the
FileSystem implementation. The uri's scheme determines the config
property (fs.SCHEME.impl) naming the FileSystem implementation
class. The uri's authority is used to determine the host, port,
etc. for a filesystem.
core-site.xml 的 pastebin 的 link 是这样的:
http://pastebin.com/D184DuGB
- 文件修改如下:
/home/bhishan/hadoop-2.7.2/etc/hadoop/mapred-site.xml
mapred.job.tracker
localhost:54311 The host and port that
the MapReduce job tracker runs at. If "local", then jobs are run
in-process as a single map and reduce task.
pastebin link 是:
http://pastebin.com/nVxs8nMm
当我在终端中输入主机名时,它显示 BP
猫/etc/hosts
127.0.0.1 本地主机 BP
127.0.1.1 本地主机
支持 IPv6 的主机需要以下行
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我也禁用了ipv6
cat /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 是 /home/bhishan/hadoop-2.7.2/bin/hdfs
正在重启 hadoop
cd /home/bhishan/hadoop-2.7.2/sbin
停止-dfs.sh
停止-yarn.sh
cd /home/bhishan/hadoop-2.7.2/tmp && rm -Rf *
hadoop 名称节点格式
开始-dfs.sh
开始-yarn.sh
现在错误来了
hdfs dfs -ls
16/09/26 23:53:14 WARN util.NativeCodeLoader: Unable to load
native-hadoop library for your platform... using builtin-java classes
where applicable ls: `.': No such file or directory
正在检查 jps
jps
6688sun.tools.jps.Jps
第3909章
3525 名称节点
4327 节点管理器
4184资源管理器
3662 数据节点
checknative
hadoop checknative -a
27 年 9 月 16 日 09:28:18 警告 util.NativeCodeLoader:无法为您的平台加载本机 hadoop 库...在适用的情况下使用内置-java 类
本机库检查:
hadoop:错误
zlib: false
活泼:假
lz4: 假
bzip2: 假
openssl: false
27 年 9 月 16 日 09:28:18 信息 util.ExitUtil:退出状态为 1
然后我安装了缺少的库:
a) which hadoop 给 Hadoop 2.7.2
b) sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev
从突触管理器中,我可以看到安装了以下库:
zlib1g, zlib1g-dev , zlib1g:i386, zlibc
c) 安装了 snappy 和 python-snappy.
d) 在 Synaptic 管理器中我可以看到 lz4
liblz4-1、liblz4-工具、python-lz4、python3-lz4
e) bzip2 已经安装。
f) openssl 已经安装。
- 所有checknative都是假的,我不能运行 hdfs dfs -ls
到现在为止我找不到任何错误。任何帮助将不胜感激。
此外,我正在尝试 运行 在具有四核的单台笔记本电脑中使用 hadoop。版本是 2.7.2,3.0 版本如何,如果我必须从头开始重新安装 hadoop,可能我应该使用 hadoop3。欢迎提出建议。
相关links:
Namenode not getting started
No Namenode or Datanode or Secondary NameNode to stop
Hadoop 2.6.1 Warning: WARN util.NativeCodeLoader
Hadoop 2.2.0 Setup (Pseudo-Distributed Mode): ERROR// Warn util.NativeCodeLoader: unable to load native-hadoop library
Command "hadoop fs -ls ." does not work
还有,
hadoop fs -mkdir failed on connection exception
Hadoop cluster setup - java.net.ConnectException: Connection refused
Hadoop (local and host destination do not match) after installing hive
我们将不胜感激!
来自这个错误:
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
我看到很多人在安装 hadoop 时遇到问题。我检查了所有相关的 Whosebug 问题,但无法解决问题。
问题是:
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 导出路径=$路径:$HADOOP_INSTALL/bin 导出路径=$路径:$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/native 导出 HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
导出路径=$路径:$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 的 link 在这里:
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中的link是这样的:
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 A base for other temporary directories.fs.default.name
hdfs://localhost:54310 The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.
core-site.xml 的 pastebin 的 link 是这样的: http://pastebin.com/D184DuGB
- 文件修改如下:
/home/bhishan/hadoop-2.7.2/etc/hadoop/mapred-site.xml
mapred.job.tracker
localhost:54311 The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task.
pastebin link 是:
http://pastebin.com/nVxs8nMm
当我在终端中输入主机名时,它显示 BP
猫/etc/hosts
127.0.0.1 本地主机 BP
127.0.1.1 本地主机支持 IPv6 的主机需要以下行
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters我也禁用了ipv6
cat /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1hadoop 描述
hadoop 版本
Hadoop 2.7.2哪个hadoop
hadoop 是 /home/bhishan/hadoop-2.7.2/bin/hadoop哪个硬盘
hdfs 是 /home/bhishan/hadoop-2.7.2/bin/hdfs正在重启 hadoop
cd /home/bhishan/hadoop-2.7.2/sbin
停止-dfs.sh
停止-yarn.shcd /home/bhishan/hadoop-2.7.2/tmp && rm -Rf *
hadoop 名称节点格式开始-dfs.sh
开始-yarn.sh现在错误来了
hdfs dfs -ls
16/09/26 23:53:14 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable ls: `.': No such file or directory
正在检查 jps
jps
6688sun.tools.jps.Jps
第3909章 3525 名称节点
4327 节点管理器
4184资源管理器
3662 数据节点checknative
hadoop checknative -a
27 年 9 月 16 日 09:28:18 警告 util.NativeCodeLoader:无法为您的平台加载本机 hadoop 库...在适用的情况下使用内置-java 类 本机库检查:
hadoop:错误
zlib: false
活泼:假
lz4: 假
bzip2: 假
openssl: false
27 年 9 月 16 日 09:28:18 信息 util.ExitUtil:退出状态为 1然后我安装了缺少的库:
a) which hadoop 给 Hadoop 2.7.2
b) sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev
从突触管理器中,我可以看到安装了以下库:
zlib1g, zlib1g-dev , zlib1g:i386, zlibc
c) 安装了 snappy 和 python-snappy.
d) 在 Synaptic 管理器中我可以看到 lz4 liblz4-1、liblz4-工具、python-lz4、python3-lz4
e) bzip2 已经安装。
f) openssl 已经安装。
- 所有checknative都是假的,我不能运行 hdfs dfs -ls 到现在为止我找不到任何错误。任何帮助将不胜感激。
此外,我正在尝试 运行 在具有四核的单台笔记本电脑中使用 hadoop。版本是 2.7.2,3.0 版本如何,如果我必须从头开始重新安装 hadoop,可能我应该使用 hadoop3。欢迎提出建议。
相关links:
Namenode not getting started
No Namenode or Datanode or Secondary NameNode to stop
Hadoop 2.6.1 Warning: WARN util.NativeCodeLoader
Hadoop 2.2.0 Setup (Pseudo-Distributed Mode): ERROR// Warn util.NativeCodeLoader: unable to load native-hadoop library
Command "hadoop fs -ls ." does not work
还有,
hadoop fs -mkdir failed on connection exception
Hadoop cluster setup - java.net.ConnectException: Connection refused
Hadoop (local and host destination do not match) after installing hive
我们将不胜感激!
来自这个错误:
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