【问题标题】:Set up kafka.service and zookeeper.service in AWS EC2 Ubuntu在 AWS EC2 Ubuntu 中设置 kafka.service 和 zookeeper.service
【发布时间】:2021-08-27 19:39:54
【问题描述】:

在我自己的Ubuntu 20.04机器上,用户kafka,我可以成功设置以下服务文件(参考this tutorial):

sudo vi /etc/systemd/system/zookeeper.service

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

sudo vi /etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > ~/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

然后成功启动Kafka并检查其状态:

sudo systemctl start kafka
sudo systemctl status kafka

现在我想在 AWS EC2 Ubuntu 实例中设置相同的文件夹结构:

sudo vi /etc/systemd/system/zookeeper.service
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/kafka/bin/zookeeper-server-start.sh /home/ubuntu/kafka/config/zookeeper.properties
ExecStop=/home/ubuntu/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
sudo vi /etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=ubuntu
ExecStart=/bin/sh -c '/home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties > /home/ubuntu/kafka/kafka.log 2>&1'
ExecStop=/home/ubuntu/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

根据AWS documentubuntu 是我的 AWS EC2 Ubuntu AMI 用户名。

但是当我启动 kafka.service 时,出现以下错误:

kafka.service
     Loaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2021-06-10 18:58:26 UTC; 7s ago
    Process: 40816 ExecStart=/bin/sh -c /home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties > /home/ubuntu/kafka/kafka.log 2>&1 (code=exited, status=2)
   Main PID: 40816 (code=exited, status=2)

Jun 10 18:58:26 ip-xxx-xx-xx-xxx systemd[1]: Started kafka.service.
Jun 10 18:58:26 ip-xxx-xx-xx-xxx sh[40816]: /bin/sh: 1: cannot create /home/ubuntu/kafka/kafka.log: Directory nonexistent
Jun 10 18:58:26 ip-xxx-xx-xx-xxx systemd[1]: kafka.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jun 10 18:58:26 ip-xxx-xx-xx-xxx systemd[1]: kafka.service: Failed with result 'exit-code'.

在目录~/kafka 下,我看不到文件kafka.log。但是在我自己的机器上设置的时候,并没有遇到这个错误。

在 AWS EC2 Ubuntu 中进行设置时我是否遗漏了什么?

更多详情: 我刚刚意识到,通过我的用户ubuntu 访问,我无法创建没有sudo 的文件夹。换句话说:

$ mkdir test_folder

给我Permission denied。我必须这样做:

$sudo mkdir test_folder

那么,我该如何修改服务文件来解决这个问题?

【问题讨论】:

  • 首先,您不应该使用> /home/ubuntu/kafka/kafka.log,因为log4j.properties 文件应该创建日志文件。其次,如果你安装了Confluent Platform with APT,这些服务文件(和用户账户)都包含在里面
  • @OneCricketeer 如果我删除它,并有这行ExecStart=/bin/sh -c '/home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties > 2>&1',我会收到以下错误:Jun 10 21:56:58 ip-xxx-xx-xx-xxx sh[41871]: /bin/sh: 1: /home/ubuntu/kafka/bin/kafka-server-start.sh: not found
  • 你也不需要/bin/sh -c。查看您的 Zookeeper 文件。
  • 所以我将行改为ExecStart=/home/ubuntu/kafka/bin/kafka-server-start.sh /home/ubuntu/kafka/config/server.properties。我收到此错误kafka.service: Failed at step EXEC spawning /home/ubuntu/kafka/bin/kafka-server-start.sh: No such file or directory
  • 如果ubuntu 用户对bin 文件夹或.sh 文件没有执行权限,那么您会收到该错误。

标签: ubuntu amazon-ec2 apache-kafka systemd


【解决方案1】:

使用我的用户 ubuntu 访问权限,我无法在没有 sudo 的情况下创建文件夹

不清楚您是如何添加ubuntu 用户的,但将mkdir -p /home/ubuntu 运行为ec2-user 是不正确的。

您可以使用这些命令fix the permissions,但您可能需要重新访问useradd 命令选项

sudo chown -R ubuntu:ubuntu /home/ubuntu
sudo chmod -R a+rwX,o-w /home/ubuntu

您还应该为 Kafka 和 Zookeeper 拥有单独的用户帐户,而不是使用一些 ubuntu 用户

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2015-04-17
    相关资源
    最近更新 更多