Apache Livy 操作符

Apache Livy 是一项服务,可以通过 REST 接口轻松与 Spark 集群进行交互。它可以通过简单的 REST 接口或 RPC 客户端库轻松提交 Spark 作业或 Spark 代码片段,同步或异步检索结果,以及进行 Spark 上下文管理。

LivyOperator

此操作符封装了 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,在可延迟模式下运行此操作符。这将有效利用 Airflow 工作节点,因为作业状态的轮询会在触发器上异步进行。请注意,这需要您的 Airflow 部署上提供触发器。

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

此条目是否有帮助?