2016-05-24 3 views
14

अपाचे चिंगारी में अनुप्रयोगों चल रहा है की जाँच करने के लिए, एक यूआरएल पर वेब इंटरफेस से उन्हें देख सकते हैं:कमांड लाइन से स्पार्क अनुप्रयोगों की स्थिति कैसे जांचें?

http://<master>:8080

मेरा प्रश्न है कि हम कैसे टर्मिनल से आवेदन चल रहा है जाँच कर सकते हैं, वहाँ किसी भी आदेश है कि अनुप्रयोगों स्थिति देता है ?

उत्तर

4

आप spark-submit --status का उपयोग कर सकते हैं (जैसा कि Mastering Apache Spark 2.0 में वर्णित है)।

spark-submit --status [submission ID] 

संदर्भ के लिए code of spark-submit देखें:

if (!master.startsWith("spark://") && !master.startsWith("mesos://")) { 
    SparkSubmit.printErrorAndExit(
    "Requesting submission statuses is only supported in standalone or Mesos mode!") 
} 
+1

ध्यान दें कि (लिंक के अनुसार) '--status' विकल्प केवल स्पार्क स्टैंडअलोन या क्लोज़ तैनाती मोड (यार्न नहीं) के साथ मेसोस के लिए काम करता है – DNA

+12

कमांड लाइन से सबमिशन आईडी कैसे प्राप्त करें? – user1870400

4

यदि यह स्पार्क स्टैंडअलोन या अपाचे Mesos क्लस्टर प्रबंधकों के लिए है, @sb0709's answer तरह से पालन करने के लिए है।

$ yarn application -help 
usage: application 
-appStates <States>    Works with -list to filter applications 
           based on input comma-separated list of 
           application states. The valid application 
           state can be one of the following: 
           ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUN 
           NING,FINISHED,FAILED,KILLED 
-appTypes <Types>    Works with -list to filter applications 
           based on input comma-separated list of 
           application types. 
-help       Displays help for all commands. 
-kill <Application ID>   Kills the application. 
-list       List applications. Supports optional use 
           of -appTypes to filter applications based 
           on application type, and -appStates to 
           filter applications based on application 
           state. 
-movetoqueue <Application ID> Moves the application to a different 
           queue. 
-queue <Queue Name>    Works with the movetoqueue command to 
           specify which queue to move an 
           application to. 
-status <Application ID>  Prints the status of the application. 
0

मेरे मामले में, मेरे चिंगारी आवेदन अमेज़न के एडब्ल्यूएस ईएमआर पर दूर से चलाता है:

यार्न के लिए, आप yarn application आदेश का उपयोग करना चाहिए। इसलिए मैं स्पार्क एप्लिकेशन की स्थिति तक पहुंचने के लिए लिंक्स कमांड लाइन ब्राउज़र का उपयोग करता हूं। जब आपने एक टर्मिनल से अपनी स्पार्क नौकरी जमा की है, तो एक और टर्मिनल खोलें और नए टर्मिनल से निम्न कमांड को फायर करें।

**lynx http://localhost:<4043 or other spark job port>** 
0

मुझे पता चला है कि स्पार्क नौकरियों को सबमिट करने, मारने और स्थिति प्राप्त करने के लिए आरईएसटी एपीआई का उपयोग करना संभव है। REST API बंदरगाह 6066.

  1. पर गुरु पर सामने आ रहा है निम्नलिखित कर्ल आदेश काम बनाने के लिए, का उपयोग करें:

    curl -X POST http://spark-cluster-ip:6066/v1/submissions/create 
        --header "Content-Type:application/json;charset=UTF-8" 
        --data 
        '{ 
         "action" : "CreateSubmissionRequest", 
         "appArgs" : [ "blah" ], 
         "appResource" : "path-to-jar-file", 
         "clientSparkVersion" : "2.2.0", 
         "environmentVariables" : { "SPARK_ENV_LOADED" : "1" }, 
         "mainClass" : "app-class", 
         "sparkProperties" : { 
          "spark.jars" : "path-to-jar-file", 
          "spark.driver.supervise" : "false", 
          "spark.app.name" : "app-name", 
          "spark.submit.deployMode" : "cluster", 
          "spark.master" : "spark://spark-master-ip:6066" 
         } 
        }' 
    

    प्रतिक्रिया सफलता या इसके बाद के आपरेशन की विफलता भी शामिल है और

    submissionId
    { 
        'submissionId': 'driver-20170829014216-0001', 
        'serverSparkVersion': '2.2.0', 
        'success': True, 
        'message': 'Driver successfully submitted as driver-20170829014216-0001', 
        'action': 'CreateSubmissionResponse' 
    } 
    
  2. नौकरी हटाने के लिए, submissionId ऊपर प्राप्त का उपयोग करें:

    curl -X POST http://spark-cluster-ip:6066/v1/submissions/kill/driver-driver-20170829014216-0001 
    

    प्रतिक्रिया फिर से सफलता/असफलता स्थिति शामिल हैं:

    { 
        'success': True, 
        'message': 'Kill request for driver-20170829014216-0001 submitted', 
        'action': 'KillSubmissionResponse', 
        'serverSparkVersion': '2.2.0', 
        'submissionId': 'driver-20170829014216-0001' 
    } 
    
  3. स्थिति जानने के लिए, निम्न आदेश का उपयोग:

    curl http://spark-cluster-ip:6066/v1/submissions/status/driver-20170829014216-0001 
    

    प्रतिक्रिया चालक राज्य शामिल हैं - एप्लिकेशन की वर्तमान स्थिति :

    { 
        "action" : "SubmissionStatusResponse", 
        "driverState" : "RUNNING", 
        "serverSparkVersion" : "2.2.0", 
        "submissionId" : "driver-20170829203736-0004", 
        "success" : true, 
        "workerHostPort" : "10.32.1.18:38317", 
        "workerId" : "worker-20170829013941-10.32.1.18-38317" 
    } 
    

मुझे आरईएसटी एपीआई here के बारे में पता चला।

संबंधित मुद्दे