One Star

How to Configure Talend for MapR's HBase (MapR Tables) ?

I'm trying to do a simple job using an (tLibraryLoad)->tHBaseConnection->tHBaseInput->tHBase.
MapR uses its own implementation of HBase called "MapR Tables" or "M7 tables".
Here is a portion of my stack trace:
14/08/19 16:32:17 INFO mapr.TableMappingRulesFactory: Could not find MapRTableMappingRules class, assuming HBase only cluster.
14/08/19 16:32:17 INFO mapr.TableMappingRulesFactory: If you are trying to access M7 tables, add mapr-hbase jar to your classpath.
14/08/19 16:32:17 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
...
org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for /app/SubscriptionBillingPlatform/Matthew,,99999999999999 after 10 tries.
It was suggested to me to use the tLibaryLoad component to load the mapr-hbase jar and add it to my classpath. The MapRTableMappingRules class is located in the mapr-hbase jar. I did that and verified that the class path changed, but I received the same error. The reason why it is unable to find the region server is that MapR Tables/M7 Tables do not use RegionServers like Apache HBase does.
Has anyone successfully connected Talend to MapR's HBase?
2 REPLIES
Community Manager

Re: How to Configure Talend for MapR's HBase (MapR Tables) ?

Hi
What's your MapR version and Studio verison?
Best regards
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: How to Configure Talend for MapR's HBase (MapR Tables) ?

Hi
What's your MapR version and Studio verison?
Best regards
Shong

Hi Shong,
I have Talend 5.4.
The MapR version is 3.1.0..23703.GA
If I ls the /opt/mapr/hbase/hbase-0.94.13/ directory, I can see the following jar:
hbase-0.94.13-mapr-1401.jar
If I add that jar to my classpath via tLibraryLoad as well, I then receive this stacktrace:
Exception in component tHBaseInput_1
java.io.IOException: java.lang.RuntimeException: Error occurred while instantiating com.mapr.fs.MapRTableMappingRules.
==> java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap.
        at org.apache.hadoop.hbase.client.mapr.TableMappingRulesFactory.create(TableMappingRulesFactory.java:65)
        at org.apache.hadoop.hbase.client.HTable.initIfMapRTable(HTable.java:308)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:155)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:139)
        at primehome.thbasetest_0_1.tHbaseTest.tHBaseInput_1Process(tHbaseTest.java:1004)
If I add the commons-collections-3.2.1.jar from /opt/mapr/hbase/hbase-0.94.13/lib, I receive this error:
Exception in component tHBaseInput_1
java.io.IOException: java.lang.RuntimeException: Error occurred while instantiating com.mapr.fs.HTableImpl.
==> java.lang.NoClassDefFoundError: com/mapr/fs/MapRHTable.
        at org.apache.hadoop.hbase.client.mapr.GenericHFactory.handleIOException(GenericHFactory.java:62)
        at org.apache.hadoop.hbase.client.HTable.initIfMapRTable(HTable.java:317)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:155)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:139)
        at primehome.thbasetest_0_1.tHbaseTest.tHBaseInput_1Process(tHbaseTest.java:1132)