尝试格式namenode但权限被拒绝?

时间:2015-08-01 06:31:28

标签: java hadoop hdfs permission-denied

除了之前提出的问题

I am trying to format namenode in hdfs but says: permission denied

我没有任何回复,但我再次发布了我已经做的删除权限以完成工作:

我尝试过命令: 以下两个命令均来自线程:Permission denied at hdfs

  1. sudo -u hduser bash

    1. 编辑hdfs-site.xml

      使用as:hduser @ Ubuntu:/usr/hadoop/hadoop-2.7.1/etc/hadoop$ sudo gedit hdfs-site.xml 在这我已添加权限为false:

  2. <property>
            <name>dfs.permissions</name>
            <value>false</value>
        </property>

    再次运行命令:

    hduser @ Ubuntu:/usr/hadoop/hadoop-2.7.1$ bin / hdfs namenode -format bin / hdfs:第304行:/root/software/jdk1.8.0_45/bin/java:权限被拒绝 bin / hdfs:第304行:exec:/root/software/jdk1.8.0_45/bin/java:无法执行:权限被拒绝

    当我与 sudo

    一起使用时

    它给出了:

    hduser @ Ubuntu:/usr/hadoop/hadoop-2.7.1$ sudo bin / hdfs namenode -format bin / hdfs:第304行:/root/software/jdk1.8.0_45/bin/java:没有这样的文件或目录

    可能是什么解决方案。

2 个答案:

答案 0 :(得分:0)

使用上一篇文章更新了我的回答:

在这种情况下,您可以尝试在机器中安装openjdk并将其设置为hadoop。

  1. 要安装openjdk,请使用命令 sudo apt-get install openjdk-7-jdk 。它将安装在路径 / usr / lib / jvm 中。安装完成后,将文件〜/ .bashrc 中的JAVA_HOME环境变量更改为最新打开的jdk路径,并通过命令&#39; source~ /执行该文件。 bashrc中&#39 ;.
  2. 在系统级别设置环境后,我们也必须在hadoop环境中进行设置。打开文件 $ {HADOOP_HOME} /etc/hadoop/hadoop-env.sh 并将变量JAVA_HOME的值更改为最新的打开的jdk路径
  3. 希望这可以解决您的问题。

    注意:设置后通过命令echo $ JAVA_HOME验证java路径

    上一篇文章:

    这可能不是Hadoop的问题,因为hadoop进程无法执行java本身。

    1. 确保您拥有jdk目录的执行权限。(键入&#39; ll &#39;导航到jdk目录的父目录后,它将显示权限级别)。
    2. 如果它不在可执行级别,则通过运行命令&#34; sudo chmod -Rf a + x jdk_directory_name &#34;来更改jdk目录的执行模式。< / LI>

      仅供参考:不建议在根文件夹中安装jdk目录,因为hadoop或java可以由计算机上的任何用户运行。因此,您可以将jdk目录移动到/ usr / lib或/ opt /目录。

答案 1 :(得分:0)

hduser @ Ubuntu:/usr/hadoop/hadoop-2.7.1/etc/hadoop$ echo $ JAVA_HOME

hduser @ Ubuntu:/usr/hadoop/hadoop-2.7.1/etc/hadoop$ echo $ JAVA_HOME

顺便说一下,它以命令sbin / start-all.sh开头,然后是jps 但是namenode还没有开始。 怎么做@Bovas_Chinnathambi