Как стать автором
Обновить

Запуск и настройка Pentaho server с базой MSSQL

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.4K

В этой статье описаны действия по установке MS SQL в качестве базы данных хоста для сервера Pentaho в архивной установке Pentaho.

Установить Java и переменные среды

Вам необходимо установить 11 версию Java. Возможно с другими версиями тоже будет работать.

Создайте или исправьте переменные

Должны быть такие.

PENTAHO_JAVA_HOME= C:\Program Files\Java\jdk-11

JAVA_HOME= C:\Program Files\Java\jdk-11

Важно.

Это надо сделать вначале. Если вы после запуска Pentaho сервера поменяете переменные среды. То получите ошибку при следующем запуске Pentaho сервера.

Это связано с тем что при первом запуске сервер создает настройки из папки \pentaho-server\pentaho-solutions\system\karaf. при изменении переменных настройки слетают. Лечится или переустановкой сервера или заменой паки karaf на свежую из архива.

 

Создание баз данных в  MS SQL Server Pentaho

Чтобы инициализировать MS SQL Server, чтобы он служил репозиторием Pentaho, вам потребуется запустить несколько сценариев SQL для создания баз данных на сервере

  • Hibernate

  • Quartz

  • Jackrabbit

Внимание! При запуске этих сценариев используйте набор символов ASCII. Не используйте UTF-8, так как существуют ограничения на длину текстовой строки, которые могут привести к сбою сценариев.

Шаг 1. Настройте параметры конфигурации MS SQL Server.

Настройте следующие параметры MS SQL Server в Microsoft SQL Server Management Studio или другом инструменте по вашему выбору.

  • Выберите SQL Server и режим аутентификации Windows , чтобы использовать смешанную аутентификацию.

  • Включите TCP/IP для MS SQL Server.

  • Проверьте что бы порт был 1433

Шаг 2. Создание баз данных на сервере

Запустите сценарии SQL, указанные в таблице ниже.

Скрипты для создания БД лежат в папке \pentaho-server\data\sqlserver

Запустите эти сценарии из окна утилиты sqlcmd или из Microsoft SQL Server Management Studio.

Создать Quartz          -i <путь к файлу DDL>/create_quartz_sqlServer.sql

Создать Hibernate     -i <путь к файлу DDL>/create_repository_sqlServer.sql

Создать Jackrabbit     -i <путь к файлу DDL>/create_jcr_sqlServer.sql

Шаг 3. Проверьте инициализацию MS SQL Server

После запуска сценариев выполните следующие шаги, чтобы убедиться, что базы данных и роли пользователей созданы:

  1. Откройте Студию управления MS SQL Server.

  2. В разделе окна «Обозреватель объектов» убедитесь, что присутствуют базы данных Quartz, Jackrabbit, Hibernate .

  3. Перейдите к разделу «Безопасные  входы» и убедитесь, что были созданы соответствующие пользователи.

  4. Выйдите из инструмента MS SQL Server Management Studio.

Загрузите драйвер и примените его к серверу Pentaho

Чтобы подключиться к базе данных, включая базу данных репозитория Pentaho, вам необходимо загрузить драйвер JDBC.

Важно официальные драйвера JDBC  от Microsoft подключить не удалось. Pentaho с ними не хочет работает.

Будет использован драйвер JTDS скачать https://sourceforge.net/projects/jtds/files/

Версия jtds-1.3.1.jar

Скачайте драйвер и положите его в tomcat папку lib по адресу pentaho-server\tomcat\lib

Настройка баз данных репозитория MS SQL Server Pentaho

Редактируем файлы для настройки Quartz, Hibernate, Jackrabbit для базы данных MS SQL Server.

Редактируем файлы в папках Quartz, Hibernate, Jackrabbit которые лежат

 pentaho-server \pentaho-solutions\system

Шаг 1. Настройка Quartz на MS SQL Server

Информация о событиях, например запланированные отчеты, хранится в Quartz JobStore. В процессе установки вы должны указать, где находится JobStore, изменив файл quartz.properties .

  1. Откройте файл  pentaho-server/pentaho-solutions/system/quartz/quartz.properties в любом текстовом редакторе.

  2. Найдите раздел #_replace_jobstore_properties и установите org.quartz.jobStore.driverDelegateClass, как показано:

    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate

  3. Найдите раздел # Настройка источников данных и установите для org.quartz.dataSource.myDS.jndiURL значение Quartz , как показано (обычно этот параметр уже установлен):

    org.quartz.dataSource.myDS.jndiURL = Quartz

  4. Сохраните файл и закройте текстовый редактор.

Шаг 2. Настройка Hibernate для MS SQL Server

Шаг 1

Измените файл настроек Hibernate, чтобы указать, где Pentaho должен найти файл конфигурации Hibernate репозитория Pentaho. В файле конфигурации Hibernate указана информация о драйвере и соединении, а также диалекты и способы обработки закрытия соединений и тайм-аутов.

Файлы в этом разделе расположены в каталоге  pentaho-server/pentaho-solutions/system/hibernate .

Выполните следующие шаги, чтобы указать, где Pentaho может найти файл конфигурации Hibernate.

  1. Откройте файл hibernate-settings.xml в текстовом редакторе

  2. Найдите теги  <config-file>  и измените

                <config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>

    на

                <config-file>system/hibernate/sqlserver.hibernate.cfg.xml</config-file>

  3. Сохраните и закройте файл.

Шаг 2

Измените файл конфигурации.

Найдите в файле конфигурации строку

<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>

Замените на

<property name="connection.driver_class"> net.sourceforge.jtds.jdbc.Driver</property>

Закомментируйте строку


<mapping resource="hibernate/sqlserver.EE.hbm.xml" />
и
<mapping resource="hibernate/sqlserver.hbm.xml" />

Шаг 3. Настройка Jackrabbit для MS SQL Server

Отредактируйте следующий код, чтобы изменить репозиторий Jackrabbit по умолчанию на MS SQL Server.

Перейдите к pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit и откройте файл repository.xml в любом текстовом редакторе.

В этом файле указаны настройки для MySQL, Oracle, MS SQL,  PostgreSQL и для базы данных по умолчанию HSQLDB.

при этом настройки для MySQL, Oracle, MS SQL,  PostgreSQL закомментированы а для HSQLDB раскомментированые.

Задача строки относящиеся к HSQLDB закомментировать а для mssql раскомментировать.

Элемент

Раздел кода

Репозиторий

Раскомментировать

<FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
    <param name="driver" value="javax.naming.InitialContext"/>
    <param name="url" value="java:comp/env/jdbc/jackrabbit"/>
    <param name="schema" value="mssql"/>
    <param name="schemaObjectPrefix" value="fs_repos_"/>
  </FileSystem>

 Закометировать

<FileSystem class= "org.apache.jackrabbit.core.fs.local.LocalFileSystem">
     <param name="path" value="${rep.home}/repository"/>
  </FileSystem>

Хранилище данных

Раскомментировать

<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
    <param name="driver" value="javax.naming.InitialContext"/>
    <param name="url" value="java:comp/env/jdbc/jackrabbit"/>
    <param name="databaseType" value="mssql"/>
    <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>

Закометировать

<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>

Рабочие пространства

Раскомментировать

<FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="url" value="java:comp/env/jdbc/jackrabbit"/>
      <param name="schema" value="mssql"/>
      <param name="schemaObjectPrefix" value="fs_ws_"/>
    </FileSystem>

Закометировать

<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
      <param name="path" value="${wsp.home}"/>
</FileSystem>

PersistenceManager (1-я часть)

Раскомментировать

<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager">
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="url" value="java:comp/env/jdbc/jackrabbit"/>
      <param name="schema" value="mssql"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_pm_ws_"/>
    </PersistenceManager>

 Закометировать

<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>

Управление версиями

Раскомментировать

<FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="url" value="java:comp/env/jdbc/jackrabbit"/>
      <param name="schema" value="mssql"/>
      <param name="schemaObjectPrefix" value="fs_ver_"/>
    </FileSystem>

 Закометировать

<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
      <param name="path" value="${rep.home}/version" />   
</FileSystem>

PersistenceManager (2-я часть)

Раскомментировать

<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager">
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="url" value="java:comp/env/jdbc/jackrabbit"/>
      <param name="schema" value="mssql"/>
      <param name="schemaObjectPrefix" value="pm_ver_"/>
</PersistenceManager>

Закометировать

<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>

Шаг 4. Меняем подключение

Редактируем файл applicationContext-spring-security-hibernate.properties

По адресу pentaho-server\pentaho-solutions\system\ applicationContext-spring-security-hibernate.properties

Удаляем все из файла и вставляем

jdbc.driver=net.sourceforge.jtds.jdbc.Driver

jdbc.url=jdbc:jtds:sqlserver://localhost/hibernate

jdbc.username=hibuser

jdbc.password=password

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

Редактируем файлы Tomcat

Измените информацию о соединении JDBC в XML-файле Tomcat

Информация о соединении с базой данных и сетевая информация, такая как имя пользователя, пароль, информация о классе драйвера, IP-адрес или имя домена, а также номера портов для вашей базы данных репозитория Pentaho, хранятся в файле context.xml Измените этот файл, чтобы отразить подключение к базе данных и сетевую информацию для вашей операционной среды.

Внимание! Если у вас есть пользователь или пароль, обязательно измените пароль и номер порта в этих примерах, чтобы они соответствовали тем, которые указаны в вашей среде конфигурации.

  1. Перейдите в каталог  pentaho-server/tomcat/webapps/pentaho/META-INF и откройте файл context.xml в любом текстовом редакторе.

  2. Замените код в файле на  следующий.

    <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
    factory="org.pentaho.di.core.database.util.DecryptingDataSourceFactory" maxActive="20" minIdle="0" maxIdle="5" initialSize="0" maxWait="10000"
    username="hibuser" password="password"

    driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://localhost/hibernate" validationQuery=" select 1" />                     

    <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
    factory="org.pentaho.di.core.database.util.DecryptingDataSourceFactory" maxActive="20" minIdle="0" maxIdle="5" initialSize="0" maxWait="10000"
    username="pentaho_user" password="password"

    driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://localhost/quartz" validationQuery="select 1"/>

     <Resource name="jdbc/jackrabbit" auth="Container" type="javax.sql.DataSource"
    factory="org.pentaho.di.core.database.util.DecryptingDataSourceFactory" maxActive="20" minIdle="0" maxIdle="5" initialSize="0" maxWait="10000"
    username="jcr_user" password="password"

    driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://localhost/jackrabbit" validationQuery="select 1"/>

 

Отключаем запуск БД HSQLDB

1. Перейдите в каталог  pentaho-server/tomcat/webapps/pentaho/WEB-INF и откройте файл web.xml в любом текстовом редакторе.

2.   Закоментируйте строки

<!-- [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] -->

И

  <!-- [BEGIN HSQLDB STARTER] -->

<listener>

    <listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class>

  </listener>

  <!-- [END HSQLDB STARTER] -->

Запуск

Запускаем файлом start-pentaho.bat из корневой папки. Первый запуск долгий так как происходят настройки сервера.

Важно Tomcat запускается на порту 8005 если tomcat не запускается (сразу отключается)  возможно порт 8005 занят.

Отредактируйте в файле pentaho-server \tomcat\conf.xml

Строку <Server port="8005" shutdown="SHUTDOWN">

Замените port="8005" на свободный порт например 8006

Открываем

В браузере в адресной строке адрес http://localhost:8080
По умолчанию
логин: admin
пароль: password

Теги:
Хабы:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Публикации

Работа

Ближайшие события