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

问题描述 投票:0回答:1

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 将可用,因为它会在启动时启动。

centos apache-zeppelin
1个回答
7
投票

具有挑战性的搜索

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

然而,InfoWorld 的这个链接却成功了。


关键问题

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

    在 CentOS 7 中,虽然
  1. systemctl
     是理想的,但 
    service
     仍然可以接受。
  2. 无论出于何种原因,
  3. zeppelin.service
    文件都不会在CentOS中自动创建(也许所有非Ubuntu版本的*nix?),
    即使标准的.service
    文件可以正常工作
    。因此,请继续阅读该链接,但这个故事的重要部分是我需要执行以下操作:
      从头开始创建一个
    1. /etc/systemd/system/zeppelin.service
       文件。
    2. 在该文件中,放置以下内容:
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
    :与上面的想法相同。

注册新服务

然后最后一点“魔法”就是输入:

systemctl daemon-reload
这是关键点。如果这意味着什么的话,它类似于输入 

source ~/.bash_profile

。这就是您所说的实际上刷新所有守护进程的行。

最后,我建议明确输入

service zeppelin start
以便您确定已找到它。假设它确实做了一些事情(例如,您看到类似 

Zeppelin start [ OK ]

Redirecting to /bin/systemctl start zeppelin.service
 之类的东西...无论哪种情况,您都知道 
service
 已找到并起作用)。

© www.soinside.com 2019 - 2024. All rights reserved.