有人知道如何在dataproc上安装zookeeper的最新版本作为zookeepeper仲裁模式吗。而集群创建。
On latest dataproc version 2.0 (Debian 10, Hadoop 3.2, Spark 3.1)
在dataproc上安装zookeeper有两种方法,一种是使用初始化操作脚本,另一种方法是在创建集群时选择可选组件zookeeper。
我面临的两种方式的问题都是不安装最新版本3.6.3,而是安装版本3.4。对于我的用例,我需要最新的zookeeper仲裁模式。
当我使用可选组件ZOOKEEPER时,我注意到一件奇怪的事情,它没有形成ZOOKEEPER quorum,而是作为独立模式安装在主节点和所有从属节点中但是,在创建集群时使用初始化操作脚本时,它确实形成了zookeeper quorum,但仍然是3.4。仅适用于而非最新版本3.6.3感谢的任何帮助
有几个选项:
-
创建一个自定义映像并卸载映像中的默认ZooKeeper,然后安装自己的映像。
-
忽略默认的ZooKeeper,不要选择可选组件,而是使用类似于此的init操作来安装和启动您自己的ZooKeeper服务。
要创建自己的ZooKeeper服务,请检查默认的ZooKeeper单元文件,并相应地进行修改:
$ systemctl cat zookeeper-server.service
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/zookeeper-server
Description=LSB: ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=network-online.target
After=nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/zookeeper/zookeeper_server.pid
SuccessExitStatus=5 6
ExecStart=/etc/init.d/zookeeper-server start
ExecStop=/etc/init.d/zookeeper-server stop
# /etc/systemd/system/zookeeper-server.service.d/restart.conf
[Unit]
StartLimitIntervalSec=0
[Service]
Restart=on-failure
将您自己的单元文件放在例如/usr/lib/systemd/system/zookeeper-server.service
,然后运行sudo systemctl daemon-reload
和sudo systemctl start zookeeper-server
。