linux - 如果我希望我的新 hbase 安装使用 HDFS 来存储数据,我可以使用 hdfs ://localhost:54310 as the hbase. rootdir 吗?

标签 linux apache hadoop installation hbase

我的 hadoop-1.2.1 在 Linux Mint 上正常工作。

我想添加 Apache HBase 0.94。

我只有一台机器处于伪分布式模式。

我当前的 hbase-site.xml 如下所示:

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:54310</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/home/user/hbase/zookeeper</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>localhost</value>
        </property>
        <property>
                <name>hbase.zookeeper.property.clientPort</name>
                <value>2181</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
</configuration>

我尝试使用 start-hbase.sh 启动,但没有成功,因为 HBASE shell 找不到 Zookeeper。

接下来我尝试单独启动zookeeper

./hbase-daemon.sh start zookeeper

我等到日志显示zookeeper已正确启动,然后我尝试启动master

./hbase-daemon.sh start master

但主站的日志显示:

2013-12-23 11:23:45,028 ERROR org.apache.hadoop.hbase.master.HMasterCommandLine: Failed to start master
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster
        at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2106)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:152)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:104)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76)
        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2120)
Caused by: java.net.BindException: Cannot assign requested address

最佳答案

分布式 Apache HBase 安装依赖于正在运行的 ZooKeeper 集群。它将作为 HBase 启动/停止过程的一部分启动和停止 ZooKeeper 整体。您还可以独立于 HBase 管理 ZooKeeper 整体,只需将 HBase 指向它应该使用的集群即可。

要切换 ZooKeeper 的 HBase 管理,请使用 conf/hbase-env.sh 中的 HBASE_MANAGES_ZK 变量。该变量默认为 true,告诉 HBase 是否在 HBase 启动/停止过程中启动/停止 ZooKeeper ensemble 服务器。

您可以阅读此link并了解 HBASE 的 Zookeeper 配置。 在您的情况下,您手动启动了zookeeper,然后HBASE也尝试启动自己的zookeeper。这就是为什么无法分配请求的地址 eroor正在到来。

关于linux - 如果我希望我的新 hbase 安装使用 HDFS 来存储数据,我可以使用 hdfs ://localhost:54310 as the hbase. rootdir 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736625/

相关文章:

linux - scp 失败 : Unauthorized access is prohibited

mysql - 如何设置MySQL?

c++ - 加载共享库 : libQt5Multimedia. so.5 时出错:无法打开共享对象文件:没有这样的文件或目录

php - .htaccess mod_rewrite 错误

hadoop - ORC 架构演变

hadoop - ${wf :id()} meaning in HUE? 是什么

linux - 将多个参数传递给 bash

apache - 限制下载连接 Apache

java - JMeter HTTP 请求中的传输编码 header 已存在错误

java - 失败 : IllegalArgumentException java.net.URISyntaxException:绝对 URI 中的相对路径: