Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 什么是;避免每个集群有多个Kudu客户端”;什么意思?_Apache Spark_Apache Kudu - Fatal编程技术网

Apache spark 什么是;避免每个集群有多个Kudu客户端”;什么意思?

Apache spark 什么是;避免每个集群有多个Kudu客户端”;什么意思?,apache-spark,apache-kudu,Apache Spark,Apache Kudu,我正在看库杜的文件 以下是kudu spark的部分描述 避免每个集群有多个Kudu客户端。 一个常见的Kudu Spark编码错误是实例化额外的KuduClient对象。在kudu spark中,KuduClient属于KuduContext。Spark应用程序代码不应创建另一个连接到同一群集的KuduClient。相反,应用程序代码应该使用KuduContext来访问KuduClient使用KuduContext\syncClient 要诊断Spark作业中的多个KuduClient实例,

我正在看库杜的文件

以下是kudu spark的部分描述

避免每个集群有多个Kudu客户端。 一个常见的Kudu Spark编码错误是实例化额外的
KuduClient
对象。在kudu spark中,
KuduClient
属于
KuduContext
。Spark应用程序代码不应创建另一个连接到同一群集的
KuduClient
。相反,应用程序代码应该使用
KuduContext
来访问
KuduClient
使用
KuduContext\syncClient

要诊断Spark作业中的多个
KuduClient
实例,请在主服务器的日志中查找由于许多
GetTableLocations
GetTableLocations
请求而过载的迹象,这些请求通常同时来自不同的客户端。这种症状在Spark Streaming code中尤其可能,在Spark Streaming code中,为每个任务创建
KuduClient
,将导致来自新客户端的主请求周期性波动

这是否意味着我一次只能运行一个kudu spark任务

如果我有一个spark流媒体程序总是向kudu写入数据,
如何使用其他spark程序连接到kudu?

在非spark程序中,您使用kudu客户端访问kudu。对于Spark应用程序,对于KUDU集群,您使用已经有这样一个客户端的KUDU上下文

简单的JAVA程序需要使用JavaAPI和maven的KUDU客户机 接近

Spark/Scala程序,其中许多程序可以同时运行 使用Spark KUDU集成针对同一集群。一小条 从官方指南中借来的,就像很久以前我看到的一样


请参见

关于“每个集群避免多个Kudu客户端”的更明确的说法是“每个spark应用程序避免多个Kudu客户端”

相反,应用程序代码应该使用KuduContext来使用KuduContext#syncClient访问KuduClient


如果我有两个spark程序,那么我有两个kuduContext对象。但该文件称“避免每个集群有多个kudu客户端”。我该怎么办?这不是问题。每个Spark程序都有一个KUDU上下文。这很好,否则这将是一个非常奇怪的概念。我承认它解释得很糟糕。要在Spark作业中诊断多个KuduClient实例。。。这在文本中,如果指南专门针对单个应用程序,则没有问题。但是文档中说“避免每个集群有多个Kudu客户端”。所以我想确认一下,我想我已经说过了
KuduClient kuduClient = new KuduClientBuilder("kudu-master-hostname").build();
import org.apache.kudu.client._
import collection.JavaConverters._

// Read a table from Kudu
val df = spark.read
              .options(Map("kudu.master" -> "kudu.master:7051", "kudu.table" -> "kudu_table"))
              .format("kudu").load

// Query using the Spark API...
df.select("id").filter("id >= 5").show()

// ...or register a temporary table and use SQL
df.registerTempTable("kudu_table")
val filteredDF = spark.sql("select id from kudu_table where id >= 5").show()

// Use KuduContext to create, delete, or write to Kudu tables
val kuduContext = new KuduContext("kudu.master:7051", spark.sparkContext)

// Create a new Kudu table from a dataframe schema
// NB: No rows from the dataframe are inserted into the table
kuduContext.createTable("test_table", df.schema, Seq("key"),
                        new CreateTableOptions()
                      .setNumReplicas(1)
                      .addHashPartitions(List("key").asJava, 3))

// Insert data
kuduContext.insertRows(df, "test_table")