在tomcat上部署pentaho 1.5.3
最近一直在做mondrian的foodmart的實驗,有位朋友的公司要部署一個pentaho的demo來做演示,我跟他說直接運行demo就可以 了,但是他們公司非要自己從頭配一個,所以我就自己做了一下實驗基于最新的1.5.3的,其實步驟都差不多,其他版本也應(yīng)該可以,希望能給喜歡 pentaho的朋友一點幫助。1 . 首先需要下載pentaho-j2ee-deployment- , pentaho-data- 和 pentaho-solution- 三個包,分別解壓到三個不同的地方
2 . 從命令行進入pentaho-j2ee-deployment 目錄,運行ant -p 會列出所有的ant 任務(wù),執(zhí)行war-pentaho-tomcat-hypersonic任務(wù),成功之后會生成4個war包,pentaho-portal- layout.war , pentaho-style.war 和 sw-style.war ,(sw-style.war 是steel-wheel-style ,是可選項,可能是pentaho的一個例子或者是pentaho的一種style風(fēng)格),還有多出一個tomcat目錄下的hsqldb目錄下有一個 pentaho.war ,如果你執(zhí)行的是war-pentaho-mysql就是在tomcat目錄下有個mysql5目錄,里面一樣是pentaho.war.我選用的是 hsqldb .
3 . 在你的tomcat的安裝目錄下找到conf / server.xml 文件,在其中的host 元素下加上如下這一段,這一段是從pentaho的文檔里面抄來的,manual-deployment-pentaho- ,其中它列出來的有些多余,這個文檔應(yīng)該使用confluence 用pdf 方式導(dǎo)出的,抄的時候注意檢查一下xml 元素排版上的問題.它列出的resource 元素太多了,你查看pentaho-data- 包里面,應(yīng)該只有四個數(shù)據(jù)庫hibernate,sampledata,shark,quartz ,把不用的resource元素都刪掉,(應(yīng)該是最上面的四個).如果你的tomcat啟動不了了,檢查一下你添加的部分是不是有錯。
1
2 <Context path="/pentaho" docbase="webapps/pentaho/">
3 <Resource name="jdbc/SampleData" auth="Container"
4 type="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000"
5 username="pentaho_user" password="password"
6 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
7 driverClassName="org.hsqldb.jdbcDriver"
8 url="jdbc:hsqldb:hsql://localhost/sampledata" />
9 <Resource name="jdbc/Hibernate" auth="Container"
10 type="javax.sql.DataSource"
11 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
12 maxActive="20" maxIdle="5" maxWait="10000" username="hibuser"
13 password="password" driverClassName="org.hsqldb.jdbcDriver"
14 url="jdbc:hsqldb:hsql://localhost/hibernate" />
15 <Resource name="jdbc/Quartz" auth="Container"
16 type="javax.sql.DataSource"
17 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
18 maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user"
19 password="password" driverClassName="org.hsqldb.jdbcDriver"
20 url="jdbc:hsqldb:hsql://localhost/quartz" />
21 <Resource name="jdbc/Shark" auth="Container"
22 type="javax.sql.DataSource"
23 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
24 maxActive="20" maxIdle="5" maxWait="10000" username="sa" password=""
25 driverClassName="org.hsqldb.jdbcDriver"
26 url="jdbc:hsqldb:hsql://localhost/shark" />
27 </Context>
28
2 <Context path="/pentaho" docbase="webapps/pentaho/">
3 <Resource name="jdbc/SampleData" auth="Container"
4 type="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000"
5 username="pentaho_user" password="password"
6 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
7 driverClassName="org.hsqldb.jdbcDriver"
8 url="jdbc:hsqldb:hsql://localhost/sampledata" />
9 <Resource name="jdbc/Hibernate" auth="Container"
10 type="javax.sql.DataSource"
11 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
12 maxActive="20" maxIdle="5" maxWait="10000" username="hibuser"
13 password="password" driverClassName="org.hsqldb.jdbcDriver"
14 url="jdbc:hsqldb:hsql://localhost/hibernate" />
15 <Resource name="jdbc/Quartz" auth="Container"
16 type="javax.sql.DataSource"
17 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
18 maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user"
19 password="password" driverClassName="org.hsqldb.jdbcDriver"
20 url="jdbc:hsqldb:hsql://localhost/quartz" />
21 <Resource name="jdbc/Shark" auth="Container"
22 type="javax.sql.DataSource"
23 factory="org.apache.commons.dbcp.BasicDataSourceFactory"
24 maxActive="20" maxIdle="5" maxWait="10000" username="sa" password=""
25 driverClassName="org.hsqldb.jdbcDriver"
26 url="jdbc:hsqldb:hsql://localhost/shark" />
27 </Context>
28
4 . 把pentaho.war copy到tomcat 的webapps目錄下,它會自動解壓的,然后關(guān)閉tomcat , 找到pentaho/WEB-INF/web.xml 文件,找到solution-path元素,指向你解壓后的pentaho-solution- 目錄,注意java里面是用正斜杠 / ,如果你從windows的地址欄copy的話注意把反斜杠改一下.
5 . 修改pentaho/WEB-INF/classes 目錄下的log4j.xml文件,把
6 . 啟動pentaho-data-
7 . 這個時候啟動tomcat ,應(yīng)該是不報任何錯誤的.你把瀏覽器指向http://localhost:8080/pentaho ,會看到pentaho的界面的,只不過是沒有什么顏色的那種.
8 . 把編譯後的三個war文件copy到tomcat 的webapps目錄下,等它們自動解壓之后,再進去看,發(fā)現(xiàn)有了樣式了。安裝就完成了.
貼幾張圖:
pentaho成功啟動后應(yīng)該有 Pentaho BI 平臺服務(wù)器就緒 這句話.

安裝了style 和 portal 包之后的登錄界面

在pentaho-data-
用戶名和密碼都在相應(yīng)目錄的數(shù)據(jù)庫文件里面,hsqldb的數(shù)據(jù)庫文件是可以用
文本編輯器打開的,搜索password就可以找到用戶名和密碼了

sampledata 里面的數(shù)據(jù)

我在安裝的時候也碰到了諸多的問題,
1 . 一開始編譯的時候使用的ant war-pentaho-tomcat 任務(wù),它直接報錯,說找不到rdbms目錄,后來猜想這個任務(wù)應(yīng)該是留給其他數(shù)據(jù)庫編譯的時候擴展的.直接就換了war-pentaho-tomcat- hypersonic 任務(wù)重新編譯了一次
2 . 后來從文檔里copy出數(shù)據(jù)源的那句話出錯了,導(dǎo)致tomcat啟動不了,因為從pdf文件copy的那段話排版有問題,后來把它粘貼到eclipse (裝了WTP插件的)里面,一格式化就看出來了,context 元素和后面的屬性path中間的空格沒了,還有多出來了幾個resource元素.
3 . 指定solution-path的時候目錄高了一級.
4 . 啟動tomcat的時候出現(xiàn)了很多不必要的debug信息,修改log4j文件就可以了,它在tomcat/bin 目錄下還會生成幾個log文件,像是server.log 和ReportEngine_.log 文件。
寫這篇文章的目的更多的是希望喜歡pentaho的朋友在用pentaho做實驗的時候能夠?qū)W會思考,出現(xiàn)了問題先在網(wǎng)上找資料,而不是無論遇到什么問題都求別人來回答你,知識是長期積累的過程,新技術(shù)總是不斷的出現(xiàn),比如最近火的不得了的JavaFX,
也許將來pentaho可能會用JavaFX 來做OLAP 和 DashBoard 也不一定的 。關(guān)鍵還是要掌握學(xué)習(xí)的方法,學(xué)會思考問題 . 我安裝的時候也遇到了很多問題,但是只要你細(xì)細(xì)的分析問題的原因,總是可以找出解決的辦法的.