Instalación y configuración de Pentaho 6.0 con PostgreSQL

En este artículo explicaremos como instalar Pentaho Business Service 6 y configurarlo para trabajar con PostgreSQL. La plataforma que utilizaremos es Ubuntu 15, pero también esta disponible para Windows.

Los requisitos previos para la instalación son:

- Máquina virtual de Java

- Base de datos PostgreSQL

Entramos en la pagina de http://sourceforge.net para descargar Pentaho Business Server, buscamos la versión deseada y copiamos en enlace:

wget http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/6.0/biserver-ce-6.0.0.0-353.zip

 

Descarga Pentaho BI Server6.0

 

Descomprimimos el fichero, y veremos la siguiente estructura:

EstructuraPentaho

 

Los archivos ./start-pentaho.sh y ./stop-pentaho.sh son para iniciar y finalizar el servidor tomcat de la aplicación.

./start-pentaho.sh → Guarda los parámetros de la configuración, como la memoria asignada

 

Ahora deberemos modificar unos archivos para configurarlo con nuestra conexión a PostgreSQL:

  1. Dentro de la carpeta pentaho/biserver-ce/data podemos encontrar diferentes scripts de configuración según el origen de los datos. En este caso, queremos conectar Pentaho con nuestra base de datos PostgreSQL. Definiremos los parámetros de la configuración de los repositorios de metadatos de Pentaho:

                    

    - create_jcr_postgresql → Rabbit / cuadro de mando

    - create_quartz_postgresql → Quartz / programar tareas

    - create_repository_postgresql → Hibernate Java/ persistencia

Debemos modificar los datos de cada uno de estos archivos por los nuestros (usuario y password), y ejecutar los scripts en nuestro servidor de Base de datos.

Para el script de create_quartz_postgresql, debemos agregar estas líneas también

CREATE TABLE "QRTZ"(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);

 

  1. En la ruta: pentaho/biserver-ce/tomcat/webapps/pentaho/META-INF encontramos el archivo context.xml

 

Modificamos el usuario y el password, así como el driverCass y la url de las conexiones con hibernate y quartz.

 

  1. Dentro biserver-ce6.0/tomcat/conf/Catalina/localhost se creará el archivo “pentaho.xml” donde se guardará la configuraración de la conexión que se carga al ejecutar por primera vez pentaho sever, si hacemos algún cambio en la configuración, debemos eliminar esta carpeta para que vuelva a cargar el archivo al reiniciar.
     

  2. El siguiente paso será modificar el archivo web.xml, que lo encontraremos en la siguiente ruta: biserver-ce6.0/tomcat/webapps/pentaho/WEB-INF. Aquí debemos comentar las líneas de BEGIN HSQLDB:

<!-- [BEGIN HSQLDB DATABASES] <context-param> <param-name>hsqldb-databases</param-name>
<param-value>sampledata@../../data/hsqldb/sampledata,hibernate@../../data/hsqldb/hibernate,
 quartz@../../data/hsqldb/quartz</param-value>
</context-param> [END HSQLDB DATABASES] -->
  1. En la carpeta biserver-ce6.0/pentaho-solutions/system/hibernate encontramos el archivo hibernate-settings.xml

Aquí debemos indicar la configuración con la base de datos de hibernate, en este caso es con PostgreSql, por lo tanto modificamos config-file por:

<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
  1. A continuación modificaremos el archivo: applicationContext-spring-security-hibernate.properties. Por nuestra conexión a PostgreSQL:

jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/hibernate
jdbc.username=MIUSER
jdbc.password=MISPASSWORD
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
  1. Editaremos el archivo biserver-ce6.0/pentaho-solutions/system/jackrabbit/ repository.xml. Des esta manera jackRabbit apuntará a nuestro PostrgreSQL.

En este archivo se muestra las diferentes configuraciones del repositorio para Postgresql, mysql, oracle, sqlserver. Debemos comentar las actuales, y des comentar las conexiones para postgre, en las diferentes configuraciones: FileSystem class, Datamanager…. Así como modificar el nombre de usuario y contraseña.

Borraremos la carpeta “repository” para que se vuelva a crear con la nueva configuración cuando reiniciemos Pentaho Server

Ahora ya podemos reiniciar Pentaho para que se aplique la nueva configuración. Una vez iniciado, abrimos el navegador con la dirección localhost:8080

Interficie Pentaho Server

     

    Instalación Pentaho BA Server CE 6

    Hola, estoy instalando pentaho ce 6 sobre centos 7. He seguido los pasos de tu guía, a diferencia de la base de datos, trabajo con MySQL.

    Para el momento de levantar el server me lanza este primer ERROR de toda la traza:

    ...

    11:09:55,099 ERROR [0] [[org.osgi.service.cm.ConfigurationAdmin]]Cannot use configuration org.pentaho.requirejs for [org.osgi.service.cm.ManagedService, id=495, bundle=187/mvn:pentaho/pentaho-requirejs-osgi-manager/6.0.1.0-386]: No visibility to configuration bound to mvn:pentaho/pentaho-server-bundle/6.0.1.0-386

    ...

    04-Apr-2016 16:12:11.706 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
    04-Apr-2016 16:12:11.716 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Falló en arranque del Contexto [/pentaho] debido a errores previos
    16:12:11,912 ERROR [GuavaCachePoolPentahoJcrSessionFactory] Error obtaining session from cache. Creating one directly instead: javax.jcr.SimpleCredentials@479a0363
    java.util.concurrent.ExecutionException: javax.jcr.LoginException: LoginModule could not perform authentication: The userCache Cache is not alive (STATUS_SHUTDOWN)
        at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
        at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
        at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:135)
        at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2346)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2318)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3934)

    ...

    Lo demás de log son sólo excepciones derivadas del primer error.

    Espero puedas ayudarme con este error.

    Muchas gracias

    Saludos.

    Podéis probar a eliminar el directorio pentaho-solutions/system/jackrabbit/repository, y hacer un restart del servidor pentaho, de esta forma jackrabbit vuelve a regenerar toda la estructura de nuevo.