[英]FileNotFoundError: [Errno 2] No such file or directory: 'hadoop'
我目前正在使用气流及其调度程序。 我正在尝试使用 systemd 来正确管理网络服务器和调度程序这两个进程。 但是,当使用 systemd(systemctl 命令)启动调度程序时,它在我的 dags 日志“FileNotFoundError: [Errno 2] No such file or directory: 'hadoop'”中出现此错误,如果我从命令行启动我的调度程序,一切正常(通过在终端中输入气流调度程序)。 我想要做的是使用 subprocess.Popen 来运行 Hadoop 命令。 我只是想知道问题是什么。
这是我的 .service 文件
[Unit]
Description=Airflow scheduler daemon
After=network.target postgresql.service
Wants=postgresql.service
[Service]
EnvironmentFile=/root/.bashrc
User=root
Group=root
Type=simple
ExecStart=/bin/bash -c 'airflow scheduler'
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
最可能的问题是您没有设置相同的变量。 运行它时,您的 PATH 变量可能设置不正确。
当您打开交互式 bash 会话时,通常会获取更多文件 - 很可能您的路径设置在/etc/profile
(但它可能在其他地方)。
请参阅https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
这是一个环境变量问题。 我通过重新导出气流运算符中的所有变量来解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.