Comenzando con Oozie
En esta página
Instalación o configuración
Requisitos previos
Este artículo demostró la instalación de oozie-4.3.0 en Hadoop 2.7.3
1.Java 1.7+ 2. Hadoop 2.x (aquí, 2.7.3) 3. Maven3+ 4. Caja Unix
Paso 1: Archivo de distribución
Obtenga el archivo oozie tar.gz de http://www-eu.apache.org/dist/oozie/4.3.0/ y extráigalo
cd $HOME
tar -xvf oozie-4.3.0.tar.gz
Paso 2: Construye a Oozie
cd $HOME/oozie-4.3.0/bin
./mkdistro.sh -DskipTests
Paso 3: Instalación del servidor
Copie los binarios creados en el directorio de inicio como ‘oozie’
cd $HOME
cp -R $HOME/oozie-4.3.0/distro/target/oozie-4.3.0-distro/oozie-4.3.0 .
Paso 3.1: libext Crear directorio libext dentro del directorio oozie
cd $HOME/oozie
mkdir libext
Nota: Biblioteca ExtJS (2.2+) (opcional, para habilitar la consola web de Oozie) Pero, la biblioteca ExtJS no se incluye con Oozie porque usa una licencia diferente :( Ahora debe colocar los frascos de Hadoop dentro del directorio libext, de lo contrario arrojará el siguiente error en el archivo oozie.log
ADVERTENCIA ActionStartXCommand: 523 - SERVIDOR [data01.teg.io] USUARIO [hadoop] GRUPO[-] TOKEN[] APLICACIÓN[map-reduce-wf] TRABAJO[0000000-161215143751620-oozie-hado-W] ACCIÓN[[email protected]] Error al iniciar acción [mr-nodo]. Tipo de error [TRANSIENT], Código de error [JA009], Mensaje [JA009: No se puede inicializar el Clúster. Por favor, compruebe su configuración para mapreduce.framework.name y las direcciones de servidor correspondientes.]
Entonces, pongamos debajo de los frascos dentro del directorio libext
cp $HADOOP_HOME/share/hadoop/common/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/common/lib/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/hdfs/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/hdfs/lib/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/mapreduce/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/mapreduce/lib/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/yarn/*.jar oozie/libext/
cp $HADOOP_HOME/share/hadoop/yarn/lib/*.jar oozie/libext/
Paso 3.2: Suplantar a Oozie Para evitar el error de suplantación en oozie, modifique core-site.xml como se muestra a continuación
<!-- OOZIE -->
<property>
<name>hadoop.proxyuser.[OOZIE_SERVER_USER].hosts</name>
<value>[OOZIE_SERVER_HOSTNAME]</value>
</property>
<property>
<name>hadoop.proxyuser.[OOZIE_SERVER_USER].groups</name>
<value>[USER_GROUPS_THAT_ALLOW_IMPERSONATION]</value>
</property>
Suponiendo que mi usuario oozie es huser y el host es localhost y el grupo es hadoop
<!-- OOZIE -->
<property>
<name>hadoop.proxyuser.huser.hosts</name>
<value>localhost</value>
</property>
<property>
<name>hadoop.proxyuser.huser.groups</name>
<value>hadoop</value>
</property>
Nota: puede usar * en todos los valores, en caso de confusión
Paso 3.3: Preparar la guerra
cd $HOME/oozie/bin
./oozie-setup.sh prepare-war
Esto creará el archivo oozie.war dentro del directorio oozie. Si esta guerra se utilizará más, es posible que se encuentre con este error:
ERROR ActionStartXCommand:517 - SERVIDOR[data01.teg.io] USUARIO[hadoop] GRUPO[-] TOKEN[] APLICACIÓN[map-reduce-wf] TRABAJO[0000000-161220104605103-oozie-hado-W] ACCIÓN[[email protected]] Error, java.lang.NoSuchFieldError: HADOOP_CLASSPATH
¿Por qué? porque la compilación oozie produjo archivos jar de Hadoop 2.6.0 incluso cuando se especificaba Hadoop 2.7.3 con la opción “-Dhadoop.version=2.7.3”.
Entonces, para evitar este error, copie el archivo oozie.war en un directorio diferente
mkdir $HOME/oozie_war_dir
cp $HOME/oozie/oozie.war $HOME/oozie_war_dir
cd $HOME/oozie_war_dir
jar -xvf oozie.war
rm -f oozie.war/WEB-INF/lib/hadoop-*.jar
rm -f oozie.war/WEB-INF/lib/hive-*.jar
rm oozie.war
jar -cvf oozie.war ./*
cp oozie.war $HOME/oozie/
Luego, regenere los binarios oozie.war para oozie con un comando prepare-war
cd $HOME/oozie/bin
./oozie-setup.sh prepare-war
Paso 3.4: Crear sharelib en HDFS
cd $HOME/oozie/bin
./oozie-setup.sh sharelib create -fs hdfs://localhost:9000
Ahora, esta configuración de sharelib puede darte el siguiente error:
org.apache.oozie.service.ServiceException: E0104: no se pudo completar inicializar servicio [org.apache.oozie.service.ShareLibService], No capaz de almacenar en caché sharelib. Un administrador necesita instalar sharelib con oozie-setup.sh y emita el comando CLI ‘oozie admin’ para actualizar el compartirlib
Para evitar esto, modifique oozie-site.xml como se muestra a continuación
cd $HOME/oozie
vi conf/oozie-site.xml
Agregar debajo de la propiedad
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/usr/local/hadoop/etc/hadoop/</value>
</property>
El valor debe ser su $HADOOP_HOME/etc/hadoop, donde están presentes todos los archivos de configuración de hadoop.
Paso 3.5: Crear Oozie DB
cd $HOME/oozie
./bin/ooziedb.sh create -sqlfile oozie.sql -run
Paso 3.6: Inicie Daemon
Para iniciar Oozie como demonio, use el siguiente comando:
./bin/oozied.sh start
Para detener
./bin/oozied.sh stop
verifique los registros en busca de errores, si los hay
cd $HOME/oozie/logs
tail -100f oozie.log
Utilice el siguiente comando para comprobar el estado de Oozie desde la línea de comandos:
$ ./bin/oozie admin -oozie http://localhost:11000/oozie -status
System mode: NORMAL
Paso 4: Instalación del cliente
$ cd
$ cp oozie/oozie-client-4.3.0.tar.gz .
$ tar -xvf oozie-client-4.3.0.tar.gz
$ mv oozie-client-3.3.2 oozie-client
$ cd bin
Agregue $HOME/oozie-client/bin a la variable PATH en el archivo .bashrc y reinicie su terminal o haga
source $HOME/.bashrc
Para obtener más detalles sobre la configuración, puede consultar esta URL https://oozie.apache.org/docs/4.3.0/DG_QuickStart.html
Ahora puede enviar trabajos de hadoop a oozie en su terminal.
Para ejecutar un ejemplo, puede seguir esta URL y configurar su primer ejemplo para ejecutar https://oozie.apache.org/docs/4.3.0/DG_Examples.html
Es posible que se encuentre con el siguiente error al ejecutar el ejemplo de reducción del mapa en la URL anterior
java.io.IOException: java.net.ConnectException: llamar desde localhost.localdomain/127.0.0.1 a 0.0.0.0:10020 falló en la conexión excepción: java.net.ConnectException: Conexión rechazada; Para más detalles ver: http://wiki.apache.org/hadoop/ConnectionRefused
Solución: Inicie mr-jobhistory-server.sh
cd $HADOOP_HOME/sbin
./mr-jobhistory-server.sh start historyserver
Otro punto a tener en cuenta sobre la modificación del archivo job.properties es:
nameNode=hdfs://localhost:9000
jobTracker=localhost:8032
en su caso, esto puede ser diferente, ya que estoy usando apache hadoop, puede estar usando cloudera/hdp/anything
To run spark job, I have tried running in local[*], yarn-client and
yarn-cluster as master, but succeeded in local[*] only