Configuración de Apache Hue para utilizar diferentes componentes de Hadoop
- En la interfaz de usuario de Hue, cree un usuario administrador con la contraseña que utilizó al Crear un cluster.
-
Vaya a Administer users y haga lo siguiente:
- Seleccione el usuario de Hue.
- Actualice la contraseña.
- Haga que el usuario pueda conectarse como usuario de Hue para conexiones posteriores.
Nota
Para clusters seguros, asegúrese de seleccionar la casilla de control de Crear directorio de inicio y cree el usuario en la utilidad mediante el comandosudo useradd <new_user>
para gestionar las políticas de acceso mediante el ranger. -
Para ejecutar las aplicaciones DistCp y MapReduce, agregue la biblioteca MapReduce a la ruta de clase de YARN. Para agregar la biblioteca, siga estos pasos:
- En la interfaz de usuario de Ambari, en YARN, seleccione Configs.
- Busque
yarn.application.classpath
. - Copie la siguiente configuración y péguela para el valor
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/*
- Guarde y reinicie los servicios YARN, Oozie y MapReduce.
-
Configure Sqoop. Para configurarlo, siga estos pasos:
- Copie mysql-connector en la 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"
- Reinicie el servicio Oozie a través de Ambari.
- Los trabajos de Sqoop se ejecutan desde nodos de trabajador.
En los clusters de Big Data Service con la versión 3.0.7 o posterior, el acceso al usuario mysql
hue
está disponible desde todos los nodos de trabajador.Para los clusters con versiones anteriores, ejecute las sentencias grant como se describe en el paso 2 de las secciones de cluster seguro y no seguro de Configuración de Apache Hue. Al ejecutar los comandos, sustituya el host local por el nombre de host del trabajador y repítalo esto para cada nodo de trabajador del cluster. Por ejemplo:
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;
- Copie mysql-connector en la classpath oozie.
-
En el nodo maestro o de utilidad, desde el siguiente directorio, utilice los archivos .jar relacionados con spark y agréguelos como dependencia al proyecto de spark. Por ejemplo, copie los archivos .jar spark-core y spark-sql en lib/ para el proyecto 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
A continuación se muestra un ejemplo de código de recuento de palabras. Ensamble el código en JAR:
En la interfaz de Spark de Hue, utilice los archivos .jar relevantes para ejecutar el trabajo de Spark.
-
Para ejecutar MapReduce a través de Oozie, realice lo siguiente:
- Copie
oozie-sharelib-oozie-5.2.0.jar
(contiene la clase OozieActionConfigurator) en el código de ejemplo. - Defina las clases de asignador y reductor como se indica en cualquier ejemplo de recuento de palabras estándar MapReduce.
- Cree otra clase como se muestra a continuación:Empaquete el código como se muestra en la imagen anterior junto con las clases de asignador y reductor en un archivo .jar y realice lo siguiente:
- Cárguelo en HDFS mediante el explorador de archivos de Hue.
- Proporcione lo siguiente para ejecutar el programa MapReduce, donde
oozie.action.config.class
apunta al nombre de clase completo en el fragmento, como se muestra en la imagen anterior.
- Copie
-
Configure HBase.
En los clusters de Big Data Service con la versión 3.0.7 o posterior, debe activar Hue HBase Module mediante Apache Ambari.
Hue interactúa con el servidor Thrift HBase. Por lo tanto, para acceder a HBase, debe iniciar el servidor Thrift. Realice los siguientes pasos:
- Una vez agregado el servicio HBase en la página Ambari, desplácese a Custom Hbase-Site.xml (desde HBase, vaya a Configs y, en Advanced, seleccione Custom Hbase-Site.xml).
- Agregue los siguientes parámetros sustituyendo el archivo keytab o el 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
- Ejecute los siguientes comandos en el terminal de nodos maestros:
# 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
- Conéctese al nodo de utilidad donde está instalado Hue.
- Abre el archivo
sudo vim /etc/hue//conf/pseudo-distributed.ini
y elimina hbase deapp_blacklist
.# Comma separated list of apps to not load at startup. # e.g.: pig, zookeeper app_blacklist=search, security, impala, hbase, pig
- Reinicie Hue desde Ambari.
- Ranger controla el acceso al servicio HBase. Por lo tanto, para utilizar Hue y acceder a las tablas HBase en un cluster seguro, debe tener acceso al servicio HBase desde Ranger.
-
Configure el flujo de trabajo de acción de script:
- Inicia sesión en Hue.
- Cree un archivo de script y cárguelo en Hue.
- Inicie sesión en Hue y, a continuación, en el menú de navegación situado más a la izquierda, seleccione Programador.
- Flujo de trabajo y, a continuación, seleccione Mi flujo de trabajo para crear un flujo de trabajo.
- Seleccione el icono de shell para arrastrar la acción de secuencia de comandos al área Borrar la acción aquí.
- Seleccione la secuencia de comandos en la lista desplegable Comando Shell.
- Seleccione el flujo de trabajo en la lista desplegable FILES.
- Seleccione el icono Guardar.
- Seleccione el flujo de trabajo en la estructura de carpetas y, a continuación, seleccione el icono de envío.Nota
Al ejecutar cualquier acción de shell en un flujo de trabajo de Hue, si el trabajo está parado o falla debido a errores comoPermission Denied or Exit code[1]
, complete las siguientes instrucciones para resolver el problema.- Asegúrese de que todos los archivos necesarios (archivo de script y otros archivos relacionados) estén disponibles en la ubicación especificada como se menciona en el flujo de trabajo, con los permisos necesarios para el usuario de ejecución del flujo de trabajo (usuario conectado).
- A veces, como spark-submit, si ejecuta un trabajo de Spark sin un usuario específico, el trabajo se ejecuta por defecto con el propietario del proceso de contenedor (yarn), en este caso, asegúrese de que el usuario yarn tiene todos los permisos necesarios para ejecutar el trabajo.
Por ejemplo:
// 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
En este caso, el hilo de usuario debe tener los permisos necesarios para incluir
en el trabajo de Spark.spark-examples_2.12-3.2.1.jar
- Si ejecuta un trabajo de Spark con un usuario específico (--proxy-user spark), asegúrese de que el usuario de Yarn puede suplantar ese usuario especificado. Si el usuario de Yarn no puede suplantar al usuario especificado y recibe errores como (
User: Yarn is not allowed to impersonate Spark
), agregue las siguientes configuraciones.// 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
En este caso, el trabajo se ejecuta mediante el usuario de Spark. El usuario de Spark debe tener acceso a todos los archivos relacionados (
spark-examples_2.12-3.2.1.jar
). Además, asegúrese de que el usuario Yarn pueda suplantar al usuario de Spark. Agregue las siguientes configuraciones para que el usuario de hilo suplante a otros usuarios.- Acceda a Apache Ambari.
- En la barra de herramientas lateral, en Servicios, seleccione HDFS.
- Seleccione el separador Avanzado y agregue los siguientes parámetros en Sitio de núcleo personalizado.
- hadoop.proxyuser.yarn.groups = *
- hadoop.proxyuser.yarn.hosts = *
- Seleccione Guardar y reinicie todos los servicios necesarios.
-
Ejecute el flujo de trabajo de Hive desde Oozie.
- Inicia sesión en Hue.
- Cree un archivo de script y cárguelo en Hue.
- Inicie sesión en Hue y, a continuación, en el menú de navegación situado más a la izquierda, seleccione Programador.
- Flujo de trabajo.
- Arrastre el tercer icono de HiveServer2 al área Borrar la acción aquí.
- Para seleccionar el script de consulta de Hive en HDFS, seleccione el menú Script. El script de consulta se almacena en una ruta de HDFS accesible para el usuario que ha iniciado sesión.
- Para guardar el flujo de trabajo, seleccione el icono Guardar.
- El icono de ejecución.