Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

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?
Labels (3)
2 Replies
Anonymous
Not applicable
Author

Hi
What's your MapR version and Studio verison?
Best regards
Shong
Anonymous
Not applicable
Author

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)