Systemd Hdfs Service [hadoop] - 启动

时间:2016-11-03 09:46:13

标签: 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

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

谢谢。
最好的问候

1 个答案:

答案 0 :(得分:3)

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

我在hadoop 2.7.3, hive 2.1.1, ubuntu 16.04用户

下运行hadoop

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

清单:

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