Scheduler de Pentaho Data Integration con Jenkins

Home  >>  Pentaho  >>  Scheduler de Pentaho Data Integration con Jenkins

Scheduler de Pentaho Data Integration con Jenkins

On septiembre 10, 2015, Posted by , In Pentaho,Sistemas, With No Comments

jenkins_pentaho

Hacer ejecuciones programadas de trabajos de un ETL y controlarlas es crucial.

Actualmente las soluciones que ofrecen los sistemas como Kettle de Pentaho se basan en scheduler de sistema operativo. En ocasiones, hay procesos en los que intervienen diferentes actores de distintas plataformas y ponerlo todo en común puede hacerse difícil… y más con escaso personal por vacaciones…. Hay logs de resultados que revisar, ejecuciones a petición en lugar de programadas…. servidores Linux, desarrollos desde Windows….

Jenkins es una herramienta pensada para la integración contínua de desarrollos. Establece un puente entre el desarrollador y los sistemas de producción. Es una herramienta sencilla y versátil orientada a realizar pruebas de idoneidad del código y si todo va bien, compilarlo y subirlo a los servidores. Se alimenta de disparadores varios que se instalan como plugins, como por ejemplo, que el desarrollador suba el código a GitHub o BitBucket.

En esta ocasión se nos plantea el reto de centralizar todos los trabajos de nuestro ETL Kettle, de tal forma que el desarrollador pueda trabajar en local y el área de sistemas pueda realizar tareas se seguimiento de los procesos.

Jenkins en principio parece una opción interesante para nuestras necesidades. Aunque consume mucha memoria RAM al parecer por su naturaleza de ser un proceso de Java.

Instalación de Jenkins en Centos

La instalación en principio es bastante asequible. En este caso usamos una distribución Centos en lugar de una Debian (mi preferida), y hay que hacer unos ajustes con el firewall.

Jenkins usa Java. Si lo tenemos instalado podemos continuar. Si no, aquí tenéis los pasos para instalar Java.

Sólo hay que tener en cuenta que en el momento de escribir estas líneas , Jenkins lo he probado con Java 1.7.

#sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
#sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
#sudo yum install jenkins

Si usamos Jenkins en el mismo sitio que nuestro BI local, deberemos retocar los puertos por defecto. La configuración está en /etc/sysconfig/jenkins

JENKINS_PORT="8082" 
JENKINS_AJP_PORT="8011"

Tocamos el firewall para que deje pasar los clienets web al puerto 8082 que hemos configurado.

firewall-cmd --zone=public --add-port=8082/tcp --permanent
firewall-cmd --reload

Ya podemos arrancar nuestro servidor Jenkins.

service jenkins start

Si nos encontramos con que no arranca, podemos echar un vistazo al log en /var/log/jenkins

Si todo ha ido bien. Ya tenemos Jenkins respondiendo en el puerto 8082 en nuestro caso.

Crear un trabajo programado para Kettle

Entramos en New Item

jenkins_new-item

Creamos un Freestyle project. jenkins_new-item-2

 

Le ponemos que se ejecute a las 14h cada día laborable, por ejemplo. (sigue una lógica similar al Cron de Linux)

jenkins_job-schedule

 

Y le indicamos cual es es script que usaremos para lanzar el Job (lanzamos el kitchen.sh).

jenkins_job-scriptUna de las ventajas en Jenkins es que nos guarda los logs de ejecución, para poder consultarlos. Inclusive si el trabajo no ha terminado, va refrescando el log con la nueva información.

jenkins_job-log

Temas a tener en cuenta

  • A nivel de sistema operativo, Jenkins se ejecuta con su propio usuario jenkins. Recordaros de alinear la seguridad el Kettle con dicho usuario o incluirlo en el grupo del usuario que ejecuta Pentaho. Luego reiniciar el servicio Jenkins para que cargue dicha seguridad.
  • Jenkins viene abierto por defecto. Recordaros de cerrar los accesos.

 

Fernando Aparicio
Full Stack Developer. Entusiasta del Open Source, métodos de organización y colaboración ágiles.

Actualmente estoy en busca de otras formas de mejorar en mi trabajo. Aprovechar el talento innato y la colaboración en equipo.

Lean, Kanban, Scrum ... Descubrir las pequeñas cosas que dan calidad al proceso a través de las personas usando PNL. Renovar los esquemas para motivar la colaboración.

Nuevos tiempos, nuevas soluciones.
Comments are closed.