Pentaho 7.0 installation on Centos Linux

Business intelligence software provides a centralised way to collect data and display for analysis. Pentaho software provides reporting and data mining from many data sources. This article describe the steps to install Pentaho 7 Community edition on a Linux server.

Pre-requisite
Centos Linux 7.2 on x86_64
Java Runtime Environment OpenJDK 1.8.0_121
MySQL 5.7

Create a user id pentaho that have administration privileges.

$ id pentaho
uid=6006(pentaho) gid=6006(pentaho) groups=6006(pentaho),10(wheel),66(database)

Ensure JAVA_HOME contains directory of the JVM

$ env |grep JAVA_HOME

If value is empty, add following to ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/jre

Step 1: Download pentaho-server-ce-7.0.0.0-25.zip

Login to the Linux server as user id pentaho
$ links https://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/7.0/
. . .
$ unzip  pentaho-server-ce-7.0.0.0-25.zip
$ cd pentaho-server


Step 2: Prepare the database


$ cd data/mysql5
Edit .sql files to use user pentaho and password <password>. Check with SQL syntax if needed.

  • create_jcr_mysql.sql
  • create_quartz_mysql.sql
  • create_repository_mysql.sql


Login to Mysql and create the database with user ID pentaho
> create database quartz;
> create database jackrabbit;
> create database hibernate;
> create user 'pentaho'@'localhost' identified by 'Password';

> grant all privileges on quartz.* to 'pentaho'@'localhost' with grant option;
>  source create_jcr_mysql.sql
>  source create_quartz_mysql.sql
>  source create_repository_mysql.sql

$ cd ..
$ ./set-pentaho-env.sh

Edit following file and replace all mention of mysql user and database.

  • pentaho-solutions/system/jackrabbit/repository.xml


=== START
 <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
    <param name="driver" value="com.mysql.jdbc.Driver"/>
    <param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
    <param name="user" value="jcr_userpentaho"/>
    <param name="password" value="password"/>
    <param name="schema" value="mysql"/>
    <param name="schemaObjectPrefix" value="fs_repos_"/>
  </FileSystem>

 <DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
    <param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
    <param name="user" value="jcr_userpentaho"/>
    <param name="password" value="password"/>
    <param name="databaseType" value="mysql"/>
    <param name="driver" value="com.mysql.jdbc.Driver"/>
    <param name="minRecordLength" value="1024"/>
    <param name="maxConnections" value="3"/>
    <param name="copyWhenReading" value="true"/>
    <param name="tablePrefix" value=""/>
    <param name="schemaObjectPrefix" value="ds_repos_"/>

  </DataStore>

. . .
=== END

Edit the file  tomcat/webapps/pentaho/META-INF/context.xml and replace user ID and password for database
=== START
<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="hibuserpentaho" password="password"
                driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/hibernate"
                validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES 1" />

        <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
                factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
                maxWaitMillis="10000" username="pentaho_userpentaho" password="password"
                driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/quartz"
                validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES 1"/>

</Context>
=== END

Configure not to use dynamic listeners for the development server. Edit  vi pentaho-solutions/system/systemListeners.xml

Comment out following beans
=== START
<!--
<bean id="pooledDataSourceSystemListener" class="org.pentaho.platform.engine.services.connection.datasource.dbcp.PooledDatasourceSystemListener" />
-->
<!--
bean id="dynamicallyPooledDataSourceSystemListener" class="org.pentaho.platform.engine.services.connection.datasource.dbcp.DynamicallyPooledDatasourceSystemListener" />
-->
=== END

Step 3: Start Pentaho


$ ./start-pentaho.sh
DEBUG: Using JAVA_HOME
DEBUG: _PENTAHO_JAVA_HOME=/usr/lib/jvm/jre
DEBUG: _PENTAHO_JAVA=/usr/lib/jvm/jre/bin/java
Using CATALINA_BASE:   /home/pentaho/pentaho-server/tomcat
Using CATALINA_HOME:   /home/pentaho/pentaho-server/tomcat
Using CATALINA_TMPDIR: /home/pentaho/pentaho-server/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/jre
Using CLASSPATH:       /home/pentaho/pentaho-server/tomcat/bin/bootstrap.jar:/home/pentaho/pentaho-server/tomcat/bin/tomcat-juli.jar
Tomcat started.

To identify errors, check logs in pentaho-server/tomcat/logs/catalina.out and pentaho-server/tomcat/logs/pentaho.log

Successful startup as shown in pentaho.log

With a web browser access localhost:8080/pentaho with default user ID displayed at login page. The default admin User Name is admin.



At login, the Pentaho User Console (PUC) is displayed.


Troubleshooting notes:

When loading the web site it displays
 PentahoSystem.ERROR_0014

Verify that the file tomcat/webapps/pentaho/META-INF/context.xml is edited as above. It should have the validationQuery="select 1"

Reference: https://help.pentaho.com/Documentation/7.0/0F0/0P0/020/0B0#Install_the_Pentaho_Repository_Host_Database

No comments: