【发布时间】:2018-03-15 17:15:44
【问题描述】:
其实我已经成功搭建了一个pentaho社区集群,在Pentaho Official Docs和Pentaho in High Availability部署嵌入tomcat 8,并使用apache2作为反向代理。
我的设置:
- 第一个节点:pentaho server ce 7.1 Embedded tomcat 8
- 第二个节点:pentaho server ce 7.1 Embedded tomcat 8
- Web 服务器:apache2 http 反向代理
- 数据库:postgresql 9.4
每台运行在不同的服务器上,它们之间没有防火墙,同一个网络,可以保证没有网络或防火墙问题。
我可以启动集群,我可以 ping 两台服务器,我可以通过反向代理访问它们。我可以测试两者都在使用反向代理,因为我关闭了其中一个,而另一个继续回答(由于粘性功能而丢失会话)。
全部安装后,我决定手动迁移所有用户、权限、文件和计划任务。当我创建一个用户时,我可以看到在两个实例中创建的用户(通过 ip 而不是通过反向代理访问它们),此时一切正常。
但是当我上传文件,或从存储库浏览器创建/删除文件/文件夹时,我无法在两个节点中看到这些更改,仅在活动会话的节点中。
Pentaho 日志没有显示任何错误,据我所知,每个节点都有自己的文件存储库,所以我再次查看了所有配置文件,并且可以验证文档中指定的所有内容都已更改为使用 postgresql。
搜索后,我倾向于认为,在集群模式下,文件存储库 (jackrabbit) 不会对所有节点都“唯一”,我的意思是,每个节点将继续拥有自己的文件存储库,至就是没时间,因为我的团队直接上传报表到bi服务器,而且他们使用的是反向代理,而不是通过ip访问。
我想建立数据库,它会统一存储库,所以,我可以获取一个数据库存储库中的所有文件和文件夹,而不是每个节点。
如果不是正确的方法,有没有办法在集群模式下使用唯一的文件系统存储库?
感谢您的关注。
【问题讨论】:
-
实际上,我能够验证同一个文件在两台服务器中都复制了,我认为它在数据库中,但不是实时的,我需要重新启动 tomcat 以刷新数据库,但我不知道它需要激活的条件。
-
每个 Pentaho 服务器都有自己的 pentaho-solution,它是一个文件目录,其中包含您的报告、仪表板、连接、用户、访问权限的定义。 Jackrabbit 是一种 Apache 技术,用于将一台服务器上的所有更改复制到其他服务器。这需要一些时间,因为数据需要在整个过程中被冻结,因此它在后台透明地完成。据我所知,您无法控制周期,但 help.pentaho.com/Documentation/8.0/Setup/Administration/…
-
哇,部署手册中没有说明,但是postgresql数据库的目的是什么?我一直在创建文件夹并删除它们,只是看着它永远不会同步,直到我重新启动 2 个节点中的一些节点。日志上没有错误,启动时没有错误,毕竟没有同步。找不到另一种获取统一存储库的方法。感谢您的回答@AlainD
-
每次我这样做时,它从一开始就可以正常工作(诚然,在配置 xml 中经过几个小时之后)。我猜这个问题更可能出在 Jackrabbit 而不是 Pentaho 中。阅读 Jackrabbit 文档并非毫无用处。祝你好运。
标签: cluster-computing load-balancing pentaho kettle postgresql-9.4