Para instalación de Pentaho Community Edition Server Hitachi provee una instalación archivada:
Ud. Provee | Pentaho provee |
---|---|
Computador con hardware y sistema operativo requeridos/soportados. | El paquete de instalación (archivo .zip) |
JRE o JDK 1.8. | Servidor de aplicaciones: Tomcat. |
Base de datos para el repositorio de Pentaho. Puede ser PostgreSQL, MySQL, MS SQL Server or Oracle. | Aclaración: Tomcat 9 |
Drivers JDBC para la bd del repositorio (PostgreSQL, MySQL, MS SQL Server or Oracle). |
https://developer.ibm.com/languages/java/semeru-runtimes/downloads
Editar el archivo
/etc/profile
y agregar:
Si bien la documentación de Postgres indica ejecutar initdb, esto no fue necesario porque la instalación con el archivo .rpm ya creó la bd postgres.
El archivo .rpm también crea el usuario postgres con home dir
e instala postgreSql 10 en el directorio
CentOS 7 u 8
Ejecutar los siguientes comandos en el shell
Para que funcione pgAdmin fue necesario permitir el acceso al puerto 8080 (cambiar configuración de firewall) y modificar el archivo postgresql.conf para permitir que cualquier dirección IP pueda conectarse
Incompatibilidad con paquete pgdg-common
Repository
Excluir pgadmin4 de pgdg-common
Agregar exclude en el repositorio para pgadmin
Para que los scripts de creación de bases de datos utilizados por Pentaho fueran ejecutados con éxito tuvimos que
crear los los mismos usuarios en la bd y en el sistema operativo. Además modificar el archivo pghba.conf para que el usuario postgres pueda ejecutar \connect a las nuevas bd como su usuario Owner sin error.
Indicar el password para la bd de cada usuario en la sentencia CREATE USER del script correspondiente. Ej. En el archivo createrepositorypostgresql.sql
Crear los usuarios hib_usr, jcr_usr, pentaho
Si aún no existe el usuario pentaho, crearlo.
Descomprimir el archivo pentaho-server-ce-9.2.0.0-290.zip en la carpeta
Aclaración: Descomprimir fue lo factible porque no hay un installer.jar ni un install.sh como dice la ayuda para la instalación archivada.
Modificar los scripts de inicio para que incluyan headless (cuando el servidor no tiene Xwindows instalado)
Ejemplo
Para que las operaciones de X11 funcionen en memoria en lugar de la pantalla
En la instalación realizada en el servidor de desarrollo, modificamos el archivo /etc/profile
Setear la bd Quartz del servidor PostgreSQL para que sea el Repositorio de Pentaho. La información de eventos como reportes programados, son almacenado en el JobStore de Quartz. Indicar la localización del JobStore modificando el archivo quartz.properties
:
Editar el archivo <PENTAHO_USER_HOME>/pentaho/server/pentaho-server/pentaho-solutions/system/quartz/quartz.properties
file in any text editor.
Localizar la sección #_replace_jobstore_properties
e indicar org.quartz.jobStore.driverDelegateClass
como sigue:
Localizar la sección #Configure Datasources
e indicar org.quartz.dataSource.myDS.jndiURL
igual a Quartz
. En Tomcat, esto sería:
Modificar el archivo <PENTAHO_USER_HOME>/pentaho/server/pentaho-server/pentaho-solutions/system/hibernate/hibernate-settings.xml
file in a text editor. Ubicar el tag <config-file>
e indicar PostgreSQL:
Indicar el usuario y contraseñas correctas para la bd que usará hibernate en el archivo <PENTAHO_USER_HOME>/pentaho/server/pentaho-server/pentaho-solutions/system/hibernate/postgresql.hibernate.cfg.xml
En la instalación realizada:
Descargar el driver Jdbc para la versión instalada de PostgreSQL y copiarlo al directorio
<PENTAHO_USER_HOME>/pentaho/server/pentaho-server/tomcat/lib
Editar el archivo <PENTAHO_USER_HOME>/pentaho/server/pentaho-server/pentaho-solutions/jackrabbit/repository.xml
Indicar el uso de postgreSQL en las siguientes ubicaciones del archivo repository.xml
. Notar que para Pentaho 9.2 el url tiene que usar JNDI.
a. FileSystem
Comentar el uso del sistema de archivos
b. DataStore
c. FileSystem (no es repetido)
d. Persistence Manager
e. FileSystem (no es repetido)
f. PersistenceManager (no es repetido)
g. Journal (dentro del tag Cluster)
Modificar la información de conexión usada por Tomcat. Editar el archivo <PENTAHO_USER_HOME>/>/pentaho/server/pentaho-server/tomcat/webapps/pentaho/META-INF/context.xml
Notar que en nuestra instalación sampleData con hSQLServer no funcionó. Intentamos que funcione con PostgreSQL pero de todas formas dio error al intentar consultar un reporte de muestra identificado como Invoice (los reportes también daban error cuando la bd SampleData era hSQL
Los scripts para la creación e inserts necesarios para la bd sampleData fueron adaptados de una documentación de una imagen Docker para Pentaho 5 (https://github.com/wmarinho/docker-pentaho/blob/master/config/postgresql/biserver-ce/pentaho-solutions/system/jackrabbit/repository.xml)
Adaptamos esos scripts usando nombres todos en minúsculas para que no de error de nombres de tablas y campos. PostgreSQL convierte los nombres de campos y tablas a minúsculas cuando procesa una sentencia SQL .
Los scripts a ejecutar están en el directorio datosMuestra_paraLowercaseFoldingDePostgres
Ejecutar el script
Para parar pentaho ejecutar
Observación: Si bien con uso de BasicDataSourceFactory (https://tomcat.apache.org/tomcat-9.0-doc/jndi-resources-howto.html), pentaho pudo iniciar, el log aún tenía error de hibernate/repositorio
Ej.
Para que funcione con el datasource indicado por Pentaho, tuvimos que copiar en <TOMCAT>/WEB-INF/lib/
el jar de kettle y sus dependencias:
Ej.
Kettle y sus dependencias están en el directorio kettleDependency\