最近一直在做mondrian的foodmart的实验,有位朋友的公司要部署一个pentaho的demo来做演示,我跟他说直接运行demo就可以
了,但是他们公司非要自己从头配一个,所以我就自己做了一下实验基于最新的1.5.3的,其实步骤都差不多,其他版本也应该可以,希望能给喜欢
pentaho的朋友一点帮助。
1 . 首先需要下载pentaho-j2ee-deployment- , pentaho-data- 和 pentaho-solution- 三个包,分别解压到三个不同的地方
2 . 从命令行进入pentaho-j2ee-deployment 目录,运行ant -p 会列出所有的ant
任务,执行war-pentaho-tomcat-hypersonic任务,成功之后会生成4个war包,pentaho-portal-
layout.war , pentaho-style.war 和 sw-style.war ,(sw-style.war
是steel-wheel-style
,是可选项,可能是pentaho的一个例子或者是pentaho的一种style风格),还有多出一个tomcat目录下的hsqldb目录下有一个
pentaho.war
,如果你执行的是war-pentaho-mysql就是在tomcat目录下有个mysql5目录,里面一样是pentaho.war.我选用的是
hsqldb .
3 . 在你的tomcat的安装目录下找到conf / server.xml 文件,在其中的host 元素下加上如下这一段,这一段是从pentaho的文档里面抄来的,manual-deployment-pentaho- ,其中它列出来的有些多余,这个文档应该使用confluence 用pdf 方式导出的,抄的时候注意检查一下xml 元素排版上的问题.它列出的resource 元素太多了,你查看pentaho-data- 包里面,应该只有四个数据库hibernate,sampledata,shark,quartz ,把不用的resource元素都删掉,(应该是最上面的四个).如果你的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
4 . 把pentaho.war copy到tomcat 的webapps目录下,它会自动解压的,然后关闭tomcat ,
找到pentaho/WEB-INF/web.xml 文件,找到solution-path元素,指向你解压后的pentaho-solution- 目录,注意java里面是用正斜杠 / ,如果你从windows的地址栏copy的话注意把反斜杠改一下.
5 . 修改pentaho/WEB-INF/classes 目录下的log4j.xml文件,把
里面的value改成INFO,或者更高,这一步是可选项,主要是启动的时候出现很多不必要的debug
信息.如果你启动的时候出错了,再改回来。(一般都是solution-path没有找对,我用7-zip解压的时候老是解压到一个新的目录,所以后来指
定 solution-path 的时候,目录地址高了一级.)
6 . 启动pentaho-data- 目录里面的hsqldb数据库.
7 . 这个时候启动tomcat ,应该是不报任何错误的.你把浏览器指向http://localhost:8080/pentaho ,会看到pentaho的界面的,只不过是没有什么颜色的那种.
8 . 把编译後的三个war文件copy到tomcat 的webapps目录下,等它们自动解压之后,再进去看,发现有了样式了。安装就完成了.
贴几张图:
pentaho成功启动后应该有 Pentaho BI 平台服务器就绪 这句话.
安装了style 和 portal 包之后的登录界面
在pentaho-data- 目录的lib 目录下执行java -cp hsqldb.jar org.hsqldb.util.DatabaseManager 出现的hsqldb 的manager 登录画面
用户名和密码都在相应目录的数据库文件里面,hsqldb的数据库文件是可以用
文本编辑器打开的,搜索password就可以找到用户名和密码了
sampledata 里面的数据
我在安装的时候也碰到了诸多的问题,
1 . 一开始编译的时候使用的ant war-pentaho-tomcat
任务,它直接报错,说找不到rdbms目录,后来猜想这个任务应该是留给其他数据库编译的时候扩展的.直接就换了war-pentaho-tomcat-
hypersonic 任务重新编译了一次
2 .
后来从文档里copy出数据源的那句话出错了,导致tomcat启动不了,因为从pdf文件copy的那段话排版有问题,后来把它粘贴到eclipse
(装了WTP插件的)里面,一格式化就看出来了,context 元素和后面的属性path中间的空格没了,还有多出来了几个resource元素.
3 . 指定solution-path的时候目录高了一级.
4 . 启动tomcat的时候出现了很多不必要的debug信息,修改log4j文件就可以了,它在tomcat/bin 目录下还会生成几个log文件,像是server.log 和ReportEngine_.log 文件。
写这篇文章的目的更多的是希望喜欢pentaho的朋友在用pentaho做实验的时候能够学会思考,出现了问题先在网上找资料,而不是无论遇到什么问题都求别人来回答你,知识是长期积累的过程,新技术总是不断的出现,比如最近火的不得了的JavaFX,
也许将来pentaho可能会用JavaFX 来做OLAP 和 DashBoard 也不一定的 。关键还是要掌握学习的方法,学会思考问题 . 我安装的时候也遇到了很多问题,但是只要你细细的分析问题的原因,总是可以找出解决的办法的.