hadoop-0.20.2 格式化hadoop时,报command not found,权限不够?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop-0.20.2 格式化hadoop时,报command not found,权限不够?相关的知识,希望对你有一定的参考价值。

在Redhat 5.6 Enterprise x64环境下,搭建 Apache Hadoop-0.20.2 环境 遇到了以下错误:

1.jdk设置环境变量:
JAVA_HOME=/usr/software/jdk1.7.0_09
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

--jdk设置环境是没问题的,能运行HelloWorld.

2.hadoop 设置环境变量
export HADOOP_HOME=/usr/software/hadoop/hadoop-0.20.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

3.其它文件的修改都正常,格式化hadoop时报了以下问题:

[root@hadoopName /]# cd /usr/software/hadoop/hadoop-0.20.2/bin
[root@hadoopName bin]# hadoop namenode -format
-bash: hadoop: command not found
请问一下大家这是怎么回事?大家是怎么格式化hadoop的?

现在,实现linux的ssh无密码验证配置后,再次进入hadoop到bin目录,执行hadoop namenode -format命令时,报权限不够,请问一下大家,该怎么修改?
[root@hadoopName bin]# pwd/usr/software/hadoop/hadoop-0.20.2/bin
[root@hadoopName bin]# hadoop namenode -format
-bash: /usr/software/hadoop/hadoop-0.20.2/bin/hadoop: 权限不够
[root@hadoopName bin]#

参考技术A 你用 hadoop的用户执行呢
或者 chown -R 你的hadoop目录 把它归到hadoop用户组哈 在试试追问

1.是不是我必须要建立一个hadoop用户,再把权限赋到hadoop目录。我现在是用root登录的reahat.
2.若可以用root登录,又是怎么操作的呢?

追答

我觉得还是用第一个 方法试试 比较好

    建立一个 单独的hadoop用户组 在hadoop用户组 建立一个hadoop用户 把所需要的环境变量都在 配置在hadoop用户下的 ~/.bashrc 这个文件里面 

    在/etc/sudoers 的 root  ALL=(ALL:ALL) ALL 添加 hadoop ALL=(ALL:ALL) ALL 

    把你的 /usr/software/hadoop/hadoop-0.20.2 赋权给 hadoop 

    配置所有机子的 hadoop用户间的 ssh 登录

    执行hadoop namenode -format
    应该是可以的  祝你好运 ~-~

操作Hadoop集群

操作Hadoop集群

所有必要的配置完成后,将文件分发到所有机器上的HADOOP_CONF_DIR目录。这应该是所有机器上相同的目录。

一般来说,建议HDFS和YARN作为单独的用户运行。在大多数安装中,HDFS进程作为“hdfs”执行。YARN通常使用“纱线”帐户。

Hadoop启动

要启动Hadoop集群,您需要启动HDFS和YARN集群。

首次升级HDFS时,必须格式化。将新的分布式文件系统格式化为hdfs:

[hdfs] $ $ HADOOP_HOME / bin / hdfs namenode -format <cluster_name>
在指定的节点上使用以下命令启动HDFS NameNode作为hdfs:

[hdfs] $ $ HADOOP_HOME / bin / hdfs --daemon start namenode
在每个指定的节点上使用以下命令启动HDFS DataNode :hdfs:

[hdfs] $ $ HADOOP_HOME / bin / hdfs --daemon start datanode
如果配置了etc / hadoop / worker和ssh信任访问(请参阅单节点安装),则可以使用实用程序脚本启动所有HDFS进程。作为hdfs:

[hdfs] $ $ HADOOP_HOME / sbin / start-dfs.sh
开始使用以下命令,在指定的ResourceManager为运行纱线纱:

[纱线] $ $ HADOOP_HOME / bin / yarn --daemon启动资源管理器
运行一个脚本来在每个指定的主机上启动一个NodeManager作为纱线:

[纱线] $ $ HADOOP_HOME / bin / yarn --daemon启动nodemanager
启动独立的WebAppProxy服务器。在WebAppProxy服务器上作为纱线运行。如果使用多个服务器进行负载平衡,则应在每个服务器上运行:

[纱线] $ $ HADOOP_HOME / bin / yarn --daemon启动代理服务器
如果配置了etc / hadoop / worker和ssh信任访问(请参阅单节点安装),则可以使用实用程序脚本启动所有YARN进程。由于纱线:

[纱线] $ $ HADOOP_HOME / sbin / start-yarn.sh
使用以下命令启动MapReduce JobHistory服务器,在映射的指定服务器上运行:

[mapred] $ $ HADOOP_HOME / bin / mapred --daemon启动历史记录服务器
Hadoop关机

使用以下命令停止NameNode,在指定的NameNode上运行hdfs:

[hdfs] $ $ HADOOP_HOME / bin / hdfs --daemon stop namenode
运行脚本来停止DataNode作为hdfs:

[hdfs] $ $ HADOOP_HOME / bin / hdfs --daemon stop datanode
如果配置了etc / hadoop / worker和ssh可信访问(请参阅单节点安装),所有HDFS进程可能会使用实用程序脚本停止。作为hdfs:

[hdfs] $ $ HADOOP_HOME / sbin / stop-dfs.sh
停止使用下面的命令,在指定的ResourceManager作为运行的ResourceManager 纱:

[纱线] $ $ HADOOP_HOME / bin / yarn --daemon停止资源管理器
运行一个脚本来停止一个工作的NodeManager作为纱线:

[纱线] $ $ HADOOP_HOME / bin / yarn  -  daemon stop nodemanager
如果配置了etc / hadoop / worker和ssh信任访问(请参阅单节点安装),则可以使用实用程序脚本停止所有YARN进程。由于纱线:

[纱线] $ $ HADOOP_HOME / sbin / stop-yarn.sh
停止WebAppProxy服务器。在WebAppProxy服务器上作为纱线运行。如果使用多个服务器进行负载平衡,则应在每个服务器上运行:

[纱线] $ $ HADOOP_HOME / bin /纱线停止代理服务器
使用以下命令停止MapReduce JobHistory服务器,在映射的指定服务器上运行:

[mapred] $ $ HADOOP_HOME / bin / mapred --daemon stop historyserver

















以上是关于hadoop-0.20.2 格式化hadoop时,报command not found,权限不够?的主要内容,如果未能解决你的问题,请参考以下文章

hadoop安装配置——伪分布模式

hadoop-0.20.2伪分布式安装简记

如何在hadoop环境下运行C程序?

Hadoop 0.20.2+Ubuntu13.04配置和WordCount測试

Hadoophive环境搭建详解

从日食访问Hadoop群集