【问题标题】:HBase Cluster on Amazon EMR, Client Error: NoServerForRegionExceptionAmazon EMR 上的 HBase 集群,客户端错误:NoServerForRegionException
【发布时间】:2013-06-14 23:40:15
【问题描述】:

我正在尝试在 Amazon EMR 上设置测试集群。有一个主节点和两个从节点,端口打开 60000-65535 和主节点 2181。

hbase hbck

Version: 0.92.0

Number of Tables: 2
Number of live region servers: 2
Number of dead region servers: 0
Master: 10.33.204.***,60000,1371570170893
Number of backup masters: 0
Number of empty REGIONINFO_QUALIFIER rows in .META.: 0
Summary:
  -ROOT- is okay.
  Number of regions: 1
    Deployed on:  ip-10-33-188-***.eu-west-1.compute.internal,60020,1371570165684
  .META. is okay.
    Number of regions: 1
    Deployed on:  ip-10-33-159-***.eu-west-1.compute.internal,60020,1371570171430
  firstTS is okay.
    Number of regions: 1
    Deployed on:  ip-10-33-159-***.eu-west-1.compute.internal,60020,1371570171430
  sensorValues is okay.
    Number of regions: 1
    Deployed on:  ip-10-33-159-***.eu-west-1.compute.internal,60020,1371570171430

所以 Region Server 已经启动并运行,我的客户端可以连接到 Master 节点上的 Zookeeper 实例:

conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "ec2-54-******.eu-west-1.compute.amazonaws.com");

但执行HTableInterface table = pool.getTable("sensorValues");后抛出错误

org.apache.hadoop.hbase.client.NoServerForRegionException: 尝试 10 次后无法找到 sensorValues 的区域,,,99999999999999。

我在 HBase Master WebUI 提供的日志中找不到任何有用的信息。

我使用了hbase-site.xml,因为它是在 Amazon EMR 中生成的:

  <configuration>
    <property><name>fs.hdfs.impl</name><value>emr.hbase.fs.BlockableFileSystem</value></property>
    <property><name>hbase.regionserver.handler.count</name><value>100</value></property>
    <property><name>hbase.zookeeper.quorum</name><value>ip-10-33-204-***.eu-west-1.compute.internal</value></property>
    <property><name>hbase.rootdir</name><value>hdfs://10.33.204.***:9000/hbase</value></property>
    <property><name>hbase.cluster.distributed</name><value>true</value></property>
    <property><name>hbase.tmp.dir</name><value>/mnt/var/lib/hbase/tmp-data</value></property>
  </configuration>

这个问题是否与区域服务器绑定到内部私有 DNS 域有关?我该如何解决这个问题?

更新:使用完全相同的设置再次尝试后,我没有收到错误消息。区域服务器需要具有可从客户端访问的域名。所以我也将我的应用程序移到了 Amazon Cloud 中,可以通过私有 DNS 访问区域服务器。

【问题讨论】:

    标签: amazon-ec2 hbase apache-zookeeper amazon-emr


    【解决方案1】:

    再次尝试完全相同的设置后,我没有收到错误消息。区域服务器需要具有可从客户端访问的域名。因此,我也将我的应用程序移到了 Amazon Cloud 中,可以通过私有 DNS 访问区域服务器。

    【讨论】:

      【解决方案2】:

      在您的客户端中添加此属性,看看它是否有效:

      conf.set("hbase.zookeeper.property.clientPort","2181");
      

      【讨论】:

      • 就像我说的,客户端可以很好地连接到 Zookeeper。 (说明他已经知道默认端口了)org.apache.zookeeper.ClientCnxn - Session establishment complete on server ec2-54-216-***.eu-west-1.compute.amazonaws.com/54.216.***:2181, sessionid = 0x13f576be525009f, negotiated timeout = 180000
      • 你能告诉我具体是哪一个吗?因为我不想为不工作的集群付费,所以我明天设置下一个集群,那么我可以提供详细的日志。
      • 没有问题。我需要 ZK 和 HMaster 日志文件。
      猜你喜欢
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2016-04-19
      相关资源
      最近更新 更多