Por defecto, el pentaho-server 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 servidor central pentaho-server viene con los scripts para MySQL, Oracle, SQL Server y PostgreSQL.
Pre-requisitos.-
- Tener instalado y configurado el JDK v1.8, en la siguiente publicación se explica el procedimiento
- Tener instalado la base de datos PostgreSQL v9.6
- Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \pentaho-server-ce-7.x
- Haber descargado el controlador JDBC para PostgreSQL
1. Ir al directorio \pentaho-server\data aquí se encuentran los scripts para MySQL, Oracle, SQL Server y PostgreSQL
2. Abrir el directorio postgresql y ejecutar los scripts: create_repository_postgresql.sql, create_quartz_postgresql.sql y create_jcr_postgresql.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 Tipo 4 de PostgreSQL (postgresql-42.1.4.jar) al directorio \pentaho-server\tomcat\lib.
NOTA: Borrar el driver postgresql-9.3-x.jdbc4.jar existente de tal forma que solo quede el archivo postgresql-42.1.4.jar
4. Editar el archivo context.xml ubicado en el directorio: \pentaho-server\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL
<?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" maxTotal="20" maxIdle="5" maxWaitMillis="10000" username="hibuser" password="password" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/hibernate" validationQuery="select version();" /> <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5" maxWaitMillis="10000" username="pentaho_user" password="password" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/quartz" validationQuery="select version();"/> </Context>
5. Eliminar el archivo pentaho.xml del directorio: \pentaho-server\tomcat\conf\Catalina\localhost
6. Editar el archivo web.xml en el directorio \pentaho-server\tomcat\webapps\pentaho\WEB-INF. Comentar las secciones: [BEGIN HSQLDB DATABASES] y [BEGIN HSQLDB STARTER]
Configuración en BI Server
Todos los archivos de configuración del servidor central de Pentaho Community Edition (pentaho-server) se encuentran en el directorio: \pentaho-server\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>
... <config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file> ...
NOTA: no olvidar de editar el archivo postgresql.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 PostgreSQL como se muestra a continuación:
jdbc.driver=org.postgresql.Driver jdbc.url=jdbc:postgresql://localhost:5432/hibernate jdbc.username=hibuser jdbc.password=password hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
9. En la base de datos quartz crear la siguiente tabla:
CREATE TABLE "qrtz" ( NAME VARCHAR(200) NOT NULL, PRIMARY KEY (NAME) ); ALTER TABLE "qrtz" OWNER TO pentaho_user;
10. Editar el archivo repository.xml de Jackrabbit en el directorio \pentaho-server\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en PostgreSQL:
- Configuración del FileSystem: descomentar de la línea 61 a la 68. Comentar de la línea 79 a la 83
- Configuración del DataStore: descomentar de la línea 123 a la 134. Comentar de la línea 150 a la 152
- Configuración del FileSystem: descomentar de la línea 236 a la 243. Comentar de la línea 255 a la 259
- Configuración del PersistenceManager: descomentar de la línea 293 a la 300. Comentar de la línea 312 a la 317
- Configuración del FileSystem: descomentar de la línea 368 a la 375. Comentar de la línea 386 a la 390
- Configuración del PersistenceManager: descomentar de la línea 425 a la 432. Comentar de la línea 443 a la 448
Consideraciones Importantes
En sistemas operativos Windows, sí se ejecutó pentaho-server antes de realizar ésta configuración usando la base de datos por defecto HSQLDB, es conveniente eliminar el contenido de los siguientes directorios para evitar comportamientos inesperados:
- \pentaho-server\tomcat\work\Catalina\*
- \pentaho-server\tomcat\temp\*
- \pentaho-server\pentaho-solutions\system\karaf\caches\*
- \pentaho-server\pentaho-solutions\system\jackrabbit\repository
Buenas tardes,
ResponderBorrarhe instalado pentaho 7.0 con postgresql en entorno linux (CentOS).
He seguido sus pasos y cuando accedo a la url de pentaho me da el siguiente eror:
[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.scheduler2.quartz.EmbeddedQuartzSystemListener
¿Tiene idea de qué puede ser?
Gracias.
Hola verifica que se haya ejecutado la creción de la tabla QRTZ del paso (9)
BorrarCREATE TABLE "qrtz"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);
ALTER TABLE "qrtz" OWNER TO pentaho_user;
Sí no, ejecutalo y borra todos los caches que se generan.
\pentaho-server\tomcat\work\Catalina\*
\pentaho-server\tomcat\temp\*
\pentaho-server\pentaho-solutions\system\karaf\caches\*
\pentaho-server\pentaho-solutions\system\jackrabbit\repository
Gracias Mauricio por su rápida respuesta.
BorrarSí, lo he comprobado, la tabla qrtz está creada. He borrado también las caches tal y como ha indicado y sigue dando el mismo error.
Tengo dudas acerca la versión java y si debo asignarlas a las variables de sistema PENTAHO_JAVA y PENTAHOA_JAVA_HOME, no sé si podrían ser origen del problema.
La versión java que tengo instalada es la siguiente:
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
Cuando lanzo el script start-pentaho me aparecen estas asignaciones en la consola:
WARNING: Using java from path
DEBUG: _PENTAHO_JAVA_HOME=
DEBUG: _PENTAHO_JAVA=java
Using CATALINA_BASE: /opt/pentaho/pentaho-server/tomcat
Using CATALINA_HOME: /opt/pentaho/pentaho-server/tomcat
Using CATALINA_TMPDIR: /opt/pentaho/pentaho-server/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/pentaho/pentaho-server/tomcat/bin/bootstrap.jar:/opt/pentaho/pentaho-server/tomcat/bin/tomcat-juli.jar
Gracias por su tiempo.
Pentaho no soporta OpenJDK, necesitas instalar Oracle Java 8 y configurar las variables de entorno JAVA_HOME y PATH como mencionas. En éste link está para Windows (https://ingmmurillo-dwh-bi.blogspot.com/2012/05/instalacion-y-configuracion-del-java.html). Este post está para la versión 6 pero puedes hacer algo similar para la versión 8 (http://ingmmurillo.blogspot.com/2010/10/como-instalar-el-jdk-en-la-distribucion.html)
BorrarSaludos,
Conseguido!
BorrarInstalé la versión JAVA 1.8 y modifiqué la variable de sistema PENTAHO_JAVA_HOME.
Aún así no me ha funcionado, pero he vuelto a lanzar el script creando la tabla qrtz en mayúsculas:
CREATE TABLE "QRTZ"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);
ALTER TABLE "QRTZ" OWNER TO pentaho_user;
De esta manera sí ha funcionado y la página de inicio de pentaho aparece para hacer el log in.
Muchas gracias por su ayuda!
maria como configuro la variable PENTAHO_JAVA_HOME
ResponderBorrarHola:
BorrarMi nombre es Mauricio: en la siguiente publicación tienes instrucciones para configurar la variable JAVA_HOME en Windows:
https://ingmmurillo-dwh-bi.blogspot.com/2012/05/instalacion-y-configuracion-del-java.html
En el paso 3: creas
PENTAHO_JAVA_HOME = C:\Program Files\Java\jdk1.8.0_xxx
Saludos,
hola mauricio muchas gracias por la respuesta, no me explique bien tengo intsalado pentaho server 7 en red hat pero no logro levantar el servicio se queda cargando la pagina y cuando termina dice que que no encuentra el directorio pentaho
BorrarBuen día Mauricio,
ResponderBorrar¿Me podría explicar por qué para el repositorios de metadatos de Pentaho no es conveniente utilizar la base de datos HSQLDB para ambiente de producción?
Buen día Mauricio,
ResponderBorrarPor favor me podrías indicar ¿por qué no es conveniente utilizar la base de datos HSQLDB para el repositorio de metadatos de Pentaho cuando se implementa un ambiente de producción?