Systemd Hdfs 服务 [hadoop] - 启动

Rãã*_*Møó 0 hadoop hdfs systemd

我创建了一个服务来启动和停止与我的 Spark 集群关联的 hdfs。
服务 :

[Unit]
Description=Hdfs service
[Service]
Type=simple
WorkingDirectory=/home/hduser
ExecStart=/opt/hadoop-2.6.4/sbin/start-service-hdfs.sh
ExecStop=/opt/hadoop-2.6.4/sbin/stop-service-hdfs.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

问题是当我启动服务时,它在启动后立即启动和停止!:) 我认为问题是服务的类型,我真的不知道选择什么类型......

谢谢你。
此致

sin*_*ger 5

您的配置中存在一些问题,这就是它无法正常工作的原因。

hadoop 2.7.3, hive 2.1.1, ubuntu 16.04hadoop用户下运行

HADOOP_HOME/home/hadoop/envs/dwh/hadoop/

[Unit]
Description=Hadoop DFS namenode and datanode
After=syslog.target network.target remote-fs.target nss-lookup.target network-online.target
Requires=network-online.target

[Service]
User=hadoop
Group=hadoop
Type=forking
ExecStart=/home/hadoop/envs/dwh/hadoop/sbin/start-dfs.sh
ExecStop=/home/hadoop/envs/dwh/hadoop/sbin/stop-dfs.sh
WorkingDirectory=/home/hadoop/envs/dwh
Environment=JAVA_HOME=/usr/lib/jvm/java-8-oracle
Environment=HADOOP_HOME=/home/hadoop/envs/dwh/hadoop
TimeoutStartSec=2min
Restart=on-failure
PIDFile=/tmp/hadoop-hadoop-namenode.pid

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

清单:

  • 用户和用户组设置
  • 服务类型是 fork
  • pid 文件已设置,这是start-dfs.sh创建的实际 pid
  • 环境变量正确