in bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/v3_3_0/zookeeper/ZookeeperSetup.java [42:99]
public static ShellResult configure(Params params) {
log.info("Configuring ZooKeeper");
ZookeeperParams zookeeperParams = (ZookeeperParams) params;
String confDir = zookeeperParams.confDir();
String zookeeperUser = zookeeperParams.user();
String zookeeperGroup = zookeeperParams.group();
Map<String, Object> zookeeperEnv = zookeeperParams.zookeeperEnv();
Map<String, Object> zooCfg = zookeeperParams.zooCfg();
List<String> zkHostList = LocalSettings.hosts("zookeeper_server");
LinuxFileUtils.createDirectories(
zookeeperParams.getZookeeperDataDir(), zookeeperUser, zookeeperGroup, Constants.PERMISSION_755, true);
LinuxFileUtils.createDirectories(
zookeeperParams.getZookeeperLogDir(), zookeeperUser, zookeeperGroup, Constants.PERMISSION_755, true);
LinuxFileUtils.createDirectories(
zookeeperParams.getZookeeperPidDir(), zookeeperUser, zookeeperGroup, Constants.PERMISSION_755, true);
// server.${host?index+1}=${host}:2888:3888
zkHostList.sort(String::compareToIgnoreCase);
StringBuilder zkServerStr = new StringBuilder();
for (String zkHost : zkHostList) {
zkServerStr
.append(MessageFormat.format("server.{0}={1}:2888:3888", zkHostList.indexOf(zkHost) + 1, zkHost))
.append("\n");
}
LinuxFileUtils.toFile(
ConfigType.CONTENT,
MessageFormat.format("{0}/myid", zookeeperParams.getZookeeperDataDir()),
zookeeperUser,
zookeeperGroup,
Constants.PERMISSION_644,
zkHostList.indexOf(NetUtils.getHostname()) + 1 + "");
HashMap<String, Object> map = new HashMap<>(zooCfg);
map.remove("content");
Map<String, Object> paramMap = Map.of("zk_server_str", zkServerStr.toString(), "security_enabled", false);
LinuxFileUtils.toFileByTemplate(
zooCfg.get("content").toString(),
MessageFormat.format("{0}/zoo.cfg", confDir),
zookeeperUser,
zookeeperGroup,
Constants.PERMISSION_644,
Map.of("model", map),
paramMap);
LinuxFileUtils.toFileByTemplate(
zookeeperEnv.get("content").toString(),
MessageFormat.format("{0}/zookeeper-env.sh", confDir),
zookeeperUser,
zookeeperGroup,
Constants.PERMISSION_644,
zookeeperParams.getGlobalParamsMap());
log.info("Successfully configured ZooKeeper");
return ShellResult.success();
}