Carga Inicial

Para poder desplegar la aplicación se debe realizar un carga inicial de datos hasta una fecha indicada. El objetivo es construir los cubos de Kylin a los que la aplicación va a realizar consultas. Esta carga inicial se realiza por medio de scripts en Python, versión 2.x, de un paquete llamado ETL_Processes.

Configurar Archivo de Parametros

Dentro del paquete se encuetra un archivo de parámetros llamado _params.cfg. _En este archivo los valores que se deben configurar son aquellos que indican los accesos a la base datos de MySQL, al servidor de Kylin y los que definen la manera como se hará la carga incremental. Para editar este archivo se puede hacer desde cualquier editor, por ejemplo _nano.

  1. Se deben ingresar los datos de acceso a la base de datos de MySQL y al servidor de Kylin. La configuración debe verse así:
  2. La carga inicial se realiza de manera incremental para que el proceso no sea tan demandantes en los recursos de la máquina desde donde se haga. Los siguientes son los parámetros, dentro de la sección load, indican la forma como esta carga se realizará:
    1. initial_date_to_load: indica la fecha hasta donde se desea cargar datos en la primera iteración de la carga. Su formato debe ser YYYY-mm-dd HH:MM:SS.
    2. default_start_date: indica la fecha desde donde se desea cargar datos en la primera iteración de la carga. Su formato debe ser un Timestamp en milisegundos.
    3. final_date_to_load: indica la fecha que se utiliza como condición de parada para las iteración en la carga. Su formato debe ser un Timestamp en segundos.
    4. audit_months_to_add: _indica la cantidad de meses que se van a añadir en cada iteracion para el cubo _p2p_session_audit_cube.
    5. warehouse_months_to_add: indica la cantidad de meses que se van a añadir en cada iteración para el cubo p2p_data_warehouse_cube. Dado que las tablas en la base de datos en MySQL de las que se parte contienen muchos datos, se debe tener cuidado de no configurar muchos meses.

Una configuración para estos parámetros se vería así:

3.

Ejecución

  1. El paquete debe ser enviado al servidor donde se tenga instalado los servicios de Cloudera. En este caso se hara por medio de ssh:
    $ scp ETL_Processes <usuario>@<ip-servidor>:<ubicacion>
    
  2. En el servidor de Clodera se debe ingresar a la carpeta del paquete:
    $ cd ETL_Processes
    
  3. Ejecutar el script carga_incremental.pyI. Se debe ejecutar con permisos de super usuario, indicar que se corra en background, asegurar que el proceso corrar hasta que termine o alguna eventualidad ocurra y llevar las salidas del proceso a un log:
    $ nohup sudo python2 carga_incremental > log/carga_incremental.log 2>&1 &
    
  4. El log del proceso se puede monitoriar de la siguiente manera:
    $ tail -f log/carga_incremental.log
    
  5. En cada iteración, la primera fase es la carga de datos desde MySQL a Hive. Cuando se empice a cargar los datos a Hive se lanza un trabajo de Hadoop y este se puede monitoriar gráficamente mediante el servicio HUE de Cloudera. Para esto se ingresa, desde un browser, a la siguiente dirección:

    <direccion-servidor-cloudera>:8888
    

  6. Se ingresa el usuario y la contraseña para autenticarse. Aparecerá la siguiente página:

  7. Dar clic en botón Job Browser de la parte superior derecha:

  8. Aparecera la siguiente página:
  9. Del cuadro de texto username borrar el valor que aparece:
  10. Se mostrarán todos los procesos corridos y los que estan corriendo:
  11. Una vez se carguen las tablas en Hive se empieza el proceso de la carga de datos a los cubos de Kylin. Para monitoriar este proceso se ingresa al servicio web de Kylin, como se indica al final del capítulo Instalación Kylin. Se debe seleccionar el proyecto p2p_datawarehouse:

  12. Dar clic en el botón Monitor:

  13. Se mostrará la lista de todos los procesos de carga de datos corridos y los que estan corriendo:

  14. Para ver el paso en el que esta un proceso se da clic en la feche azul correspondiente:

  15. Se listará información específica del proceso:

results matching ""

    No results matching ""