问题标签 [spark-jobserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
238 浏览

spark-jobserver - Spark Job Server 启动作业服务器时没有此类进程

我在尝试启动作业服务器时遇到问题。我收到以下错误,

请帮助我。

0 投票
0 回答
176 浏览

apache-spark - pyspark 作业到现有上下文

我想知道如何将火花“作业”提交给单个应用程序(允许共享 RDD 工作,但也允许模块的代码/执行独立性)。我在 ooyala 正式看到过这个spark-jobserver,但我注意到它还不支持 python。这是 scala/java 中这个用例的常用路径吗?还是我在这里走错了路?

我还看到了一个不太受欢迎的pyspark-jobserver和主要 spark-jobserver 上的未解决问题,以解决 python 和 R。

为了更好地理解 spark-jobserver 的用例,我还想知道为什么 spark 不直接支持这个功能,因为他们有详细的作业调度框架。

0 投票
1 回答
42 浏览

spark-jobserver - SparkJobServer - validate() 总是在 runJob() 之前调用

根据 SparkJobServer 文档:

validate 允许对上下文和任何提供的配置进行初始验证。如果上下文和配置都可以运行作业,则返回 spark.jobserver.SparkJobValid 将让作业执行,否则返回 spark.jobserver.SparkJobInvalid(reason) 会阻止作业运行并提供传达失败原因的方法。在这种情况下,调用会立即返回 HTTP/1.1 400 Bad Request 状态码。validate 可帮助您防止由于缺少或错误配置而最终失败的正在运行的作业,并节省时间和资源。

因此,我可以假设validate()之前总是会调用它runJob()吗?

如果我在 中加载并验证作业配置validate(),我是否可以runJob()假设它已正确加载并且可以在validate()离开它的地方使用?

0 投票
1 回答
639 浏览

scala - Spark 展平数据帧

开始使用 spark 我想知道如何flatmap使用explode数据框。

它是使用创建df.groupBy("columName").count的,如果我收集它,它具有以下结构:

但我宁愿有类似的东西

实现这样的目标的正确工具是什么?平面图,爆炸还是其他?

上下文:我想使用 spark-jobserver。如果我以后一种形式提供数据,它似乎只提供有意义的结果(例如,有效的 json 序列化)

0 投票
1 回答
229 浏览

json - spark-jobserver 序列化格式

开始使用 spark-jobserver 我了解到数据帧可以像Spark 一样扁平化数据帧,但这仍然不能满足https://github.com/spark-jobserver/spark-jobserver#job-result-serialization

如果这是我从火花得到的结果

我怎样才能将它映射到合适的格式?(有用的序列化) 如何添加其他字段?

尝试使用类似的数组:Array([1,2], [3,4])只会导致错误。

目前,我得到以下基于Spark 展平数据帧的序列化:

这显然不是由jobs-erver“解析”的。

据我了解,嵌套数组(来自collect)无法正确序列化。但是,这个映射应该是可序列化的。怎么了?

编辑

只有当我返回一个正确键入的列表时,Json 编码似乎才有效。

结果是:"result": [["Torcuato", 27], ["Rosalinda", 34]]。已经为

我知道"result": ["[Torcuato,27]", "[Rosalinda,34]"]这是某种奇怪的 Json。

据我了解问题,我需要将所有结果解析为自定义类。我将如何实现这一目标?

0 投票
1 回答
144 浏览

scala - Spark Jobserver 作业的单元测试

我想为在 spark-jobserver 中执行的 spark 作业编写单元测试。这很好用,除非我需要访问配置,例如检查特定的输入值,例如:

配置创建如下:

然后作业运行如下:

这是一个例外:

0 投票
2 回答
2099 浏览

apache-spark - 暂停 Spark Streaming 作业

我有一个简单的 spark 流应用程序,它从 Kafka 读取数据,然后在 http 端点(或另一个 kafka - 对于这个问题让我们考虑 http)进行转换后发送这些数据。我正在使用job-server提交作业。

我目前正在使用“auto.offset.reset”="smallest" 和 interval=3s 从源 kafka 开始消费。在幸福的情况下,一切看起来都很好。这是一段摘录:

由于“auto.offset.reset”="smallest",这会在一个作业中处理大约 200K 消息。如果我在作业中停止 http 服务器(模拟 POST 中的某些问题)并且 httpProcessor.process 抛出异常,则作业失败并且任何未处理的内容都会丢失。我看到它在那之后每 3 秒轮询一次。

所以我的问题是:

  1. 我的假设是否正确,如果在接下来的 3 秒工作中,如果它收到 X 条消息并且在遇到错误之前只能处理 Y,那么其余 XY 将不会被处理?
  2. 有没有办法暂停来自 Kafka 的流/消费?例如,如果出现间歇性网络问题,并且很可能所有消耗的消息都将在那段时间内丢失。不断重试的东西(可能是指数退避),每当 http 端点为 UP 时,再次开始消费。

谢谢

0 投票
1 回答
299 浏览

apache-spark - 在 docker 中使用 Spark JobServer 与 Spark 通信

我已经以单一模式启动了火花集群。

我可以使用 Scala 的 spark-core lib 成功运行作业。我想使用 Spark JobServer 进行作业管理。我在主主机节点上的 docker 中启动它:

然后我尝试执行已添加的作业(我通过 UI 验证它已添加):

回复:

作业服务器上的日志:

Spark 版本:1.6.1 为 Hadoop 2.6 预构建
Spark JobServer:0.6.0
Job Scala 版本 2.10.6

0 投票
2 回答
220 浏览

scala - 映射减少以在 Cassandra 中执行分组和求和,带有火花和作业服务器

我正在创建一个连接到 cassandra 的 spark 作业服务器。获得记录后,我想执行一个简单的分组并对其求和。我能够检索数据,但无法打印输出。我已经在 google 上尝试了几个小时,并且也在 cassandra google 群组中发帖。我当前的代码如下,我在收集时遇到错误。

}

0 投票
2 回答
1398 浏览

apache-spark - 将 Spark 作业提交到 Spark 集群

我是 Spark 的新手,刚刚开始对此进行更多探索。我选择了更长的路径,不使用任何 CDH 发行版安装 hadoop,我已经从 Apache 网站安装了 Hadoop,并自己设置了配置文件以了解更多基础知识。

我已经设置了一个 3 节点集群(所有节点都是从 ESX 服务器创建的 VM 机器)。我已经使用 zookeeper 机制为 Namenode 和 ResourceManager 设置了高可用性。所有三个节点也都用作 DataNode。

以下守护程序在所有三个节点上运行

我在 NameNode 1 和 2 中为 NN 和 RM 设置了 HA。节点具有非常小的硬件配置(每个 4GM RAM 和 20GB 磁盘空间),但这些仅用于测试目的。所以我想没关系。

我已经在 NameNode 1 中安装了 Spark(与我安装的 Hadoop 2.7 兼容的版本)。我能够在本地启动 Spark-shell 并执行基本的 scala 命令来创建 RDD 并对其执行一些操作。我还设法以 Yarn-Cluster 和 Yarn-Client 部署模式测试运行 SparkPi 示例。一切都很好。

现在我的问题是,在实时场景中,我们将在我们的本地机器上编写基于(Java、scala 或 py)的代码(而不是在形成 Hadoop 集群的节点中)。假设我在与我的 HA 集群相同的网络中有另一台机器。如何将我的作业提交到 Yarn-Cluster(假设我想尝试提交 SparkPi)示例从不在 HA 中的主机到 Yarn RM,如何我这样做?

我相信,SPARK 必须安装在我正在编写代码的机器上(我的假设是否正确),并且 HA 集群中不需要安装 Spark。我还想将提交的作业的输出从提交的位置返回给主机。我不知道需要做什么才能完成这项工作。

我听说过Spark JobServer,这是我需要让这一切正常运行吗?我相信你们可以帮助我解决这个困惑。我只是找不到任何明确指定完成此操作的步骤的文件。我可以将作业从基于 Windows 的机器提交到我在 unix 环境中设置的 HA 集群吗?