Apache Livy Operator

Apache Livy 是一項服務,它透過 REST 介面輕鬆地與 Spark 叢集進行互動。它可以透過簡單的 REST 介面或 RPC 客戶端庫,輕鬆提交 Spark 作業或 Spark 程式碼片段,同步或非同步檢索結果,以及管理 Spark Context。

LivyOperator

此 operator 封裝了 Apache Livy 批處理 REST API,允許向底層叢集提交 Spark 應用程式。

tests/system/apache/livy/example_livy.py

    livy_java_task = LivyOperator(
        task_id="pi_java_task",
        file="/spark-examples.jar",
        num_executors=1,
        conf={
            "spark.shuffle.compress": "false",
        },
        class_name="org.apache.spark.examples.SparkPi",
    )

    livy_python_task = LivyOperator(task_id="pi_python_task", file="/pi.py", polling_interval=60)

    livy_java_task >> livy_python_task

您還可以透過將引數 deferrable 設定為 True,以可延遲模式執行此 operator。這將有效利用 Airflow worker,因為作業狀態的輪詢在 triggerer 上非同步進行。請注意,這需要您的 Airflow 部署中提供 triggerer。

tests/system/apache/livy/example_livy.py

    livy_java_task_deferrable = LivyOperator(
        task_id="livy_java_task_deferrable",
        file="/spark-examples.jar",
        num_executors=1,
        conf={
            "spark.shuffle.compress": "false",
        },
        class_name="org.apache.spark.examples.SparkPi",
        deferrable=True,
    )

    livy_python_task_deferrable = LivyOperator(
        task_id="livy_python_task_deferrable", file="/pi.py", polling_interval=60, deferrable=True
    )

    livy_java_task_deferrable >> livy_python_task_deferrable

參考

有關更多資訊,請參閱 Apache Livy

本條目是否有幫助?