HBase 在 ./start-hbase.sh 之后不运行 - 权限被拒绝



我想运行HBase。我已经完全安装了 hadoop 并且当我运行 start-all.sh 时,它工作正常并给我以下输出:

hduser@CSLAP106:/usr/local/hadoop/bin$ jps
11956 SecondaryNameNode
12046 JobTracker
12193 TaskTracker
11800 DataNode
11656 NameNode
12254 Jps

但是当我想运行start-hbase.sh时,它给了我一些权限被拒绝的错误,我不明白为什么:

hduser@CSLAP106:/usr/local/hbase/hbase-0.94.6.1/bin$ ./start-hbase.sh
localhost: starting zookeeper, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out
localhost: /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.log: Permission denied
localhost: head: cannot open ‘/usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out’ for reading: No such file or directory
/usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-master-CSLAP106.log: Permission denied
head: cannot open ‘/usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-master-CSLAP106.out’ for reading: No such file or directory
localhost: starting regionserver, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-regionserver-CSLAP106.out
localhost: /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-regionserver-CSLAP106.log: Permission denied
localhost: head: cannot open ‘/usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-regionserver-CSLAP106.out’ for reading: No such file or directory

之后,我试着跑sudo ./start-hbase.sh,我得到了更奇怪的东西!

root@localhost's password:

我不知道我应该在这里输入什么。 无论如何,我只是单击了Enter,它再次切换回hduser

root@localhost's password: 
root@localhost's password: localhost: Permission denied, please try again.
root@localhost's password: localhost: Permission denied, please try again.
localhost: Permission denied (publickey,password).
starting master, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-root-  master-CSLAP106.out
root@localhost's password: 
root@localhost's password: localhost: Permission denied, please try again.
root@localhost's password: localhost: Permission denied, please try again.
localhost: Permission denied (publickey,password).
hduser@CSLAP106:/usr/local/hbase/hbase-0.94.6.1/bin$

我从我的hbase-env.shhbase-site.xml文件中放了一些行,以备不时之需:

hbase-env.sh

# File naming hosts on which HRegionServers will run.  $HBASE_HOME/conf/regionservers by    default.
export HBASE_REGIONSERVERS=/usr/local/hbase/hbase-0.94.6.1/conf/regionservers
# File naming hosts on which backup HMaster will run.  $HBASE_HOME/conf/backup-masters by default.
export HBASE_BACKUP_MASTERS=/usr/local/hbase/hbase-0.94.6.1/conf/backup-masters
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true

HBase-site.xml

<configuration>
<property>
        <name>hbase.rootdir</name>
    <value>hdfs://localhost:54310/hbase</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>

那么,您认为HBase无法运行有什么问题!我真的为此筋疲力尽。我已经工作了几个星期,每次它都会出现一个新错误。我非常感谢您花时间和精力来帮助我:)

你说ls -l start-hbase.sh 的输出是:

-rwxr-xr-x 1 root root 1872 huhti 4 2013 start-hbase.sh

如果您想知道正在使用哪个用户和组登录,我们有简单的方法:

touch test
ls -l test

并检查用户:组...

问题是脚本的用户所有者和组所有者。您有两种解决方案:

1) sudo chown hduser:hduser start-hbase.sh  #here hduser is example...you should know what user and group you have,,,

为了让它成为你的奴隶...具有可执行状态( sudo chmod +x start-hbase.sh

2) you can be root by: "su root" or "sudo su" or "sudo bash"

然后执行脚本...

如果在更改 start-hbase.sh 的权限后仍然遇到问题,请运行以下命令

sudo chown -R hduser:hadoop /usr/local/hbase

授予对"hbase"目录写入日志文件的权限。

我希望这对其他人有所帮助...

最新更新