【问题标题】:Unable to start-hbase.sh (throws error)无法启动-hbase.sh(抛出错误)
【发布时间】:2020-06-18 05:29:24
【问题描述】:

当我start-hbase.sh 时,我收到以下错误

localhost: starting zookeeper, logging to /usr/lib/HBase/bin/../logs/hbase-hduser-zookeeper-nkhl.out
localhost: java.io.FileNotFoundException: /home/hduser/zookeeperpropertydataDir/myid (Permission denied)
localhost:  at java.io.FileOutputStream.open0(Native Method)
localhost:  at java.io.FileOutputStream.open(FileOutputStream.java:270)
localhost:  at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
localhost:  at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
localhost:  at java.io.PrintWriter.<init>(PrintWriter.java:263)
localhost:  at org.apache.hadoop.hbase.zookeeper.HQuorumPeer.writeMyID(HQuorumPeer.java:162)
localhost:  at org.apache.hadoop.hbase.zookeeper.HQuorumPeer.main(HQuorumPeer.java:70)
starting master, logging to /usr/lib/HBase/logs/hbase-hduser-master-nkhl.out
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
regionserver running as process 25123. Stop it first.

之后,当我执行hbase shell 时,它确实打开了,但是当我执行list 时,它会抛出此错误:

ERROR: Can't get master address from ZooKeeper; znode data == null

    Here is some help for this command:
    List all tables in hbase. Optional regular expression parameter could
    be used to filter the output. Examples:

      hbase> list
      hbase> list 'abc.*'
      hbase> list 'ns:abc.*'
      hbase> list 'ns:.*'

这是jps

25123 HRegionServer
23975 SecondaryNameNode
23767 DataNode
24168 ResourceManager
26456 HMaster
26665 Jps
24297 NodeManager
23613 NameNode

Zookeeper 启动良好:

ZooKeeper JMX enabled by default Using config:
/usr/lib/zookeeper/conf/zoo.cfg Starting zookeeper ... STARTED

我的 hbase-site.xml 配置:

<configuration>

    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://localhost:54433/hbase</value>
    </property>

    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>localhost</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>

    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/hduser/zookeeperpropertydataDir</value>
    </property>

    <property >
        <name>hbase.master.port</name>
            <value>60010</value>
    </property>

    <property>
            <name>hbase.zookeeper.property.clientPort</name>
            <value>2181</value>
            <description> The port at which the clients will connect.</description>
        </property>


</configuration>

这是我的hbase-env.sh 配置:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers
export HBASE_MANAGES_ZK=true

我们将不胜感激。

【问题讨论】:

    标签: hadoop hbase apache-zookeeper


    【解决方案1】:

    Hbase zookeeper 守护进程HQuorumPeer 未运行。原因之一可能是 dir 不存在,如日志中所示:-

    <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/home/hduser/zookeeperpropertydataDir</value>
        </property>
    

    【讨论】:

    • HQuorumPeer 没有运行是对的。但请放心,该目录确实存在。我已经创建了它。你还能想到什么?
    • 如果它意味着什么,它也有这些文件:myidzookeeper_server.pid 这个目录:version-2
    • 没人回答吗?
    • 另外,HBase之前需要安装Zookeeper吗?
    • 还是什么都没有?有人吗?
    【解决方案2】:

    确保 ZooKeeper 正在使用的文件已创建并具有正确的权限。 使用 chmod 授予所有用户访问权限。这解决了我的问题。

    chmod -R 777 path/file_name
    
    <property>
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/home/hduser /zookeeperpropertydataDir</value>
    </property>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 2016-12-23
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      相关资源
      最近更新 更多