0

我是 Hadoop 和 Hbase 的新手。我在我的本地文件系统上运行 Hbase 并尝试通过 Hbase 创建一些表,但我知道 Hmaster 还没有开始。我更改了 hbase-site.xml,但似乎没有任何改进。我的 xml 中有以下条目:

<property>
    <name>hbase.rootdir</name>
    <value>file:///home/cluster/hbase</value>
</property>


<property>
    <name>hbase.master</name>
    <value>localhost:9000</value>
</property>

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

 <property>    
    <name>hbase.zookeeper.property.dataDir</name>
    <value>file:///home/cluster/zooKeeper</value>    
</property>

本地主机:127.0.0.1

例外是:

java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException: Connection refused
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:1099)
    at org.apache.hadoop.ipc.Client.call(Client.java:1075)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
    at com.sun.proxy.$Proxy11.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:379)
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:119)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:238)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:203)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1386)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1404)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:123)
    at org.apache.hadoop.hbase.util.JVMClusterUtil.startup(JVMClusterUtil.java:191)
    at org.apache.hadoop.hbase.LocalHBaseCluster.startup(LocalHBaseCluster.java:420)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:149)
    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:2044)
Caused by: java.net.ConnectException: Connection refused
4

1 回答 1

-1

我建议使用CDH之类的发行版并按照安装说明进行操作。如果您刚刚开始,这将比尝试自己设置要简单得多。

对于它的价值,我从来不需要设置hbase.master属性。您确实需要设置该hbase.rootdir属性,但这应该指向 HDFS 目录而不是本地file://URL。这可能是你的问题的原因。您还需要一个正常运行的 HDFS 集群。CDH 将非常容易地为开发者机器建立一个伪分布式环境。

作为参考,这是我hbase-site.xml使用 CDH4 的本地:

<configuration>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.support.append</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.client.read.shortcircuit</name>
    <value>true</value>
  </property>
</configuration>

从技术上讲,我相信您可以放弃dfs.support.appenddfs.client.read.shortcircuit,但它们也很有用。

同样,这是我本地core-site.xml的 HDFS:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:8020</value>
  </property>
</configuration>
于 2014-04-01T00:19:04.527 回答