2

Problem Introduction

I am using AWS EMR 5.29 version that uses HBase 1.4.10 version. I am trying to connect Geomesa with the HBase read-only cluster. While connecting to the EMR cluster via AWS ECS service (using HBase Java client code), I am getting below error:

`Caused by: org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop.hbase.NotServingRegionException: Region hbase:meta,,1 is not online on ip-10-0-xx-xxx.ec2.internal,16020,1585249817xxx

The above exception is getting thrown from here. Its clear that I am able to connect to zookeeper but it is failing due to hbase:meta table. `

Note

I am able to connect the Read-Write cluster successfully. The issue is only with Read-Only Cluster.Hbase and Geomesa shell are working fine. I am able to get data via the shell. The issue is only with HBase or Geomesa Java client.

Potential Issue

HBase on EMR (backed by S3), uses metadata table name as 'hbase:meta_' e.g. hbase:meta_j-1ExxxHC16Oxxx for the read-only cluster. The code over here uses hbase:meta as constant. I think a change is required over here to read it from the configuration.

Request

Did anyone face this issue? Is there anyway to overcome this issue? Is there any configuration which can help with this?

I already tried setting up hbase.meta.table.suffix as clusterId but it didn't work.

Community
  • 1
  • 1
Amit
  • 59
  • 6

1 Answers1

0

Read-only clusters are an AWS specific feature. In order to add this functionality Amazon has custom code in their HBase jars. The hbase-server-1.4.10.jar you have on your EMR cluster is not the same as the hbase-server-1.4.10.jar you would get from Apache. This means that in order to get the client side code to support this function, you need to use the AWS jars everywhere. You can download the jars directly off a running EMR HBase cluster or you might be able to use the Amazon maven repos by specifying this first in your <repositories> section:

<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>