这篇是用来记录 Hadoop 安装记录时遇到的问题的,我在 ubuntu16.04、14.02 上都折腾过 2.7 和 3.0,遇到的问题和解决方法大同小异。具体配置流程整理一下后单独写一篇文章。
问题描述:hadoop 3.0 配置完全分布式时遇到的,start-all.sh 后发现终端输出的信息中,slave 节点没起来
解决方案:配置时有个文件写错了,hadoop3.0 中存储slave节点名称的文件叫 workers(=_=);
而 2 点几的版本都是 slaves 文件,改过来后重新格式化一遍就好了,所以说一定要找自己要配置版本相对应的教程。
问题描述:格式化时遇到的(两个版本都遇到过),运行命令
$ bin/hdfs namenode -format
时提示
bash: bin/hdfs: Permission danied
解决方案:这是由文件权限导致的,可以用 ls -l 命令列出当前路径,当前用户组对文件所拥有的权限,例如:
drwxr-xr-x
第 1 位表示文件类型(d 为目录文件,l 为链接文件,- 为普通文件,p 为管道);
第 2-4 位表示这个文件的属主拥有的权限,r 是读,w 是写,x 是执行;
第 5-7 位表示和这个文件属主所在同一个组的用户所具有的权限;
第 8-10 位表示其他用户所具有的权限。
而我们这里需要给所有文件赋予运行权,就是 x,具体命令为:
$ sudo chmod -R +x hadoop
解释一下参数,hadoop 为文件夹,就是 hadoop 所在的根目录,
+x 为添加 x 权限,即可运行,
-R 表示对指定位置迭代操作,即修改 hadoop 文件夹下所有文件添加 x 权限。
问题描述:格式化时还可能遇到一个问题,
bin/hdfs: line 304: /xxxxxxxx/bin/java: Permission denied
bin/hdfs: line 304: exec: /xxxxxxxx/bin/java: cannot execute: Permission denied
解决方案:同上,还是文件权限的问题,找到 java 根目录,修改方法也同上。
ERROR namenode.NameNode: Failed to start namenode.
java.io.IOException: Cannot create directory xxxxxxxxxxxxx
解决方案:命令前面带上 sudo