HBase错误 - 分配-ROOT-失败

Nig*_*olf 13 database hadoop hbase nosql cloudera

我刚刚从cloudera(3)安装了hadoop和hbase,但是当我尝试去http:// localhost:60010时,它只是坐在那里不断加载.

我可以很好地访问regionserver - http:// localhost:60030 ...查看主hbase服务器日志我可以看到以下内容.

看起来像根区域的问题.

所有这些都安装在运行Ubuntu(Natty)11的ext4 1TB分区上.没有集群/其他盒子.

任何帮助都会很棒!

11/05/15 19:58:27 WARN master.AssignmentManager: Failed assignment of -ROOT-,,0.70236052 to serverName=localhost,60020,1305452402149, load=(requests=0, regions=0, usedHeap=24, maxHeap=995), trying to assign elsewhere instead; retry=0
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up proxy interface org.apache.hadoop.hbase.ipc.HRegionInterface to /127.0.0.1:60020 after attempts=1
    at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:355)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:957)
    at org.apache.hadoop.hbase.master.ServerManager.getServerConnection(ServerManager.java:606)
    at org.apache.hadoop.hbase.master.ServerManager.sendRegionOpen(ServerManager.java:541)
    at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:901)
    at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:730)
    at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:710)
    at org.apache.hadoop.hbase.master.AssignmentManager$TimeoutMonitor.chore(AssignmentManager.java:1605)
    at org.apache.hadoop.hbase.Chore.run(Chore.java:66)
Caused by: java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:408)
    at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328)
    at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883)
    at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:750)
    at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
    at $Proxy6.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
    at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)
    ... 8 more
11/05/15 19:58:27 WARN master.AssignmentManager: Unable to find a viable location to assign region -ROOT-,,0.70236052
Run Code Online (Sandbox Code Playgroud)

Nig*_*olf 15

解决了发现此问题的其他人的问题.主机文件(/ etc/hosts)有问题.需要删除与127.0.1.1 COMPNAME相关的条目 - 只需在此行前放置一个哈希(#),然后重新启动所有hadoop和hbase服务.

更多关于解决方案:http://blog.nemccarthy.me/?p = 110


Ric*_*ckB 5

根据@Manav:

如果您发现自己处于无法编辑/ etc/hosts的情况,则以下 > 解决方法也将起作用:

在conf/hadoop-env.sh中添加以下行:

export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)

我正在使用Ubuntu 11.10(Oneiric)和HBase 0.92.1.这些步骤修复了我的单服务器安装问题:

  1. 编辑/etc/hosts:更改与主机名关联的IP地址,以便它使用您的LAN IP而不是127.0.0.1
  2. 打开 <HBASE_DIR>/conf/hbase-env.sh
  3. 编辑HBASE_OPTS,追加-Djava.net.preferIPv4Stack=true.该行应如下所示:

    export HBASE_OPTS =" - XX:+ UseConcMarkSweepGC -Djava.net.preferIPv4Stack = true"

  4. 重启HBase