Buscar en el Blog

jueves, 3 de julio de 2014

Configuración de Pentaho BI Server 5.0.1 para MySQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentaho: hibernate, quartz y jackrabbit en la base de datos MySQL

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El biserver viene con los scripts para MySQL, Oracle y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.7 o superior, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  MySQL v5.5 o superior
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-5.0.1
  • Haber descargado el controlador JDBC para  MySQL
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-5.0.1\data aquí se encuentran los scripts para MySQL, Oracle y PostgreSQL

2. Abrir el directorio mysql5 y ejecutar los scripts: create_repository_mysql.sqlcreate_quartz_mysql.sqlcreate_jcr_mysql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC de MySQL (mysql-connector-java-5.X.X-bin.jar) al directorio \biserver-ce-5.0.1\tomcat\lib.

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-5.0.1\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a MySQL

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
 <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
  maxWait="10000" username="hibuser" password="password"
  driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
  validationQuery="select 1;" />
  
 <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
  maxWait="10000" username="pentaho_user" password="password"
  driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
  validationQuery="select 1;"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \biserver-ce-5.0.1\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \biserver-ce-5.0.1\tomcat\webapps\pentaho\WEB-INF. En la línea 73 colocar lo siguiente para que únicamente se inicie la base de datos de ejemplo de HSQLDB:

<!-- [BEGIN HSQLDB DATABASES] -->
  <context-param>
    <param-name>hsqldb-databases</param-name>
    <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
  </context-param>
  <!-- [END HSQLDB DATABASES] -->

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-X.X.X\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/mysql5.hibernate.cfg.xml como se muestra a continuación:

<?xml version='1.0' encoding='utf-8'?>
<settings>  
    <!--config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file-->
 <config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
</settings>

NOTA: no olvidar de editar el archivo mysql5.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a MySQL como se muestra a continuación:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.MySQLDialect

9. Editar el archivo quartz.properties en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\quartz ubicar la propiedad org.quartz.jobStore.driverDelegateClass (línea 300) y colocar el siguiente valor:
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

10. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en MySQL:

  • Configuración del FileSystem: descomentar de la línea 44 a la 51. Comentar de la línea 72 a la 74
  • Configuración del DataStore: descomentar de la línea 89 a la 100. Comentar la línea 130
  • Configuración del Workspace: descomentar de la línea 198 a la 205. Comentar de la línea 226 a la 228. Descomentar de la línea 244 a la 250. Comentar de la línea 273 a la 276
  • Configuración del Versionamiento: descomentar de la línea 327 a la 334. Comentar de la línea 354 a la 356. Descomentar de la línea 373 a la 379. Comentar de la línea 401 a la 404

11. Reiniciar el servidor de BI de Pentaho

33 comentarios:

  1. en los script sql solo crea las las base de datos, como se crean las tablas en las base de datos??

    ResponderBorrar
    Respuestas
    1. Julio, Pentaho BI Server usa Hibernate, sí tu configuración está en base a ésta publicación, cuando inicies BI Server (start-pentaho) ese momento se creará la estructura de datos para las bases de datos hibernate y jackrabbit

      Borrar
  2. hola, segui el paso a paso y al momento de reiniciar tomcat me aparece el sigueinte problema:

    Exception in thread "HSQLDB Timer @1fd9cd5" java.lang.NullPointerException

    ResponderBorrar
  3. Intenta lo siguiente:

    1) Bajar biserver
    2) Elimina el archivo pentaho.xml de \biserver-ce-5.0.1\tomcat\conf\Catalina\localhost
    3) Verifica que en archivo web.xml tengas sampledata@../../data/hsqldb/sampledata en param-value

    ResponderBorrar
    Respuestas
    1. hola ing.
      segui su manual, pero al iniciar pentaho me sale error Estado HTTP 404 -

      ya elimini el archivo pentaho.xml en \biserver-ce-5.0.1\tomcat\conf\Catalina\localhost

      y cada que lo incio se crea nuevamente

      Borrar
  4. hice todo lo que dices y sigo con el problema

    ResponderBorrar
  5. Para eliminar el arranque de hipersonic (HSQLDB) debes comentar el arranque de este en
    biserver-ce\tomcat\webapps\pentaho\WEB-INF\web.xml
    +- linea 73 a 78

    … . . . …
    mas o menos en las lineas 195-199

    ResponderBorrar
  6. Hola que tengo que cambiar si tengo el servidor mysql 5.6(mysql workbench 6.2 CE) NOTA: no olvidar de editar el archivo mysql5.hibernate.cfg.xml sí la base de datos está en otro servidor

    ResponderBorrar
    Respuestas
    1. Tienes que colocar la IP o nombre de servidor en la cadena de conexión JDBC, por defecto está como localhost

      ...name="connection.url">jdbc:mysql://localhost:3306/hibernate

      localhost reemplazas con la IP, nombre o DNS del servidor de base de datos.

      Borrar
  7. Buenas, podrías hacer el tutorial para postgresql porfavor, o mostrar las líneas que varían de la instalación. Gracias

    ResponderBorrar
    Respuestas
    1. Hola David, tienes las instrucciones en la siguiente publicación: http://ingmmurillo-dwh-bi.blogspot.com/2014/10/configuracion-de-pentaho-bi-server-52.html

      Saludos,

      Borrar
  8. Hola doc, me aparece este error al exportar a excel :
    16:35:06,973 WARN [SimpleReportingComponent] Invalid output-target specified in the report. Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;page-mode=flow' is not a valid ReportProcessTask specifier. None of the existing output targets can handle this request.
    log4j:ERROR Attempted to append to closed appender named [PENTAHOFILE].
    16:35:06,973 WARN [SimpleReportingComponent] Invalid output-target specified in the report. Type 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;page-mode=flow' is not a valid ReportProcessTask specifier. None of the existing output targets can handle this request.
    log4j:ERROR Attempted to append to closed appender named [PENTAHOFILE].
    16:35:06,975 ERROR [SimpleReportingComponent] [execute] Component execution failed.
    java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException
    at org.pentaho.reporting.engine.classic.core.modules.output.table.xls.FlowExcelOutputProcessor.(FlowExcelOutputProcessor.java:70)
    at org.pentaho.reporting.platform.plugin.output.XLSXOutput.createProcessor(XLSXOutput.java:48)
    at org.pentaho.reporting.platform.plugin.output.XLSXOutput.generate(XLSXOutput.java:70)
    at org.pentaho.reporting.platform.plugin.SimpleReportingComponent.execute(SimpleReportingComponent.java:1051)
    at org.pentaho.reporting.platform.plugin.ExecuteReportContentHandler.doExport(ExecuteReportContentHandler.java:230)

    ResponderBorrar
  9. Hola ya pude levantar el servicio de pentaho pero me sale una pantalla en blanco cuando tecleo

    http://localhost:8099/admin

    en el browser

    ResponderBorrar
  10. Hola ya pude levantar el servicio de pentaho pero me sale una pantalla blanca en el broser cuando tecleo

    http://localhost:8099/admin

    me ayudas pf

    ResponderBorrar
    Respuestas
    1. Intenta eliminar los siguientes archivos temporales:

      \biserver-ce-5.X\tomcat\work\Catalina\*
      \biserver-ce-5.X\tomcat\temp\*
      \biserver-ce-5.X\pentaho-solutions\system\osgi\cache\*
      \biserver-ce-5.X\pentaho-solutions\system\jackrabbit\repository

      Además, elimina todos los archivos temporales de tu browser.

      Borrar
  11. Buenas tardes, he seguido el manual, sin embargo me aparece el siguiente error al querer accesar

    Estado HTTP 404 -
    type Informe de estado
    mensaje
    descripción El recurso requerido no está disponible.
    Apache Tomcat/6.0.41

    Las configuraciones se encuentran en un servidor Ubuntu 14.04.2 LTS, con la version 5.3 del PENTAHO, alguna idea de porque me esta marcando este error?

    ResponderBorrar
  12. Hola Muchas gracias por el aporte.
    Despues de la instalación, que pasos debo seguir, que me recomiendas.

    Muchas gracias!

    ResponderBorrar
    Respuestas
    1. Hola, echa un vistazo al siguiente POST: http://ingmmurillo-dwh-bi.blogspot.com/2015/05/arquitectura-de-flujo-de-datos-con.html en dónde explico todas las herramientas de la plataforma tanto para Data Warehousing y BI.

      Saludos,

      Borrar
  13. Gracias por el post. Lo seguí pero tengo el problema de que al iniciar se me crearon datos para quartz y jackrabbit pero no veo nada en hibernate. Estoy usando pentaho community 5.4 y mysql en centos 7

    ResponderBorrar
    Respuestas
    1. Juan Carlos: a partir de la versión 5.x esta información se graba en el repositorio de contenido JackRabbit, sí deseas interactuar con éste repositorio existe un REST API: http://javadoc.pentaho.com/bi-platform500/webservice500/rest.html

      Borrar
    2. Muchas gracias por la respuesta. Apenas estoy conociendo el producto, pero todo parece funcionar bien. Puedo asumir entonces que la base de hibernate no es necesaria ya? y que si las de quartz y jackrabbit tienen datos y todo funciona correctamente, la instalación debería estar bien?

      Borrar
    3. Así es, aunque no te sugiero que la borres ya que se guardan otros temas como la auditoria por ejemplo en la tabla pro_audit. Además, algunos plugins que instalas desde marketplace suelen usar para crear otras tablas requeridas

      Borrar
    4. Muchas gracias por las prontas respuestas. Como comente antes estoy apenas conociendo el producto y si logro hacer funcionar una cosa otra me falla. Ahora al correr el spoon para usar datos de ejemplo CSV de los tutoriales, al pulsar el botón traer campos, queda procesando indefinidamente. He probado aún con la configuración por defecto (sin cambiar nada) y aún así falla. Podría recomendarme por favor una combinación de distribución/ pentaho/ java (con su versión respectiva) que haya sido probada que funcione sin tener que hacer ajustes especiales? Si conoce alguna con alguna versión de Centos me sería aún más util. Muchas gracias de antemano por su respuesta.

      Borrar
    5. Oracle JDK v1.7
      CentOS o Ubuntu
      BI Server 5.2

      Borrar
  14. Hola
    Gracias por compartir esta información. Seguí todos los pasos excepto por lo de jackrabbit, ya que mi BI no tiene esa carpeta, esto afecta en algo la configuración??
    Al ejecutar la AdminConsole, marca error de 'Connection refused'
    Al intentar crear una nueva conexión desde AdminConsole errores de conexión
    y en consola entre otros errores:
    I/O exception (java.net.ConnectException) caught when processing request: Connection refused
    05:58:10,913 INFO [HttpMethodDirector] Retrying request
    05:58:38,188 ERROR [PacServiceImpl] java.net.UnknownHostException: www.pentaho.com

    Alguna sugerencia??
    Muchas gracias.

    ResponderBorrar
    Respuestas
    1. Hola: es obligatorio tener Jackrabbit, es un elemento crítico de la versión 5.x ya que este es un repositorio de contenido y todas las soluciones y artefactos asociados que se creen se almacenan ahí.

      Sobre la excepción UnknownHostException verifica que no tengas errores de tipeo sobre todo en los URL de conexión. Sí estás usando otro servidor diferente a localhost no olvides editar la conexión en el archivo mysql5.hibernate.cfg.xml

      Saludos,

      Borrar
  15. Hola buenas tardes.

    Tengo un problema, que no he podido resolver, no se si alguno de ustedes me pueda ayudar. Cabe mencionar que no tengo mucha experiencia en el tema. El problema es el siguiente:

    Le hice una modificación a una de las soluciones del servidor del pentaho (archivo xaction), el detalle es que al intentar reiniciar el cache marca el siguiente error:

    "The Solution Repository publisher encountered errors: org.hibernate.cache.CacheException: net.sf.ehcache.CacheException: pentahoCacheCache: Could not remove disk store entry for C45413B959A47CE1FA20F6DC1D6B1DC1 /pentaho-solutions Error was pentahoCache Cache: The Disk store is not active."

    Y no se ve reflejado el cambio. Por lo que entiendo el cache no se guarda en el file system sino en una BD, el detalle es que no se que registros debo borrar o que procedimiento seguir para ver los cambios reflejados.

    Agradezco de antemano su ayuda.

    Saludos.

    ResponderBorrar
    Respuestas
    1. Hola José Angel: detenido BI Server, intenta eliminar el contenido del directorio \biserver-ce-5.x\pentaho-solutions\system\osgi\cache\*

      Luego inicia BI Server, usualmente el cache de OSGI de Pentaho BI Server suele dar problemas, espero esto te ayude.

      Saludos,

      Borrar
  16. hola, que tal ingmurillo.

    estoy trabajando con pentaho 6.0.1 pero en las ultimas configuraciones varia mucho lo que hay que comentar y des comentar.
    tendra alguna idea de cuales son las correctas lineas?

    ResponderBorrar
  17. Hola Ing. me sumo a la cause de @sony ericsson. Al terminar de configurar me salta este error en la consola:

    misc-org.pentaho.platform.engine.core.system.PentahoSystem: org.pentaho.platform.api.engine.PentahoSystemException: PentahoSystem.ERROR_0014 - Error mientras se intentaba ejecutar la secuencia de arranque por org.pentaho.platform.engine.services.connection.datasource.dbcp.DynamicallyPooledDatasourceSystemListener

    y al iintentar levantar el servidor me salta este error:

    The following errors were detected
    [es_49] One or more system listeners failed. These are set in the systemListeners.xml.
    org.pentaho.platform.api.engine.PentahoSystemException: PentahoSystem.ERROR_0014 - Error mientras se intentaba ejecutar la secuencia de arranque por org.pentaho.platform.engine.services.connection.datasource.dbcp.DynamicallyPooledDatasourceSystemListener

    Please see the server console for more details on each error detected.

    ResponderBorrar
    Respuestas
    1. Saludos no se si todavia necesites la respuesta , me ha ocurrido lo mismo y probe de todo hasta que me desactive el firewall y funciono

      Borrar
  18. saludos no se si todavia estes buscando la respuesta, a mi me ocurrio lo mismo y despues intentar algunas cosas desactive el firewall de mi servidor y efectivamente era eso lo que me bloqueaba y no permitia hacer la conexion

    ResponderBorrar
  19. Buenas, instale mi workbench version 3.12 y estaba probando con bi server 5.0.1 al momento de publicar mi cubo no me sale error pero al crearlo con jpivow view me sale este mensaje "Esta página no puede ser accedida directamente. Debe ser llamada desde otras paginas" y empieza a cargar pero no muestra nada. Nose que puede estar pasando. Segui todos los pasos, recien estoy empezando con este tema.

    ResponderBorrar