【发布时间】:2016-09-27 15:09:37
【问题描述】:
我看到很多人在安装 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/native 导出 HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
导出 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,其方案和权限决定了 文件系统实现。 uri 的方案决定了配置 命名文件系统实现的属性 (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 作业跟踪器运行在。如果是“本地”,则运行作业 在进程中作为单个 map 和 reduce 任务。
pastebin链接是:
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-所有节点
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
hdfs是/home/bhishan/hadoop-2.7.2/bin/hdfs -
重启hadoop
cd /home/bhishan/hadoop-2.7.2/sbin
停止-dfs.sh
stop-yarn.shcd /home/bhishan/hadoop-2.7.2/tmp && rm -Rf *
hadoop namenode - 格式开始-dfs.sh
start-yarn.sh 现在错误来了
hdfs dfs -ls
16/09/26 23:53:14 警告 util.NativeCodeLoader:无法加载 适用于您平台的 native-hadoop 库...使用内置 java 类 如果适用 ls: `.': 没有这样的文件或目录
-
检查 jps
jps
6688 sun.tools.jps.Jps
3909 次要名称节点
3525 名称节点
4327 节点管理器
4184 资源管理器
3662 数据节点 -
检查本机
hadoop checknative -a
16/09/27 09:28:18 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... 在适用的情况下使用内置 java 类 本机库检查:
hadoop: 假
zlib: 假
活泼:假
lz4:假
bzip2: 假
openssl:假
16/09/27 09:28:18 INFO util.ExitUtil:以状态 1 退出 然后我安装了缺少的库:
a) 哪个 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) 在突触管理器中,我可以看到 lz4 liblz4-1、liblz4-tool、python-lz4、python3-lz4
e) bzip2 已经安装。
f) openssl 已经安装。
- 所有 checknative 都是假的,我无法运行 hdfs dfs -ls 到目前为止,我找不到任何错误。任何帮助将不胜感激。
另外,我正在尝试在具有四核的单台笔记本电脑中运行 hadoop。版本是2.7.2,版本3.0怎么样,如果我必须从头开始重新安装hadoop,可能我应该用hadoop3。欢迎提出建议。
相关链接:
Result of hdfs dfs -ls command
hdfs dfs ls not working after multiple nodes configured
hadoop fs -ls does not work
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
我们将不胜感激!
【问题讨论】: