本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
在 Linux 中安装 Pentaho Server 9.1 并使用 MySQL 作为存储库
一、本文环境
| 应用名称 | CentOS Linux | Pentaho Server CE | MySQL | JDK |
|---|---|---|---|---|
| 应用版本 | 7.9 | 9.1 | 8.x | 1.8 |
二、准备工作
1、下载pentaho-server-ce-9.1.0.0-324安装包
1.1、开源仓库渠道
下载链接:sourceforge.net/projects/pe…
1.2、百度网盘渠道
2、安装 JDK(省略)
3、安装 MySQL(省略)
三、安装 Pentaho Server
1、在/opt目录下创建software和module两个目录
# 用于存放软件安装包
[root@pentaho-server ~]# mkdir /home/lbs/Downloads
# 用于软件具体安装路径
[root@pentaho-server ~]# mkdir /home/lbs/software
2、上传pentaho-server-ce-9.1.0.0-324.zip安装包至/home/lbs/Downloads/目录下
3、解压安装包
[root@pentaho-server software]# unzip pentaho-server-ce-9.1.0.0-324.zip
注:若出现 - bash: unzip: command not found 错误,则通过下面命令先安装 unzip 和 zip 程序后再进行解压
[root@pentaho-server software]# yum install -y unzip zip
4、将解压后的pentaho-server目录移动至/home/lbs/software/目录下
[root@pentaho-server software]# mv pentaho-server /home/lbs/software/
5、切换存储库为 MySQL 并修改对应的配置文件
5.1、更改 MySQL 脚本中默认密码以及字符集编码为 UTF-8,密码自定义
# create_jcr_mysql.sql 文件
tee data/mysql/create_jcr_mysql.sql <<EOF
CREATE DATABASE IF NOT EXISTS `jackrabbit` DEFAULT CHARACTER SET utf8mb4;
CREATE USER IF NOT EXISTS 'jcr_user'@'%' IDENTIFIED BY '!QAZ2wsx';
GRANT ALL PRIVILEGES ON `jackrabbit`.* TO 'jcr_user'@'%';
FLUSH PRIVILEGES;
commit;
EOF
# create_quartz_mysql.sql 文件
sed -i '8,13c\
CREATE DATABASE IF NOT EXISTS `quartz` DEFAULT CHARACTER SET utf8mb4;\
\
CREATE USER IF NOT EXISTS '''pentaho_user'''@'''%''' IDENTIFIED BY '''!QAZ2wsx''';\
GRANT ALL PRIVILEGES ON `quartz`.* TO '''pentaho_user'''@'''%''';\
FLUSH PRIVILEGES;' data/mysql/create_quartz_mysql.sql
# create_repository_mysql.sql 文件
tee data/mysql/create_repository_mysql.sql <<EOF
CREATE DATABASE IF NOT EXISTS `hibernate` DEFAULT CHARACTER SET utf8mb4;
USE `hibernate`;
CREATE USER IF NOT EXISTS 'hibuser'@'%' IDENTIFIED BY '!QAZ2wsx';
GRANT ALL PRIVILEGES ON `hibernate`.* TO 'hibuser'@'%';
FLUSH PRIVILEGES;
commit;
EOF
5.2、登录 MySQL 运行以上 SQL 脚本
[root@pentaho-server pentaho-server]# mysql -uroot -p
mysql> source /home/lbs/software/pentaho-server/data/mysql/create_jcr_mysql.sql;
mysql> source /home/lbs/software/pentaho-server/data/mysql/create_quartz_mysql.sql;
mysql> source /home/lbs/software/pentaho-server/data/mysql/create_repository_mysql.sql;
5.3、设置 Quartz
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/quartz/quartz.properties
5.3.1、找到 #_replace_jobstore_properties 部分并设置 org.quartz.jobStore.driverDelegateClass
# 修改前
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
# 修改后
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
5.3.2、找到 # Configure Datasources 部分并将 org.quartz.dataSource.myDS.jndiURL 设置为 Quartz
5.4、修改applicationContext-spring-security-jdbc.properties配置文件
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/applicationContext-spring-security-jdbc.properties
datasource.driver.classname=com.mysql.cj.jdbc.Driver
datasource.url=jdbc:mysql://master:3306/hibernate
datasource.username=hibuser
datasource.password=!QAZ2wsx
datasource.validation.query=SELECT 1
注意:请确保配置文件中的程序驱动类、IP地址、端口、用户及密码与您配置的 MySQL 环境相对应。
5.5、修改jdbc.properties配置文件
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/simple-jndi/jdbc.properties
SampleData/type=javax.sql.DataSource
SampleData/driver=com.mysql.cj.jdbc.Driver
SampleData/url=jdbc:mysql://master:3306/hibernate
SampleData/user=hibuser
SampleData/password=!QAZ2wsx
Hibernate/type=javax.sql.DataSource
Hibernate/driver=com.mysql.cj.jdbc.Driver
Hibernate/url=jdbc:mysql://master:3306/hibernate
Hibernate/user=hibuser
Hibernate/password=!QAZ2wsx
Quartz/type=javax.sql.DataSource
Quartz/driver=com.mysql.cj.jdbc.Driver
Quartz/url=jdbc:mysql://master:3306/quartz
Quartz/user=pentaho_user
Quartz/password=!QAZ2wsx
Shark/type=javax.sql.DataSource
Shark/driver=com.mysql.cj.jdbc.Driver
Shark/url=jdbc:mysql://master:3306/hbibernate
Shark/user=hibuser
Shark/password=!QAZ2wsx
SampleDataAdmin/type=javax.sql.DataSource
SampleDataAdmin/driver=com.mysql.cj.jdbc.Driver
SampleDataAdmin/url=jdbc:mysql://master:3306/hibernate
SampleDataAdmin/user=hibuser
SampleDataAdmin/password=!QAZ2wsx
5.6、设置 Hibernate
5.6.1、修改hibernate.properties配置文件
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/applicationContext-spring-security-hibernate.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://master:3306/hibernate
jdbc.username=hibuser
jdbc.password=!QAZ2wsx
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
注意:请确保配置文件中的程序驱动类、IP地址、端口、用户及密码与您配置的 MySQL 环境相对应。
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/dialects/mysql5/applicationContext-spring-security-hibernate.properties
5.6.2、修改hibernate-settings.xml配置文件
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/hibernate/hibernate-settings.xml
<!-- 修改前 -->
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
<!-- 修改后 -->
<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
5.6.3、修改mysql5.hibernate.cfg.xml配置文件
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/hibernate/mysql5.hibernate.cfg.xml
<!-- MySQL Configuration -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://master:3306/hibernate</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="connection.username">hibuser</property>
<property name="connection.password">Rongshu@2024</property>
<property name="connection.pool_size">10</property>
<property name="show_sql">false</property>
<property name="hibernate.jdbc.use_streams_for_binary">true</property>
5.7、用 MySQL 版本替换审计日志文件的默认版本
由于使用 MySQL 来托管 Pentaho Repository,所以需要将 audit_sql.xml 配置文件替换为为 MySQL 对应的配置文件。
替换方法:
-
找到 pentaho-solutions/system/dialects/mysql5/audit_sql.xml 文件。
-
将其复制到 pentaho-solutions/system 目录中。
[root@pentaho-server pentaho-server]# cp pentaho-solutions/system/dialects/mysql5/audit_sql.xml pentaho-solutions/system/
5.8、将 Jackrabbit 的配置文件repository.xml的仓库信息配置为 MySQL
[root@pentaho-server pentaho-server]# vim pentaho-solutions/system/jackrabbit/repository.xml
注意:请确保配置文件中的程序驱动类、IP地址、端口、用户及密码与您配置的 MySQL 环境相对应。
注释如下配置:
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository"/>
</FileSystem>
添加如下配置:
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.cj.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="!QAZ2wsx"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="fs_repos_"/>
</FileSystem>
注释如下配置:
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
添加如下配置:
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="!QAZ2wsx"/>
<param name="databaseType" value="mysql"/>
<param name="driver" value="com.mysql.cj.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>
注释如下配置:
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param ${wsp.home}"/>
</FileSystem>
添加如下配置:
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.cj.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="!QAZ2wsx"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="fs_ws_"/>
</FileSystem>
注释如下配置:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
<param name="url" value="jdbc:h2:${wsp.home}/db"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
</PersistenceManager>
添加如下配置:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
<param name="driver" value="com.mysql.cj.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="user" value="jcr_user" />
<param name="password" value="!QAZ2wsx" />
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="${wsp.name}_pm_ws_"/>
</PersistenceManager>
注释如下配置:
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/version" />
</FileSystem>
添加如下配置:
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.cj.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="user" value="jcr_user"/>
<param name="password" value="!QAZ2wsx"/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="fs_ver_"/>
</FileSystem>
注释如下配置:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
<param name="url" value="jdbc:h2:${rep.home}/version/db"/>
<param name="schemaObjectPrefix" value="version_"/>
</PersistenceManager>
添加如下配置:
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
<param name="driver" value="com.mysql.cj.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="user" value="jcr_user" />
<param name="password" value="!QAZ2wsx" />
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="pm_ver_"/>
</PersistenceManager>
注释如下配置:
<Journal class="org.apache.jackrabbit.core.journal.MemoryJournal"/>
添加如下配置:
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="revision" value="${rep.home}/revision.log"/>
<param name="url" value="jdbc:mysql://master:3306/jackrabbit"/>
<param name="driver" value="com.mysql.cj.jdbc.Driver"/>
<param name="user" value="jcr_user"/>
<param name="password" value="!QAZ2wsx"/>
<param name="schema" value="mysql"/>
<param name="databaseType" value="mysql"/>
<param name="janitorEnabled" value="true"/>
<param name="janitorSleep" value="86400"/>
<param name="janitorFirstRunHourOfDay" value="3"/>
</Journal>
5.9、下载 MySQL 的 JDBC 连接驱动,将其上传到/home/lbs/Downloads目录中,然后将其复制到pentaho-server/tomcat/lib目录中
咱们要使用
mysql-connector-j-8.0.33.jar,不要看图片中的
# 删除旧版驱动
[root@pentaho-server software]# rm -rf /home/lbs/software/pentaho-server/tomcat/lib/mysql-connector-java-5.1.17.jar
# 复制新版驱动
[root@pentaho-server software]# cp mysql-connector-j-8.0.33.jar /home/lbs/software/pentaho-server/tomcat/lib/
5.10、修改 Tomcat 配置文件中的 JDBC 连接信息
[root@pentaho-server pentaho-server]# vim tomcat/webapps/pentaho/META-INF/context.xml
注意:请确保配置文件中的程序驱动类、IP地址、端口、用户及密码与您配置的 MySQL 环境相对应。
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
<Resource validationQuery="select 1" url="jdbc:mysql://master:3306/hibernate" driverClassName="com.mysql.cj.jdbc.Driver" password="!QAZ2wsx" username="hibuser" initialSize="0" maxActive="20" maxIdle="10" maxWait="10000" factory="org.apache.commons.dbcp.BasicDataSourceFactory" type="javax.sql.DataSource" auth="Container" name="jdbc/Hibernate"/>
<Resource validationQuery="select 1" url="jdbc:mysql://master:3306/quartz" driverClassName="com.mysql.cj.jdbc.Driver" password="!QAZ2wsx" username="pentaho_user" testOnBorrow="true" initialSize="0" maxActive="20" maxIdle="10" maxWait="10000" factory="org.apache.commons.dbcp.BasicDataSourceFactory" type="javax.sql.DataSource" auth="Container" name="jdbc/Quartz"/>
<Resource name="jdbc/jackrabbit" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" minIdle="0" maxIdle="5" initialSize="0" maxWait="10000" username="jcr_user" password="!QAZ2wsx" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://master:3306/jackrabbit" validationQuery="select 1"/>
</Context>
8、修改start-pentaho.sh启动脚本(有显卡的系统可忽略此步骤)
注意:没有显卡的系统,在第一次启动 Pentaho Server 之前,需要将 -Djava.awt.headless=true 参数添加到 CATALINA_OPTS 参数列表中,整个 CATALINA_OPTS 参数列表如下
[root@pentaho-server pentaho-server]# vim start-pentaho.sh
将CATALINA_OPTS的值替换为
CATALINA_OPTS="-Djava.awt.headless=true -Xms4096m -Xmx6144m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dfile.encoding=utf8 -DDI_HOME="$DI_HOME""
9. 修改端口,防止端口冲突【可选】
- 修改
tomcat/conf/server.xml中的8080端口为18080端口、8005端口为18005端口 - 修改
pentaho-solutions/system/GettingStartedDB.properties中的9092端口为19092端口
四、启动 Pentaho Server
1、到 pentaho-server 的安装目录下执行下面的启动命令
[root@pentaho-server pentaho-server]# ./start-pentaho.sh
2、查看日志是否有报错信息
[root@pentaho-server ~]# tail -fn 500 /home/lbs/software/pentaho-server/tomcat/logs/pentaho.log
3、浏览器访问 节点ip:18080 即可访问到登录页面
4、登录账户,默认用户名 :admin,默认密码:password
5、切换语言为简体中文时会发现日志报如下错误
报错信息:
解决方法:
1、查找messages_zh.properties文件所在的路径
[root@pentaho-server pentaho-server]# find / -name messages_zh.properties
2、查找确实此文件的路径
3、将查找到的messages_zh.properties文件复制到/home/lbs/software/pentaho-server/pentaho-solutions/system/pentaho-cdf-dd/lang/目录中
五、客户端连接测试
1、打开客户端工具,点击右上角的Connect
2、点击Get Started
3、填写相应连接信息后点击Finish
若连接信息正确无误,既可以看到连接已创建且可用的提示信息,然后可以直接点击Connect Now或者点击Finish之后再连接