Configuration d'Apache Hue pour utiliser différents composants Hadoop

  1. Dans l'interface utilisateur Hue, créez un administrateur avec le mot de passe utilisé lors de la création d'un cluster.
  2. Accédez à Administrer les utilisateurs et procédez comme suit :
    1. Sélectionnez l'utilisateur Hue.
    2. Mettez à jour le mot de passe.
    3. Rendez l'utilisateur autorisé à se connecter en tant qu'utilisateur Hue pour les connexions suivantes.
    Vous pouvez créer plus d'utilisateurs, en fonction de vos besoins.
    Remarque

    Pour les clusters sécurisés, assurez-vous de cocher la case de création d'un répertoire de bases et de créer l'utilisateur dans le noeud utilitaire à l'aide de la commande sudo useradd <new_user> afin de gérer les stratégies d'accès à l'aide d'un Ranger.
  3. Pour exécuter les applications DistCp et MapReduce, ajoutez la bibliothèque MapReduce à la classpath YARN. Pour ajouter la bibliothèque, procédez comme suit :
    1. Dans l'interface utilisateur Ambari, sous YARN, sélectionnez Configurations.
    2. Recherchez yarn.application.classpath.
    3. Copiez la configuration suivante et collez-la pour la valeur 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. Configurez Sqoop. Pour effectuer la configuration, procédez comme suit :
    1. Copiez mysql-connector vers la variable d'environnement 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 via Ambari.
    3. Les travaux Sqoop sont exécutés à partir des noeuds de salarié.

      Dans les clusters Big Data Service avec la version 3.0.7 ou ultérieure, l'accès à l'utilisateur mysql hue est disponible à partir de tous les noeuds de processus actif.

      Pour les clusters avec des versions antérieures, exécutez les instructions d'octroi comme décrit à l'étape 2 des sections concernant les clusters sécurisés et non sécurisés dans Configuration d'Apache Hue. Lors de l'exécution des commandes, remplacez l'hôte local par le nom d'hôte de processus actif et répétez cette opération pour chaque noeud de processus actif du cluster. 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. Sur le noeud maître ou utilitaire, dans le répertoire suivant, utilisez les fichiers JAR lié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 décompte de mots. Assemblez le code dans le fichier JAR :

    Exemple de code de décompte de mots

    Sur l'interface Hue Spark, utilisez les fichiers JAR appropriés pour exécuter le travail Spark.

  6. Pour exécuter MapReduce via Oozie, procédez comme suit :
    1. Copiez oozie-sharelib-oozie-5.2.0.jar (contient la classe OozieActionConfigurator) dans votre exemple de code.
    2. Définissez les classes de correspondance et de réduction comme dans n'importe quel exemple standard de nombre de mots MapReduce.
    3. Créez une autre classe comme indiqué ici :

      Exemple MapReduce

      Packagez le code comme dans l'image précédente, ainsi que les classes de correspondance et de réduction dans un fichier JAR, et procédez comme suit :
      1. Téléchargez-le vers HDFS via le 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 qualifié complet dans le fragment de code, comme le montre l'image précédente.

        Navigateur de fichiers Hue

  7. Configurez HBase.

    Dans les clusters Big Data Service avec la 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 affichant le champ à bascule du module Hue HBase.

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

    1. Une fois le service HBase ajouté sur la page Ambari, accédez à Custom Hbase-Site.xml (dans HBase, accédez à Configurations et, sous Avancé, sélectionnez Custom Hbase-Site.xml).
    2. Ajoutez les paramètres suivants en remplaçant le fichier keytab ou le 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 maîtres :
      
      # 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 de l'utilitaire sur lequel Hue est installé.
    5. Ouvrez le fichier sudo vim /etc/hue//conf/pseudo-distributed.ini et enlevez 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 un cluster sécurisé, vous devez avoir accès au service HBase à partir de Ranger.
  8. Configurez le workflow d'action de script :
    1. Connectez-vous à Hue.
    2. Créez un fichier script et téléchargez-le vers Hue.
    3. Connectez-vous à Hue, puis dans le menu de navigation le plus à gauche, sélectionnez Planificateur.
    4. Workflow, puis sélectionnez Mon workflow pour créer un workflow.
    5. Sélectionnez l'icône de shell pour faire glisser l'action de script vers la zone Drop your action here (Déposer votre action ici).
    6. Sélectionnez le script dans la liste déroulante Commande Shell.
    7. Sélectionnez le workflow dans la liste déroulante FILES.
    8. Cliquez sur l'icône d'enregistrement.
    9. Sélectionnez le workflow dans la structure de dossiers, puis cliquez sur l'icône de soumission.
      Remarque

      Lors de l'exécution d'une action shell dans un workflow Hue, si le travail est bloqué 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 associés) sont disponibles à l'emplacement spécifié tel que mentionné dans le workflow, avec les autorisations requises pour l'utilisateur d'exécution du workflow (merci à l'utilisateur connecté).
      2. Parfois, comme spark-submit, si vous soumettez un travail Spark sans utilisateur spécifique, le travail s'exécute par défaut avec le propriétaire du processus de conteneur (yarn), dans ce cas, assurez-vous que l'utilisateur yarn dispose de tous les droits d'accès requis pour exécuter le travail.

        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 disposer des autorisations requises pour inclure
        spark-examples_2.12-3.2.1.jar
        dans le travail Spark.
      3. Si vous soumettez un travail Spark avec un utilisateur spécifique (--proxy-user spark), assurez-vous que l'utilisateur Yarn peut usurper l'identité de cet utilisateur spécifié. Si l'utilisateur Yarn ne peut pas se faire passer pour 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, le travail est exécuté avec l'utilisateur Spark. L'utilisateur Spark doit avoir accès à tous les fichiers associés (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 emploie d'autres utilisateurs.

        1. Accédez à Apache Ambari.
        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 Site principal personnalisé.
          • hadoop.proxyuser.yarn.groups = *
          • hadoop.proxyuser.yarn.hosts = *
        4. Sélectionnez Enregistrer et redémarrez tous les services requis.
  9. Exécutez le workflow Hive à partir d'Oozie.
    1. Connectez-vous à Hue.
    2. Créez un fichier script et téléchargez-le vers Hue.
    3. Connectez-vous à Hue, puis dans le menu de navigation le plus à gauche, sélectionnez Planificateur.
    4. Workflow.
    5. Faites glisser la troisième icône de HiveServer2 vers la zone Déposer votre action ici.
    6. Pour sélectionner le script de requête Hive dans HDFS, sélectionnez le menu Script. Le script de requête est stocké dans un chemin HDFS accessible à l'utilisateur connecté.
    7. Pour enregistrer le workflow, sélectionnez l'icône Enregistrer.
    8. l'icône d'exécution.