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

时间:2018-01-16 03:15:31

标签: centos apache-zeppelin

OP答案如下(希望帮助社区)

下面你会看到我的实际答案。 (我发布这个问题是为了传递答案。)我花了一段时间才找到正确的答案,所以我在这里发帖可能加快其他可怜人的努力。

Apache Zeppelin Install仅解释Ubuntu案例

如果您查看Apache's site(自2018年1月起),您将看到有关在Ubuntu OS上设置服务的说明(例如,您可以在启动,重启等时启动的守护进程)。你会发现类似的东西:

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

但是如果你按照那个页面进行标准安装,那么在使用CentOS 7之后,在安装之后默认没有注册zeppelin服务。也就是说,如果你键入类似{{1}的内容该服务将无法找到。

此外,对于我正在使用的CentOS 7,有一个shift towards using systemctl instead。但是尝试service zeppelin start也不起作用(找不到systemctl)。

Zeppelin本身工作正常,只有“自动启动”的麻烦

我可以获得直接可执行调用,例如zeppelin,以便正常工作。但这并不能提供我想要的解决方案。我希望能够知道,如果机器重新启动或其他任何东西,Zeppelin将可用,因为它在开始时启动。

1 个答案:

答案 0 :(得分:5)

挑战搜索

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

然而,this link from InfoWorld成功了。

关键问题

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

  1. 在CentOS 7中,虽然systemctl是理想的,service仍然可以接受。
  2. 无论出于何种原因,zeppelin.service文件不是在CentOS中自动创建的(也可能是* nix的所有非Ubuntu风格?), ,即使是标准的.service文件会很好吗 。所以请继续阅读该链接,但这个故事的重要部分是我需要做以下事情:
    1. 从头开始创建/etc/systemd/system/zeppelin.service文件。
    2. 在该文件中,放置以下内容:
  3. [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链接中对此进行了解释,但also here
    • 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被找到并且有效了。