如何在 Kylin 中优雅地使用 Spark
前言 Kylin 用户在使用 Spark的过程中,经常会遇到任务提交缓慢、构建节点不稳定的问题。为了更方便地向 Spark 提交、管理和监控任务,有些用户会使用 Livy 作为 Spark 的交互接口。在最新的 Apache Kylin 3.0 版本中,Kylin 加入了通过 Apache Livy 递交 Spark 任务的新功能[KYLIN-3795],特此感谢滴滴靳国卫同学对此功能的贡献。 Livy 介绍 Apache Livy 是一个基于 Spark 的开源 REST 服务,是 Apache 基金会的一个孵化项目,它能够通过 REST 的方式将代码片段或是序列化的二进制代码提交到 Spark 集群中去执行。它提供了如下基本功能: 提交 Scala、Python 或是 R 代码片段到远端的 Spark 集群上执行。 提交 Java、Scala、Python 所编写的 Spark 作业到远端的 Spark 集群上执行。 Apache Livy 架构 为什么使用 Livy 1. 当前 Spark 存在的问题 Spark 当前支持两种交互方式: 交互式处理用户使用 spark-shell 或 pyspark 脚本启动 Spark 应用程序,伴随应用程序启动的同时,Spark 会在当前终端启动 REPL(Read–Eval–Print Loop) 来接收用户的代码输入,并将其编译成