簡體   English   中英

如何在特定時間在Apache Spark上部署和運行Python腳本?

[英]How to deploy and run at a specific time Python scripts on Apache Spark?

我有一組簡單的python 2.7腳本。 另外,我有一套Linux節點。 我想在特定時間在這些節點上運行這些腳本。

每個腳本可以在每個節點上工作。 該腳本不能同時在多個節點上運行。

因此,我想完成3個簡單的任務:

  1. 部署腳本集。
  2. 要在特定時間在任何節點上運行具有特定參數的主腳本。
  3. 為了獲得結果,腳本完成后。

看來,我能夠完成第一個任務。 我有以下代碼片段:

import urllib
import urlparse
from pyspark import SparkContext


def path2url(path):
    return urlparse.urljoin(
        'file:', urllib.pathname2url(path))

MASTER_URL = "spark://My-PC:7077"
deploy_zip_path = "deploy.zip"
sc = SparkContext(master=("%s" % MASTER_URL), appName="Job Submitter", pyFiles=[path2url("%s" % deploy_zip_path)])

但是我有問題。 此代碼立即啟動任務。 但是我只想將腳本部署到所有節點。

  1. 我建議保留代碼以在PySpark腳本之外部署PySpark腳本。

  2. Chronos是在Apache Mesos上運行的作業計划程序。 Spark可以在Mesos上運行。 Chronos將作業作為shell命令運行。 因此,您可以使用指定的任何參數運行腳本。 您將需要將Spark和腳本部署到Mesos節點。 然后,您可以使用spark-submit作為命令,使用Chronos運行提交您的Spark腳本。

  3. 您可以通過在PySpark腳本中寫入某種存儲機制來存儲結果。 Spark支持文本文件,HDFS,Amazon S3等。 如果Spark不支持您需要的存儲機制,則可以使用支持該功能的外部庫。 例如,我使用cassandra-driver在PySpark腳本中寫給Cassandra

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM