Kylin实例是无状态的,运行时状态保存在hbase中的“Metadata Store”中(kylin.metadata.url 在conf/kylin.properties中配置)。为了考虑负载均衡,可以启动多个Kylin实例并共享其“metadata store”(例如table schemas, job 状态, cube 状态等)。
每一个Kylin实例在其conf/kylin.properties中通过kylin.server.mode选项指定了其所属的一种运行模式, 它有以下三个选项:
- “job” 仅运行作业引擎
- “query” 仅运行查询引擎
- “all”同时运行作业引擎和查询引擎
典型场景如下图所示:
设置多个Kylin REST服务器
如果在有多个Kylin REST Server实例的群集中运行Kylin,请确保在$ {KYLIN_HOME}/conf/kylin.properties中为每个server实例正确配置了如下属性:
- kylin.rest.servers
正在使用中的web server 列表,该选项使得一个web服务器实例可以与其他server实例进行数据同步。 例如: kylin.rest.servers=sandbox1:7070,sandbox2:7070
- kylin.server.mode
确保只有一个Kylin实例的“kylin.server.mode”属性被设置为“all”(或“job”),其他实例均为“query”。
设置负载均衡器
启用Kylin高可用特性需要在这些服务器前设置一个负载均衡器,使得传入的请求可以路由到集群。 客户端将所有请求发送到负载均衡器,而不是与特定实例进行会话。
转载请注明:雪后西塘 » Kylin 集群部署模式