繁体   English   中英

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'hadoop'

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM