2016-11-03 6 views
0

Я создал службу, которая запускает и останавливает мои hdfs, связанные с моим искровым кластером.
служба:Systemd Hdfs Service [hadoop] - startup

[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 

Проблема заключается в том, когда я запустить службу, он начинает и останавливает только после того, как был запущен !! :) Я думаю, что проблема заключается в типе услуги, я не знаю, какой тип выбрать ...

Спасибо.
С уважением

+0

Что ваш журнал (ы) сказать? И logctl, и hdfs log (я не знаю, где вы его разместили) – Misko

+0

Вы отформатировали namenode во время установки –

ответ

1

В вашей конфигурации есть некоторые проблемы, поэтому он не работает.

Я бегу 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 файл установлен, и это актуально, что PID start-dfs.sh создает
  • переменные среды являются правильными