2016-10-20 5 views
2

私は実稼働環境にsparkを導入することに専念しています。私は一般的にすべてを管理します。私はzookeeperとkafkaをパッケージ化し、それらをLinuxサービスとして展開することができますが、Sparkには問題があります。Linuxサービスとしてのスパーク

セットアップ(init.dサービスを参照)サービスとして起動/停止されていないようです。誰もクラスタモードで起動しているのですか?init.dスクリプトで起動/停止するように設定していますか?これを設定する方法に関する一般的な合意は何ですか?

これは、私はすでに前にしようとしたものです:

スパークinit.dディレクトリサービス:

#!/bin/bash 

SPARK_BASE_DIR=/opt/spark-2.0.0-bin-hadoop2.7 
SPARK_SBIN=$SPARK_BASE_DIR/sbin 
PID='' 

if [ -f $SPARK_BASE_DIR/conf/spark-env.sh ];then 
    source $SPARK_BASE_DIR/conf/spark-env.sh 
else 
    echo "$SPARK_BASE_DIR/conf/spark-env.sh does not exist. Can't run script." 
    exit 1 
fi 


check_status() { 

    PID=$(ps ax | grep 'org.apache.spark.deploy.master.Master' | grep java | grep -v grep | awk '{print $1}') 

    if [ -n "$PID" ] 
    then 
    return 1 
    else 
    return 0 
    fi 

} 

start() { 

    check_status 

    if [ "$?" -ne 0 ] 
    then 
    echo "Master already running" 
    exit 1 
    fi 

    echo -n "Starting master and workers ... " 

    su user -c "$SPARK_SBIN/start-all.sh" spark &>/dev/null 

    sleep 5 

    check_status 

    if [ "$?" -eq 0 ] 
    then 
    echo "FAILURE" 
    exit 1 
    fi 

    echo "SUCCESS" 
    exit 0 

} 

stop() { 

    check_status 

    if [ "$?" -eq 0 ] 
    then 
    echo "No master running ..." 
    return 1 
    else 

    echo "Stopping master and workers ..." 

    su user -c "$SPARK_SBIN/stop-all.sh" spark &>/dev/null 
    sleep 4 

    echo "done" 

    return 0 
    fi 
} 

status() { 

    check_status 

    if [ "$?" -eq 0 ] 
    then 
    echo "No master running" 
    exit 1 
    else 
    echo -n "master running: " 
    echo $PID 
    exit 0 
    fi 
} 

case "$1" in 
    start) 
    start 
    ;; 
    stop) 
    stop 
    ;; 
    restart) 
    stop 
    start 
    ;; 
    status) 
    status 
    ;; 
    *) 
    echo "Usage: $0 {start|stop|restart|status}" 
    exit 1 
esac 

exit 0 

私はすべてのクラスタノードを開始するマスターノードからサービスを実行していますよ。

私の環境に関するいくつかの情報:

  • のUbuntu 16.04
  • 私はそれを解決するためのHadoop 2.7

答えて

3

と火花2.0.0。問題は私の不可解な役割から来ていました。私はログフォルダの所有者のグループを設定しませんでした。今それは正常に動作します。

関連する問題