Configuration d'Apache Hue pour l'utilisation des différents composants de Hadoop

  1. Dans l'interface utilisateur de Hue, créez un utilisateur administrateur avec le mot de passe que vous avez utilisé lors de la création d'une grappe.
  2. Naviguez jusqu'à Administer users (Administrer les utilisateurs) et effectuez les opérations suivantes :
    1. Sélectionnez l'utilisateur Hue.
    2. Mettez à jour le mot de passe.
    3. Rendre l'utilisateur autorisé à se connecter en tant qu'utilisateur Hue pour les connexions suivantes.
    Vous pouvez créer plus d'utilisateurs selon vos besoins.
    Note

    Pour les grappes sécurisées, cochez la case Créer un répertoire de base et créez l'utilisateur dans le noeud d'utilitaire à l'aide de la commande sudo useradd <new_user> pour gérer les politiques d'accès à l'aide de Ranger.
  3. Pour exécuter les applications DistCp et MapReduce, ajoutez la bibliothèque MapReduce à la variable classpath YARN. Pour ajouter la bibliothèque, procédez de la façon suivante :
    1. Dans l'interface utilisateur Ambari, sous YARN, sélectionnez Configs.
    2. Recherchez yarn.application.classpath.
    3. Copiez la configuration suivante et collez-la en tant que valeur de yarn.application.classpath :
      $HADOOP_CONF_DIR,/usr/lib/hadoop-mapreduce/*,/usr/lib/hadoop/*,/usr/lib/hadoop/lib/*,/usr/lib/hadoop-hdfs/*,/usr/lib/hadoop-hdfs/lib/*,/usr/lib/hadoop-yarn/*,/usr/lib/hadoop-yarn/lib/*
    4. Enregistrez et redémarrez les services YARN, Oozie et MapReduce.
  4. Configuration de Sqoop. Pour effectuer la configuration, procédez de la façon suivante :
    1. Copiez mysql-connector dans la variable classpath oozie.
      sudo cp /usr/lib/oozie/embedded-oozie-server/webapp/WEB-INF/lib/mysql-connector-java.jar /usr/lib/oozie/share/lib/sqoop/
      sudo su oozie -c "hdfs dfs -put /usr/lib/oozie/share/lib/sqoop/mysql-connector-java.jar /user/oozie/share/lib/sqoop"
    2. Redémarrez le service Oozie au moyen d'Ambari.
    3. Les tâches Sqoop sont exécutées à partir des noeuds de travail.

      Dans les grappes du service de mégadonnées version 3.0.7 ou ultérieure, l'accès à l'utilisateur mysql hue est disponible à partir de tous les noeuds de travail.

      Pour les grappes de version antérieure, exécutez les énoncés d'autorisation décrits à l'étape 2 des sections consacrées aux grappe sécurisée et non sécurisée de la rubrique Configuration d'Apache Hue. Lors de l'exécution des commandes, remplacez l'hôte local par le nom d'hôte du noeud de travail et répétez cette opération pour chaque noeud de travail de la grappe. Par exemple :

      grant all privileges on *.* to 'hue'@'wn_host_name ';
      grant all on hue.* to 'hue'@'wn_host_name';
      alter user 'hue'@'wn_host_name' identified by 'secretpassword';
      flush privileges;
  5. Dans le noeud principal ou d'utilitaire, à partir du répertoire suivant, utilisez les fichiers JAR associés à spark et ajoutez-les en tant que dépendances à votre projet spark. Par exemple, copiez les fichiers JAR spark-core et spark-sql dans lib/ pour le projet sbt.
    /usr/lib/oozie/share/lib/spark/spark-sql_2.12-3.0.2.odh.1.0.ce4f70b73b6.jar
    
    
    /usr/lib/oozie/share/lib/spark/spark-core_2.12-3.0.2.odh.1.0.ce4f70b73b6.jar

    Voici un exemple de code de nombre de mots. Assemblez le code au format JAR :

    Exemple de code de comptage de mots

    Dans l'interface Spark Hue, utilisez les fichiers JAR appropriés pour exécuter la tâche Spark.

  6. Pour exécuter MapReduce au moyen d'Oozie, procédez de la façon suivante :
    1. Copiez oozie-sharelib-oozie-5.2.0.jar (contient la classe OozieActionConfigurator) dans votre exemple de code.
    2. Définissez les classes de mapper et de réducteur comme indiqué dans n'importe quel exemple de comptage de mots standard MapReduce.
    3. Créez une autre classe comme illustré ici :

      Exemple MapReduce

      Encapsulez le code comme indiqué dans l'image précédente avec les classes mapper et reducer dans un fichier JAR et effectuez les opérations suivantes :
      1. Chargez-le dans HDFS à l'aide du navigateur de fichiers Hue.
      2. Indiquez ce qui suit pour exécuter le programme MapReduce, où oozie.action.config.class pointe vers le nom de classe complet dans l'extrait de code, comme indiqué dans l'image précédente.

        Navigateur de fichiers Hue

  7. Configurez HBase.

    Dans les grappes du service de mégadonnées version 3.0.7 ou ultérieure, vous devez activer le module Hue HBase à l'aide d'Apache Ambari. Capture d'écran d'Apache Ambari montrant le champ d'activation/désactivation du module Hue HBase.

    Hue interagit avec le serveur Thrift de HBase. Par conséquent, pour accéder à HBase, vous devez démarrer le serveur Thrift. Effectuez les étapes suivantes :

    1. Après avoir ajouté le service HBase dans la page Ambari, naviguez jusqu'à Hbase-Site.xml (à partir de HBase, allez à Configuration et, sous Avancé, sélectionnez Hbase-Site.xml
    2. Ajoutez les paramètres suivants en remplaçant le fichier keytab ou principal.
      hbase.thrift.support.proxyuser=true
      hbase.regionserver.thrift.http=true
      ##Skip the below configs if this is a non-secure cluster
      hbase.thrift.security.qop=auth
      hbase.thrift.keytab.file=/etc/security/keytabs/hbase.service.keytab
      hbase.thrift.kerberos.principal=hbase/_HOST@BDSCLOUDSERVICE.ORACLE.COM
      hbase.security.authentication.spnego.kerberos.keytab=/etc/security/keytabs/spnego.service.keytab
      hbase.security.authentication.spnego.kerberos.principal=HTTP/_HOST@BDSCLOUDSERVICE.ORACLE.COM
    3. Exécutez les commandes suivantes sur le terminal des noeuds principaux :
      
      # sudo su hbase
      //skip kinit command if this is a non-secure cluster
      # kinit -kt /etc/security/keytabs/hbase.service.keytab  hbase/<master_node_host>@BDSCLOUDSERVICE.ORACLE.COM
      # hbase thrift start
    4. Connectez-vous au noeud d'utilitaire où Hue est installé.
    5. Ouvrez le fichier sudo vim /etc/hue//conf/pseudo-distributed.ini et supprimez hbase de app_blacklist.
      # Comma separated list of apps to not load at startup.
      # e.g.: pig, zookeeper
      app_blacklist=search, security, impala, hbase, pig
    6. Redémarrez Hue depuis Ambari.
    7. Ranger régit l'accès au service HBase. Par conséquent, pour utiliser Hue et accéder aux tables HBase sur une grappe sécurisée, vous devez avoir accès au service HBase à partir de Ranger.
  8. Configurez le flux de travail d'action de script :
    1. Connectez-vous à Hue.
    2. Créez un fichier de script et chargez-le dans Hue.
    3. Connectez-vous à Hue, puis dans le menu de navigation le plus à gauche, sélectionnez Programmateur.
    4. Flux de travail, puis sélectionnez Mon flux de travail pour créer un flux de travail.
    5. Sélectionnez l'icône d'interpréteur de commandes pour faire glisser l'action de script vers la zone Supprimer votre action ici.
    6. Sélectionnez le script dans la liste déroulante Commande Shell.
    7. Sélectionnez le flux de travail dans la liste déroulante FILES.
    8. Sélectionnez l'icône d'enregistrement.
    9. Sélectionnez le flux de travail dans la structure de dossiers, puis sélectionnez l'icône Soumettre.
      Note

      Lors de l'exécution d'une action d'interpréteur de commandes dans un flux de travail Hue, si la tâche est bloquée ou échoue en raison d'erreurs telles que Permission Denied or Exit code[1], suivez les instructions suivantes pour résoudre le problème.
      1. Assurez-vous que tous les fichiers requis (fichier de script et autres fichiers connexes) sont disponibles à l'emplacement spécifié, comme indiqué dans le flux de travail, avec les autorisations requises pour l'utilisateur d'exécution du flux de travail (utilisateur connecté à Hue).
      2. Parfois, par exemple spark-submit, si vous soumettez une tâche Spark sans utilisateur spécifique, la tâche s'exécute par défaut avec le responsable du processus de conteneur (yarn), dans ce cas, assurez-vous que l'utilisateur yarn dispose de toutes les autorisations requises pour exécuter la tâche.

        Exemple :

        // cat spark.sh
        /usr/odh/current/spark3-client/bin/spark-submit --master yarn --deploy-mode client  --queue default --class org.apache.spark.examples.SparkPi spark-examples_2.12-3.2.1.jar 
        
        // Application throws exception if yarn user doesn't have read permission to access spark-examples_2.12-3.2.1.jar.
        
        org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=yarn, access=READ, inode="/workflow/lib/spark-examples_2.12-3.2.1.jar":hue:hdfs:---------x 
        Dans ce cas, le fil utilisateur doit avoir les autorisations requises pour inclure
        spark-examples_2.12-3.2.1.jar
        dans la tâche Spark.
      3. Si vous soumettez une tâche Spark avec un utilisateur spécifique (--proxy-user spark), assurez-vous que l'utilisateur Yarn peut emprunter l'identité de cet utilisateur spécifié. Si l'utilisateur Yarn ne peut pas emprunter l'identité de l'utilisateur spécifié et reçoit des erreurs telles que (User: Yarn is not allowed to impersonate Spark), ajoutez les configurations suivantes.
        // cat spark.sh
        /usr/odh/current/spark3-client/bin/spark-submit --master yarn --proxy-user spark --deploy-mode client  --queue default --class 
        org.apache.spark.examples.SparkPi spark-examples_2.12-3.2.1.jar 

        Dans ce cas, la tâche est exécutée à l'aide de l'utilisateur Spark. L'utilisateur Spark doit avoir accès à tous les fichiers connexes (spark-examples_2.12-3.2.1.jar). Assurez-vous également que l'utilisateur Yarn peut emprunter l'identité de l'utilisateur Spark. Ajoutez les configurations suivantes pour que l'utilisateur de fil se fasse passer pour d'autres utilisateurs.

        1. Apache Ambari Accédez.
        2. Dans la barre d'outils latérale, sous Services, sélectionnez HDFS.
        3. Sélectionnez l'onglet Avancé et ajoutez les paramètres suivants sous Cœur-site personnalisé.
          • hadoop.proxyuser.yarn.groups = *
          • hadoop.proxyuser.yarn.hosts = *
        4. Sélectionnez Enregistrer et redémarrez tous les services requis.
  9. Exécutez le flux de travail Hive à partir d'Oozie.
    1. Connectez-vous à Hue.
    2. Créez un fichier de script et chargez-le dans Hue.
    3. Connectez-vous à Hue, puis dans le menu de navigation le plus à gauche, sélectionnez Programmateur.
    4. Flux de travail.
    5. Faites glisser la troisième icône de HiveServer2 vers la zone Déposer votre action ici.
    6. Pour sélectionner le script d'interrogation Hive dans HDFS, sélectionnez le menu de script. Le script d'interrogation est stocké dans un chemin HDFS accessible à l'utilisateur connecté.
    7. Pour enregistrer le flux de travail, sélectionnez l'icône d'enregistrement.
    8. l'icône Run.