如何在CentOS上设置Zeppelin为启动服务?

3

以下是OP的答案(希望能帮助社区)

下面是我的实际答案。(我发布这个问题是为了传递答案。)我花了一些时间才找到正确的答案,所以我在这里发布,以便其他可怜的灵魂可以更快地找到答案。


Apache Zeppelin 安装仅解释了 Ubuntu 情况

如果你查看Apache 的网站(截至 2018 年 1 月),你会看到关于在 Ubuntu 操作系统上设置服务(例如,在启动、重启等时自动启动的守护进程)的说明。你会看到类似于:

sudo service zeppelin start
sudo service zeppelin stop
sudo service zeppelin restart

但如果按照该页面的标准安装进行操作,则在使用 CentOS 7 时,默认情况下没有注册 zeppelin 服务。也就是说,如果你输入像 service zeppelin start 这样的命令,该服务将无法找到。

此外,对于我正在使用的 CentOS 7,有一个向使用 systemctl 的转变。但是尝试使用 systemctl 也不起作用(找不到 zeppelin)。


Zeppelin 本身工作正常,只有 "自动启动" 有问题

我可以正常调用直接可执行文件,例如 ./bin/zeppelin-daemon.sh start。但这并没有提供我想要的解决方案。我希望能够知道如果机器重新启动或发生其他情况,Zeppelin 将可用,因为它会在启动时自动启动。

1个回答

7

具有挑战性的搜索

我认为“真相必须在那里”,但是我的搜索中许多路径都没有帮助。

然而,来自InfoWorld的这个链接解决了问题。


关键问题

总之,我需要理解2个问题:

  1. 在CentOS 7中,虽然systemctl是理想的,但service仍然可接受。
  2. 出于某种原因,在CentOS(以及所有非Ubuntu flavor的*nix?)中,即使标准的.service文件可以正常工作,zeppelin.service文件也不会自动创建。 因此,请继续阅读该链接,但对于本故事的重要部分,我需要执行以下操作:
    1. 从头开始创建/etc/systemd/system/zeppelin.service文件。
    2. 在该文件中,放置以下内容:

[Unit] Description=Service to run Zeppelin Daemon Documentation= [Service] User=zeppelin Group=zeppelin Type=forking WorkingDirectory=/home/zeppelin ExecStart=/home/zeppelin/zeppelin-current/bin/zeppelin-daemon.sh start ExecStop=/home/zeppelin/zeppelin-current/bin/zeppelin-daemon.sh stop [Install] WantedBy=multi-user.target


一些细节

大部分内容可能是不言自明的(链接文章也没有过度解释细节),但这里有一个细节说明:

  • User=zeppelin: 在这种情况下,Zeppelin实例被设置为多用户,在服务器上远程登录。如果你想在重新启动后自动启动Zeppelin,那么你可能有相同的用例。
    • 因此,您“应该”创建一个用户zeppelin(任何通用用户均可用于Zeppelin软件),这在InfoWorld链接中有解释,但也可以在这里找到更多信息。
  • Group=zeppelin: 与上述相同。
  • WorkingDirectory: 与上述相同(创建一个用户zeppelin,在那里安装Zeppelin,等等...链接中有更多步骤信息)。
  • ExecStart: 这是关键行;您需要确保每当输入service zeppelin start时,它都指向此路径,即您放置在ExecStart中的路径。
  • ExecStop: 与上述思路相同。

注册新服务

最后一点“魔法”是键入:

systemctl daemon-reload

这是重点。类比于输入 source ~/.bash_profile,如果您知道这意味着什么的话。这一行代码的作用是刷新所有守护进程。
最后,我建议明确地输入。
service zeppelin start

确保找到了服务,以便您确定它存在。假设它实际上有作用(例如,您看到像 Zeppelin start [ OK ] 或者 Redirecting to /bin/systemctl start zeppelin.service 这样的东西...在任何一种情况下,您都知道已经找到并且运行了该 service)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接