最近在在自己的机器上搭建Hadoop伪分布式集群,用到了HBase
然后遇到了一个非常诡异的问题
直接运行Hadoop不需要sudo
./start-dfs.sh
运行HBase却需要sudo, 否则提示没有权限
sudo ./start-hbase.sh
会报如下的错
hadoop@joes:/opt/hbase/hbase-1.2.5/bin$ ./start-hbase.sh
localhost: starting zookeeper, logging to /opt/hbase/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-joes.out
localhost: /opt/hbase/hbase-1.2.5/bin/hbase-daemon.sh: 行 189: /opt/hbase/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-joes.out: 权限不够
localhost: head: 无法打开'/opt/hbase/hbase-1.2.5/bin/../logs/hbase-hadoop-zookeeper-joes.out' 读取数据: 没有那个文件或目录
starting master, logging to /opt/hbase/hbase-1.2.5/logs/hbase-hadoop-master-joes.out
/opt/hbase/hbase-1.2.5/bin/hbase-daemon.sh: 行 189: /opt/hbase/hbase-1.2.5/logs/hbase-hadoop-master-joes.out: 权限不够
head: 无法打开'/opt/hbase/hbase-1.2.5/logs/hbase-hadoop-master-joes.out' 读取数据: 没有那个文件或目录
starting regionserver, logging to /opt/hbase/hbase-1.2.5/logs/hbase-hadoop-1-regionserver-joes.out
/opt/hbase/hbase-1.2.5/bin/hbase-daemon.sh: 行 189: /opt/hbase/hbase-1.2.5/logs/hbase-hadoop-1-regionserver-joes.out: 权限不够
head: 无法打开'/opt/hbase/hbase-1.2.5/logs/hbase-hadoop-1-regionserver-joes.out' 读取数据: 没有那个文件或目录
后来才发现原来是因为hbase目录的owner是root,改成自己当前的用户就好了
sudo chown -R hadoop:root ./hbase