Les Jobs HBase/MapR-DB ne peuvent pas être exécutés correctement avec MapR 5.1 ou 5.2

EnrichVersion
6.4
EnrichProdName
Talend Real-Time Big Data Platform
Talend Data Fabric
Talend Big Data Platform
Talend Big Data
task
Qualité et préparation de données > Systèmes tiers > Composants Database > Composants MapRDB
Création et développement > Systèmes tiers > Composants Database > Composants MapRDB
Gouvernance de données > Systèmes tiers > Composants Database > Composants HBase
Gouvernance de données > Systèmes tiers > Composants Database > Composants MapRDB
Qualité et préparation de données > Systèmes tiers > Composants Database > Composants HBase
Création et développement > Systèmes tiers > Composants Database > Composants HBase
EnrichPlatform
Studio Talend

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 Talend Spark utilise par défaut.

Environnement :

  • Solution Talend nécessitant souscription avec Big Data

  • 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 Talend Spark. 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.

Procédure

  1. Dans la vue Run du Job, cliquez sur l'onglet Spark configuration.
  2. Dans la table Advanced properties, dans la colonne Property, entre guillemets doubles, ajoutez spark.hadoop.yarn.application.classpath.
  3. Copiez tous les chemins définis avec le paramètre spark.hadoop.yarn.application.classpath dans votre cluster. Collez-les dans la colonne Value.
  4. Ajoutez le classpath de votre HBase dans ces chemins d'accès, en séparant chaque chemin d'accès par une virgule.

    Par exemple, si la version de HBase installée dans le cluster est 1.1.1, ajoutez opt/mapr/hbase/hbase-1.1.1/lib/*,/opt/mapr/lib/*. Ces exemples sont des chemins où HBase est généralement installée dans votre cluster MapR. Si votre HBase est installé autre part, contactez l'administrateur de votre cluster pour plus de détails et pour adapter ces chemins d'accès.