多集群配置
Drill-on-YARN允许您在单个YARN群集上轻松定义多个Drill群集。每个Drill集群都是Drillbits的集合,可作为独立单元使用。例如,您可以在运行较大集群的同一物理集群上定义一个计算机的一个测试集群,例如,开发和市场营销。
drill集群使用ZooKeeper来划分集群,因此必须为每个群集分配不同的ZooKeeper条目。YARN可以在同一物理节点上的不同群集中启动Drillbits,因此每个Drill群集必须使用一组不同的端口。由于每个群集都需要自己的设置,因此必须为每个群集创建一个单独的site目录。以下说明解释了所需的设置。
创建新的site目录
为新群集创建新的site目录。假设您的新群集名称为“second”。使用与以前相同的结构,在主目录下创建一个新的站点目录:
export SECOND_SITE=$MASTER_DIR/second
mkdir $SECOND_SITE
将文件复制到此新站点目录中,就像创建第一个目录一样。您可以复制和修改现有文件集,也可以从头创建site配置。
您至少必须在drill-override.conf中设置以下配置选项:
drill.exec: {
cluster-id: "drillbits",
zk: {
root: "second"
connect: "zkhost: 2181"
}
rpc {
user.server.port: 41010
bit.server.port: 41011
}
http.port: 9047
}
新集群与现有集群的交互方式有两种选择。正常情况是无共享方案,其中两个群集在配置级别完全独立。对于这种情况,请确保zk.root名称与任何现有群集不同。
在更高级的情况下,如果两个群集共享相同的zk.root值,则它们将共享诸如存储插件之类的设置。如果群集共享相同的根,则它们必须具有不同的cluster-id值。
此外,这三个端口必须具有与所有其他集群不同的值。在上面的示例中,我们在默认端口号的第一位添加了1;您可以选择任何可用端口。
如前所述创建drill-on-yarn.conf文件。以下内容必须保证各个集群均不相同:
drill.yarn: {
app-name: "Second Cluster"
dfs: {
app-dir: "/user/drill2"
}
http : {
port: 9048
}
}
也就是说,为您的群集指定一个不同的名称,DFS中的独特上载目录以及不同的端口号。
启动群集
使用第二个集群的站点目录启动集群:
$DRILL_HOME/bin/drill-on-yarn.sh site
$SECOND_SITE start