使用 Twitter 的 Scala 标记 Livy 的基于 GraphQL 的图形界面

前言

在前端类技术中,Livy 是一款广泛使用的 Spark 实时编程工具。它是一个基于 REST API 的交互式 Spark Shell,通过提交 Spark 作业来实现对 Spark 的编程。在 Livy 中,使用了 Scala 标记,提高了编程的效率和可读性。本文将介绍如何使用 Twitter 的 Scala 标记 Livy 的基于 GraphQL 的图形界面,帮助读者更好地开发和使用 Livy。

Livy 简介

Livy 是一款基于 REST API 的交互式 Spark Shell 工具。它是一个独立的 Spark 应用程序,它允许用户在 Spark 集群上执行交互式和批处理任务。在 Livy 中,您可以使用 Scala 标记来编写代码,从而提高编程效率和可读性。

使用 Livy 的好处

  • 可以在本地运行 Spark 代码,测试和开发逻辑
  • 不需要在每个程序中重新启动 SparkContext,因为应用程序是长时间运行的
  • 可以通过 REST API 发送 Spark 作业,可以将 Livy 与其他系统集成

使用 Twitter 的 Scala 标记 Livy 的基于 GraphQL 的图形界面

Twitter 的 Scala 标记 Livy 的基于 GraphQL 的图形界面是一款优秀的前端工具,它可以帮助用户更好地编写和使用 Livy。它提供了以下功能:

  • 显示已经提交的所有作业(交互式和批处理)
  • 显示作业正在运行的状态,例如正在运行、成功或失败
  • 显示作业的输出和错误
  • 允许用户一键重试已经失败的作业
  • 提供了一个使用 GraphQL 请求并获取数据的接口

如何使用 Livy 和 Twitter 的 Scala 标记

  1. 安装 Livy

Livy 的安装非常简单,您只需要按照官方文档指示执行即可。下载 Livy 安装包,解压到本地目录。然后,修改 conf 文件夹中的 livy.conf 文件,确保所有配置满足您的需求。最后,启动 Livy:

./bin/livy-server start

  1. 使用 Scala 标记编写代码

现在,我们可以使用 Scala 标记编写代码了。此时,您需要确保您的 Scala 版本与 Spark 集群中的版本相同。假设我们需要使用 Spark SQL 的 DataFrame API,代码如下:

%spark val sqlContext = new org.apache.spark.sql.SQLContext(sc) val df = sqlContext.read.json("path/to/json") df.printSchema()

  1. 提交 Spark 作业

在向 Livy 提交 Spark 作业之前,您需要创建会话。会话是一种连接 Spark 集群的方式。您可以在 Livy REST API 中创建新的会话,并从中提交作业。以下是创建新会话并提交工作的示例:

POST http://livy-server:8998/sessions/ { "kind": "spark", "jars": ["/path/to/my.jar"] "conf": { "spark.master": "local[*]" } }

  1. 运行 Twitter 的 Scala 标记 Livy 的基于 GraphQL 的图形界面

现在,您可以按照官方文档指示下载和安装 GraphQL IDE。首先,在终端中将以下命令输入:

npm install -g graphiql

然后,使用以下命令启动 GraphQL IDE:

graphiql --endpoint=http://localhost:8998/graphql

现在,您可以在浏览器中访问 http://localhost:3000/graphql,这将显示 GraphQL IDE。在右侧主窗口中,您可以写下您的 GraphQL 查询。以下是查询活动会话的所有作业的示例:

{ livy { sessions { id state logs { id state output } } } }

  1. 重试作业

如果某个作业失败,我们可以使用 Livy REST API 来重新提交作业。以下是展示如何重试一个作业的示例:

POST http://livy-server:8998/batches/1/retry

结论

通过 Twitter 的 Scala 标记 Livy 的基于 GraphQL 的图形界面,我们可以更好地编写和使用 Livy。我们可以更好地管理我们的 Spark 作业,并使用 GraphQL 发送和接收数据。Livy 带来了众多优势,较少的开销,不需要在每个程序中重新启动 SparkContext,可更好地对作业进行管理和调度。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670b4afbd91dce0dc88931d5