小编kz2*_*z28的帖子

Spark源代码:如何理解withScope方法

我无法理解withScope方法的功能(实际上,我真的不知道RDDOperationScope类的含义)

特别是,withScope方法的参数列表中(body:=> T)的含义是什么:

private[spark] def withScope[T](
  sc: SparkContext,
  name: String,
  allowNesting: Boolean,
  ignoreParent: Boolean)(body: => T): T = {
// Save the old scope to restore it later
val scopeKey = SparkContext.RDD_SCOPE_KEY
val noOverrideKey = SparkContext.RDD_SCOPE_NO_OVERRIDE_KEY
val oldScopeJson = sc.getLocalProperty(scopeKey)
val oldScope = Option(oldScopeJson).map(RDDOperationScope.fromJson)
val oldNoOverride = sc.getLocalProperty(noOverrideKey)
try {
  if (ignoreParent) {
    // Ignore all parent settings and scopes and start afresh with our own root scope
    sc.setLocalProperty(scopeKey, new RDDOperationScope(name).toJson)
  } else if (sc.getLocalProperty(noOverrideKey) == null) {
    // Otherwise, …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

6
推荐指数
1
解决办法
1776
查看次数

如何使用Clion或Netbeans正确导入Tensorflow源代码

我打算阅读Tensorflow(TF)源代码的核心模块

我的问题是我没有在IDE中读取TF等C/C++源代码的经验.任何人都可以给我一些关于如何在IDE中有效读取TF源代码(核心模块)的说明.我的Macbook上有Clion和Netbeans,但我不知道如何正确导入TF(也是导入哪个部分?;如何构建它?)这样当我想知道一个C++类的声明时我可以跳转到它的签名/声明直接.

我将非常感谢有效阅读TF源代码的任何建议/推荐工具.顺便说一句,我假设用IDE读取TF代码是有效的.如果不是这样,我可以停止使用它们并转向像VIM这样的工具.

c++ vim netbeans clion tensorflow

6
推荐指数
1
解决办法
1504
查看次数

Tensorflow交叉设备通信

正如张量流论文所述,Tensorflow的跨设备通信是通过将"接收节点"和"发送节点"添加到设备中来实现的.

根据我的理解,设备(请仅考虑涉及CPU设备)负责执行操作的计算.但是,数据(例如:从操作生成的Tensor,可变缓冲区)驻留在内存中.我不知道如何从物理上实现从一个设备到另一个设备的数据传输.我猜数据传输是通过共享内存实现的.是对的吗?

我将理解有关如何实现数据传输的任何解释/相应代码.PS:TensorFlow纸张链接,图4显示了跨设备通信机制.

tensorflow tensorflow-serving

5
推荐指数
1
解决办法
915
查看次数

在 Kubernetes 上启动 Spark 应用程序时会发生什么

我读到了这篇文章:在 Kubernetes 上运行 Spark。我想了解有关在 K8s 上启动 Spark 作业时 Kubernetes 控制器/调度程序和 Spark 运行时之间交互的更多详细信息。特别是,假设我们通过以下方式启动 Spark 应用程序:

bin/spark-submit \
--master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \
--deploy-mode cluster \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=5 \
--..............
Run Code Online (Sandbox Code Playgroud)

我的问题是:由于 Spark 应用程序启动时集群资源不可用,K8s 可能无法立即分配 5 个执行器(或称为容器/pod)。Spark应用程序采取什么方式?(1)当至少有一个执行器被分配时,Spark会尽快开始运行任务。(2) 在所有 5 个执行器都被分配之前,Spark 不会启动任何任务。

如果您了解 Hadoop YARN,如果您也能回答在 Hadoop YARN 上运行 Spark 应用程序(禁用动态分配)的场景中的问题并指出差异,那就太好了。

hadoop hadoop-yarn apache-spark kubernetes

5
推荐指数
0
解决办法
514
查看次数

如何重启kubeadm搭建的k8s集群的kubernetes kube-scheduler

kubeadm我按照这个官方教程创建了一个kubernetes集群。每个控制面板组件(apiserver、control manager、kube-scheduler)都是一个正在运行的 pod。我了解到 kube-scheduler在创建时将使用一些默认的调度策略(在此处定义kubeadm) 。这些默认策略是所有可用策略的子集(此处列出

如何使用新配置(不同的策略列表)重新启动 kube-scheduler pod?

kubernetes kubernetes-pod

3
推荐指数
1
解决办法
9873
查看次数