Les Jobs HBase/MapR-DB ne peuvent pas être exécutés correctement avec MapR 5.1 ou 5.2
Lors de l'utilisation d'une distribution MapR 5.1 ou 5.2 avec les composants Talend HBase ou MapR-DB sur Spark, le message d'erreur suivant peut s'afficher dans le log d'exécution :
Error occurred while instantiating com.mapr.fs.hbase.MapRTableMappingRules. ==> org/apache/hadoop/hbase/client/mapr/BaseTableMappingRules. at test3.testspark_0_1.TestSpark$row12StructInputFormat_tHBaseInput_1.configure(TestSpark.java:791) ... Caused by: java.io.IOException: java.lang.RuntimeException: Error occurred while instantiating com.mapr.fs.hbase.MapRTableMappingRules. ==> org/apache/hadoop/hbase/client/mapr/BaseTableMappingRules. at org.apache.hadoop.hbase.client.mapr.TableMappingRulesFactory.create(TableMappingRulesFactory.java:68) at org.apache.hadoop.hbase.client.HTable.initIfMapRTableImpl(HTable.java:475)
L'origine de cette erreur : le classpath de HBase n'est pas présent dans le paramètre spark.hadoop.yarn.application.classpath que le Job Spark Talend utilise par défaut.
Environnement :
Solution Talend avec Big Data nécessitant une souscription
Job Spark exécuté en mode YARN
Job Spark exécuté avec les composants HBase ou MapR-DB (les composants MapR-DB sur Spark sont uniquement disponibles dans les versions 6.3.1 et supérieures du Studio Talend)
Distribution MapR Hadoop 5.1 ou 5.2
Ajout d'un classpath HBase
Vous devez ajouter un classpath HBase associé au paramètre spark.hadoop.yarn.application.classpath.
Ce paramètre est toujours écrasé par son équivalent configuré par défaut issu d'un Job Spark Talend. Afin que le Job prenne votre mise à jour en compte, vous devez mettre à jour le paramètre directement dans l'onglet Spark configuration du Job mais pas dans votre cluster.
Cette procédure explique comment ajouter un unique classpath HBase à un Job Spark, elle ne présente pas d'autres configurations requises par ce Job.