除了先前提出的问题
我正在尝试格式化hdfs中的namenode,但是说:权限被拒绝
对此,我没有任何回应,但我再次张贴我所做的删除权限,以完成工作:
我试过命令:下面两个命令都来自thread:permission denied at hdfs
sudo-u用户bash
编辑hdfs-site.xml
使用as:hduser@ubuntu:/usr/hadoop/hadoop-2.7.1/etc/hadoop$sudo gedit hdfs-site.xml
在此,我将权限添加为false:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
再次运行命令:
hduser@ubuntu:/usr/hadoop/hadoop-2.7.1$bin/hdfs namenode-格式bin/hdfs:line 304:/root/software/jdk1.8.0_45/bin/java:权限拒绝bin/hdfs:line 304:exec:/root/software/jdk1.8.0_45/bin/java:无法执行:权限拒绝
当我和sudo一起用的时候
它给出:
hduser@ubuntu:/usr/hadoop/hadoop-2.7.1$sudo bin/hdfs namenode-格式bin/hdfs:line 304:/root/software/jdk1.8.0_/bin/java:没有这样的文件或目录
解决办法是什么。
2条答案
按热度按时间des4xlb01#
用上一篇帖子更新了我的答案:
在这种情况下,您可以尝试在您的计算机中安装openjdk并将其设置为hadoop。
要安装openjdk,请使用sudo apt get install openjdk-7-jdk命令。它将安装在路径/usr/lib/jvm中。安装后,将文件~/.bashrc中的java\u home环境变量更改为最新打开的jdk路径,并通过命令'source~/.bashrc'执行该文件。
在系统级设置环境之后,我们还必须在hadoop环境中设置它。打开文件${hadoop\u home}/etc/hadoop/hadoop-env.sh并将变量java\u home的值更改为最新打开的jdk路径
希望这能解决你的问题。
注意:设置后,通过echo$java\u home命令验证java路径
以前的职位:
这可能不是hadoop的问题,因为hadoop进程不能执行java本身。
确保您对jdk目录具有执行权限(在导航到jdk目录的父目录后键入'll',它将显示权限级别)。
如果它不在可执行级别,则通过运行命令“sudochmod-rfa+xjdk\u directory\u name”,将模式更改为对jdk目录执行。
仅供参考:不建议将jdk目录放在根文件夹中,因为hadoop或java可以由机器上的任何用户运行。因此可以将jdk目录移动到/usr/lib或/opt/目录。
8qgya5xd2#
hduser@ubuntu:/usr/hadoop/hadoop-2.7.1/etc/hadoop$echo$java\u主页
hduser@ubuntu:/usr/hadoop/hadoop-2.7.1/etc/hadoop$echo$java\u主页
顺便说一下,它是用sbin/start-all.sh命令启动的,然后是jps,但是namenode还没有启动。该怎么办?@bovas\u chinnathambi