amazon web服务—由s3支持的emr hbase读取副本无法通过java api连接

c6ubokkw  于 2021-06-07  发布在  Hbase
关注(0)|答案(1)|浏览(501)

问题介绍

我使用的是aws emr 5.29版本,使用的是hbase 1.4.10版本。我正在尝试将geomesa与hbase只读群集连接。在通过aws ecs服务(使用hbase java客户端代码)连接到emr群集时,出现以下错误:
原因:org.apache.hadoop.hbase.notservingregionexception:org.apache.hadoop.hbase.notservingregionexception:regionhbase:meta,,1在ip-10-0-xx-上未联机。ec2。内部,160201585249817 上面的异常是从这里抛出的。很明显,我可以连接到Zookeeper,但它是失败的,因为hbase:meta table.

注意

我能够成功连接读写群集。此问题仅适用于只读群集。hbase和geomesa shell工作正常。我可以通过shell获取数据。此问题仅适用于hbase或geomesa java客户端。

潜在问题

emr上的hbase(由s3支持)将元数据表名用作hbase:meta_“例如。hbase:meta_j-1ehc16o 对于只读群集。这里的代码使用hbase:meta as 不变。我想这里需要修改一下才能从配置中读取。

请求

有人面对过这个问题吗?有没有办法克服这个问题?是否有任何配置可以帮助这一点?
我已经试过了 hbase.meta.table.suffix 作为集群,但它不起作用。

dpiehjr4

dpiehjr41#

只读集群是aws特有的特性。为了添加此功能,amazon在hbase jar中有自定义代码。emr集群上的hbase-server-1.4.10.jar与apache上的hbase-server-1.4.10.jar不同。这意味着为了让客户端代码支持这个函数,您需要在任何地方使用aws jar。您可以直接从正在运行的emr hbase集群下载jar,或者您也可以通过在您的集群中首先指定这个来使用amazonmaven repos <repositories> 章节:

<repository>
    <id>emr-${aws-emr.version}-artifacts</id>
    <name>EMR ${aws-emr.version} Releases Repository</name>
    <releases>
        <enabled>true</enabled>
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
    <url>https://s3.us-west-1.amazonaws.com/us-west-1-emr-artifacts/emr-${aws-emr.version}/repos/maven/</url>
</repository>

相关问题