如何设置Zeppelin使其成为CentOS上启动服务的一部分?

Mik*_*son 2 centos apache-zeppelin

OP解答(希望对社区有所帮助)

在下面,您将看到我的实际答案。(我正在发布此问题以传递答案。)我花了一段时间找到正确的答案,因此我在此处发布以可能加快其他可怜人的努力。


Apache Zeppelin仅安装说明了Ubuntu案例

如果您查看Apache的站点(截至2018年1月),则会看到有关在Ubuntu OS上设置服务(例如,可以在启动,重新启动等时启动的守护程序)的说明。您会发现类似:

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

但是,如果您按照该页面进行标准安装,则zeppelin在使用CentOS 7时,安装后默认情况下将没有注册的服务。也就是说,如果您键入类似的service zeppelin start服务,将找不到该服务。

此外,对于我正在使用的CentOS 7,已经朝着systemctl改为使用转变。但是尝试systemctl也没有用(zeppelin未找到)。


齐柏林飞艇本身工作正常,只有通过“自动启动”才能解决问题

我可以直接执行调用,例如./bin/zeppelin-daemon.sh start,以正常工作。但这并没有提供我想要的解决方案。我想知道,如果计算机重新启动或其他任何操作,齐柏林飞艇将可用,因为它是在启动时启动的。

Mik*_*son 6

具有挑战性的搜索

我认为“真相一定要存在”,但是搜索中的许多路径都没有帮助。

但是,InfoWorld的此链接可以解决问题


关键问题

总而言之,我需要了解两个问题:

  1. 在CentOS 7中,虽然systemctl理想,service但仍然可以接受。
  2. 无论出于何种原因,即使标准文件可以正常运行zeppelin.service.service不会在CentOS中自动创建该文件(也许还不是* nix的所有非Ubuntu版本)。因此,请继续阅读该链接,但是这个故事的重要部分是我需要执行以下操作:
    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,yada,yada ...该链接包含有关步骤的更多信息)。
  • ExecStart:这是关键线;您需要确保每次输入时service zeppelin start,它都指向该路径,即您输入的路径ExecStart
  • ExecStop:与上述相同。

注册新服务

然后输入“ magic”的最后一位:

systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)

这是关键。source ~/.bash_profile如果有任何意义,它类似于键入。这是您要说的行,实际上是刷新所有守护程序。

最后,我建议明确键入

service zeppelin start
Run Code Online (Sandbox Code Playgroud)

以便您确定找到它。假设它实际上在执行某项操作(例如,您看到类似的东西,Zeppelin start [ OK ]或者Redirecting to /bin/systemctl start zeppelin.service……在任何情况下,您都知道service找到并工作了)。