Apache spark 阅读最新的spark kafka流媒体

我希望使用kafka只阅读spark streaming中的最新消息,但它也会获取过去的数据 如何在KafkaUtil中为spark设置auto.offset.reset JavaPairReceiverInputDStream<String, String> messages = KafkaUtils.createStream(jssc, args[0], args[1], topicMap); JavaPairReceiverInputStream消息=

Apache spark 如何启动Spark';在纱线群中的特定节点上的应用程序管理员?

我有一个纱线集群,其中一个主节点运行资源管理器,另外两个节点。我能够在“纱线簇”模式下从客户机提交spark应用程序。有没有办法配置群集中的哪个节点启动Spark应用程序主机 我这样问是因为如果应用程序主节点在主节点中启动,它工作正常,但如果它在其他节点中启动,我会得到以下结果: 正在重试连接到服务器:0.0.0.0/0.0.0.0:8030 如果您使用的是足够新的纱线版本(2.6或更高版本,根据需要),则可以使用 这本《霍顿作品指南》介绍了这本书 如果使用Spark 1.6或更高版本,则添加了

Apache spark Spark流式缓存和转换

我是spark的新手,我正在使用Kafka的spark流媒体 我的流媒体持续时间是1秒 if(resultCp!=null){ resultCp.print(); result = resultCp.union(words.mapValues(new Sum())); }else{ result = words.mapValues(new Sum());

Apache spark 为什么dropna()不起作用?

系统:Cloudera Quickstart VM 5.4上的Spark 1.3.0(Anaconda Python dist.) 以下是Spark数据框: from pyspark.sql import SQLContext from pyspark.sql.types import * sqlContext = SQLContext(sc) data = sc.parallelize([('Foo',41,'US',3), ('Foo',39,

Apache spark groupByKey vs hashPartitioner和mapPartitions?

所以,我有一个如下的数据 [ (1, data1), (1, data2), (2, data3), (1, data4), (2, data5) ] 我想将其转换为以下内容,以便进一步处理 [ (1, [data1, data2, data4]), (2, [data3, data5]) ] 一种方法是使用groupByKey。另一种方法是使用hashPartitioner根据键对RDD进行分区,然后使用mapPartitions处理每个键的值。哪种方法更有效?我不认为您可以按照注释中的建

Apache spark 如何知道何时使用不平衡的分区重新分区/合并RDD(不可能进行洗牌)?

为了我的spark工作,我正在从s3加载数以万计的Gzip文件。这导致一些分区非常小(10个记录),而另一些分区非常大(10000个记录)。分区的大小在节点之间分布得很好,因此每个执行器似乎在处理相同数量的聚合数据。所以我不确定自己是否有问题 我怎么知道它是否值得重新划分或合并RDD?这两种方法中的任何一种都能在不洗牌数据的情况下平衡分区吗?此外,RDD不会被重用,只是映射到另一个RDD,然后连接到另一个RDD。有趣的问题,合并肯定会更好,因为它不会触发完全洗牌。通常,当跨分区(例如,在过滤器之

Apache spark 我应该使用哪个记录器在云日志中获取数据

我正在使用CloudDataProc运行PySpark作业,并希望使用Python的日志记录模块记录信息。目标是将这些日志推送到云日志中 从中,我了解到我可以通过在fluentd配置中添加一个日志文件来实现这一点,该配置位于/etc/google fluentd/google fluentd.conf 但是,当我查看/var/log中的日志文件时,找不到包含日志的文件。我已经尝试使用默认的python记录器和'py4j'记录器 logger = logging.getLogger() logge

Apache spark 如何在保持顺序的同时用另一个替换RDD的内容?

我有两个RDD,一个是(a,b,a,c,b,c,a),另一个是成对的RDD((a,0),(b,1),(c,2)) 我想将第一个RDD中的as、bs和cs分别替换为0,1,2(它们分别是第二个RDD中键a、b、c的值)。我想保留第一个RDD中事件的顺序 如何在Spark中实现它?例如: val rdd1=sc.parallelize(顺序(“a”、“b”、“a”、“c”、“b”、“c”、“a”)) val rdd2=sc.parallelize(顺序((“a”,0),(“b”,1),(“c”,2)

Apache spark apachespark中结合数据和任务并行的机器学习

ApacheSpark提供了机器学习算法的数据并行实现。它还开始支持机器学习算法的任务并行化,例如,在交叉验证参数调整的背景下,例如使用Spark的Scikit学习集成包: 我的问题是,在Spark中结合这两种并行模式的推荐方法是什么: 在分布式数据上执行ML算法,以及 在同一框架中执行算法的多个实例(使用不同的调优参数) 请记住,在这种情况下,任务并行性仍然涉及一个“收集”阶段,其中每个任务的结果(例如,交叉验证的错误)必须合并(例如,最小化);所以任务并不是完全独立的。这是一个主要的基于观点

Apache spark 如何检查SparkContext是否已停止?

如何检测是否已被删除?sc.isStopped 取自第251行,这适用于编写时的Scala/Java API 在Spark发布1.6版之前,您无法检查它,只能触发它: sc.stop() 从版本1.6及更高版本开始,您有一个布尔函数,如果上下文停止或正在停止,该函数将返回true: sc.isStopped 这适用于PySpark API 感谢@zero323的评论: sc.\u jsc.sc().isStopped() 这为您提供了JavaSparkContext如果您使用spark 1.5,

Apache spark 当尝试在上使用Python注册UDF时,我得到一个关于Spark BUILD with HIVE的错误

异常:(“您必须使用Hive.Export'Spark\u Hive=true'构建Spark并运行build/sbt assembly”,Py4JJavaError(调用None.org.apache.Spark.sql.Hive.HiveContext时出错。\n',JavaObject id=o54)) 每当我在IBM Bluemix Spark as Service上的Jupyter的第二个笔记本上创建UDF时,就会发生这种情况。我也遇到过这些错误。只有您启动的第一个笔记本才能访问配置单

Apache spark 如何可靠地写入和恢复分区数据

我正在寻找一种编写和恢复分区数据集的方法。就这个问题而言,我可以接受两个分区的RDD: val partitioner: org.apache.spark.Partitioner = ??? rdd.partitionBy(partitioner) 和Dataset[Row]/Dataframe: df.repartition($"someColumn") 目标是在恢复数据时避免混乱。例如: spark.range(n).withColumn("foo", lit(1)) .repart

Apache spark 使用Spark Streaming时限制Kafka批次大小

是否可以限制Kafka消费者返回的用于Spark流媒体的批次的大小 我这样问是因为我得到的第一批记录有数亿条,处理和检查它们需要很长时间。我想你的问题可以通过火花流式背压解决 检查spark.streaming.backpressure.enabled和spark.streaming.backpressure.initialRate 默认情况下,spark.streaming.backpressure.initialRate未设置,spark.streaming.backpressure.ena

Apache spark spark使用数据帧列表并行化写入

我有一个使用jdbc创建的dataframe列表。有没有一种方法可以用拼花地板把它们平行地写下来 val listOfTableNameAndDf = for { table <- tableNames } yield (table, sqlContext.read.jdbc(jdbcUrl, table, new Properties)) 您可以选择异步执行写入操作: dfs.map{case(name,table)=> 未来(table.write.mode(“覆盖”).par

Apache spark 如何在pyspark中合并具有条件的两列?

我能够合并和排序这些值,但无法确定如果这些值相等,则不合并的条件 df = sqlContext.createDataFrame([("foo", "bar","too","aaa"), ("bar", "bar","aaa","foo")], ("k", "K" ,"v" ,"V")) columns = df.columns k = 0 for i in range(len(columns)): for j in range(i + 1, len(columns)):

Apache spark 什么';ApacheIgnite和速子的区别是什么

我不熟悉ApacheIgnite,对于Ignite和spark的集成,Ignite似乎提供了一个内存层,数据将在spark应用程序中传播,这是Tachyon作为内存文件系统提供的功能。 所以,我的问题是对于内存文件系统(IGFS for ignite),ignite和超光速子之间的区别是什么?两者之间的利弊是什么 谢谢 Apache Ignite是一个包含许多组件的平台,例如(但不限于): 计算引擎,允许您在fork-join模型中运行分布式计算(不依赖于Hadoop或Spark) 一个符合J

Apache spark 如何使用Kubernetes在spark集群中调度作业

我对Spark和Kubernetes都比较陌生,但我正试图了解这在生产环境中是如何工作的。我计划使用Kubernetes部署Spark群集。然后,我将使用SparkStraeming处理来自Kafka的数据,并将结果输出到数据库。此外,我还计划设置一个每天晚上运行的计划Spark batch作业 1。如何安排夜间批量运行? 我知道Kubernetes有一个类似cron的特性(请参阅)。但据我所知,这是为了安排容器部署,我已经准备好容器并运行了(因为我使用Spark集群进行SparkStreami

Apache spark Spark DataFrame到MySql时间戳错误

我有一个数据框架,其中模式是 id : long (nullable = false) DDate: timestamp (nullable = true) EDate: timestamp (nullable = true) B1Date: timestamp (nullable = true) B2Date: timestamp (nullable = true) B3Date: timestamp (nullable = true) 当我使用df.write.jdbc(url,“df”,

Apache spark Spark Jobserver:任务大小非常大

我在Spark JobServer日志中收到以下消息: 阶段14包含一个非常大的任务(9523KB)。建议的最大任务大小为100 KB 我正在使用以下代码创建RDD: List<String> data = new ArrayList<>(); for (int i = 0; i < 2000000; i++) { data.add(UUID.randomUUID().toString()); } JavaRDD<String> randomD

Apache spark 运行mahout spark itemsimilarity时出现NoClassDefFoundError

我对mahout是新手,希望根据此页面运行命令“mahout spark itemsimilarity”。然而,我得到以下错误,我谷歌了很多,但仍然没有得到任何相关的 ./bin/mahout spark-itemsimilarity Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundEr

Apache spark 向Cassandra写入大火花数据帧-性能调整

我在Spark 2.1.0/Cassandra 3.10集群(4台机器*12个内核*256个RAM*2个SSD)上工作,并在相当长的一段时间内努力使用Spark Cassandra connector 2.0.1将特定的大数据帧写入Cassandra 这是我的表的模式 CREATE TABLE sample_table ( hash blob, field1 int, field2 int, field3 boolean,

Apache spark Intellij和Maven提供了范围

我需要用提供的范围定义我的依赖关系,但我还需要我的应用程序能够在Intellij中运行和测试。如何设置工作流,以便下载Intellij的所有依赖项,以用于自动完成和运行它们 互联网上有大量关于intellij和maven依赖关系管理的资料。这就是一个例子 我建议您使用sbt进行依赖关系管理,因为它改进并优化了maven构建工具所使用的技术。这应该是一个好的开始 此外,您始终可以在中搜索maven提供的范围 您最好在intellij和maven提供的范围内开始一个新项目,并提供此信息。更新2018

Apache spark Spark流检查点引发S3异常

我正在使用eu-central-1区域的S3存储桶作为spark流媒体作业的检查点目录 它会将数据写入该目录,但每10批都会失败,出现以下异常: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 4040.0 failed 4 times, most recent failure: Lost task 0.3 in stage 4040.0 (TID 0, 127.0.0.1, e

Apache spark Apache Spark不删除临时目录

spark程序完成后,临时目录中仍保留3个临时目录。 目录名如下:spark-2e389487-40cc-4a82-a5c7-353c0feefbb7 目录是空的 当Spark程序在Windows上运行时,一个snappy DLL文件也会保留在临时目录中。 文件名如下:snappy-1.0.4.1-6e117df4-97b6-4d69-bf9d-71c4a627940c-snappyjava 每次Spark程序运行时都会创建它们。因此,文件和目录的数量不断增加 如何让它们被删除 Spark版本是

Apache spark 将拼花地板写入NFS

我正在尝试通过以下命令将拼花格式的数据帧写入NFS(网络文件系统): df.write.mode('overwrite').parquet(OUTPUT_DIR) 它可以与HDFS配合使用,但与NFS配合使用时,只会创建_temporary,而不会写入实际的拼花文件。这项工作是成功的,没有任何错误。 作业将相同的df写入HDFS和NFS,具有相同的OutputCommitter日志: FileOutputCommitter: Saved output of task 'attempt_XXXX

Apache spark 读取pyspark中的CSV并转换为浮点

我是新手。 我正在尝试读取CSV文件,并使用PySpark将其转换为RowMatrix。 以下是我的数据格式: 1.,2.,3.,4.,5. 6.,3.,2.,1.,5. 10.,20.,40.,70.,1. 5.,3.,1.,2.,9. 我将此文件作为RDD读取的代码如下: rows = sc.textFile('testmatrix.txt').map( lambda line: line.split(",").map(lambda values: float(values)))

Apache spark 以纱线簇模式提交作业时,Livy失败

我有一个livy服务器在本地运行,它正在连接到一个远程纱线集群以运行spark作业 当我从Livy编程作业api上传jar时,出现以下错误 看起来没有为请求消息映射正确的netty通道处理程序。由于这个原因,没有创建spark上下文 livy.conf设置: livy.spark.master = yarn livy.spark.deploy-mode = cluster 我能够发布到Livy REST/batches api,它提交并成功完成纱线集群中的工作 使用相同的配置,当我试图从jav

Apache spark 将RDD转换为kmeans的有效输入

我正在使用包含csv文件的目录的spark mllib算法计算TF和IDF,代码如下: 导入argparse 从操作系统导入系统 参数解析 parser=argparse.ArgumentParserdescription='在的目录上运行TF/IDF 文本文档 parser.add_argument-i,-input,help=HDFS中的输入, 必需=真 parser.add_argument-o,'-output',help=HDFS中的输出, 必需=真 parser.add_argume

Apache spark Spark packages flag vs jars dir?

在Spark中,通过--packages参数将JAR添加到类路径与直接将JAR添加到$Spark\u HOME/JARs目录有什么区别;DRjar用于使用URL指定的本地或远程jar文件,不解析依赖项,包用于Maven坐标,并解析依赖项 --jars 使用spark submit时,应用程序jar以及--jars选项中包含的任何jar将自动传输到集群。在--jar之后提供的URL必须用逗号分隔。该列表包含在驱动程序和执行器类路径中。目录扩展不适用于--jar --软件包 用户还可以通过使用-

Apache spark K8s上的Spark-获取错误:kube模式不支持在本地模式中引用应用程序依赖项

我正在尝试在k8s上设置火花束。通过本文,我成功地创建并设置了一个包含三个节点的集群: 之后,当我尝试在集群上部署spark时,spark提交设置失败。 我使用了这个命令: ~/opt/spark/spark-2.3.0-bin-hadoop2.7/bin/spark-submit \ --master k8s://https://206.189.126.172:6443 \ --deploy-mode cluster \ --name word-count \ --class org.apa

Apache spark 在Spark流中刷新RDD

我已经实现了Spark Streaming,它从Kafka接收数据。有一个RDD,它从数据库加载数据,对来自流媒体的传入数据执行操作。但是,我希望定期刷新RDD以检索数据源(数据库)中的任何更改。有没有办法刷新/重新加载数据 可以广播rdd,并使用计时器定期更新广播。可以广播rdd,并使用计时器定期更新广播。如果在转换中读取数据库,还可以将时间作为参数传递: .transform((rdd,time)=>refreshDbTable(rdd,time)) 然后如果你想每15分钟刷新一次 def

Apache spark 为什么在主方法之外创建的方法不能在RDD内部运行?

在这种比较中,xRDD不包含任何内容,而xIterator包含我想要的内容。func1是在main方法之外建立的。 那么为什么会出现phoenomenon呢?我如何解决这个问题? 谢谢你的提示 为什么你认为“xRDD不包含任何内容”?你的代码中的dest是什么?我已经调试了代码,发现xRDD不包含任何内容。func1处理一个e.dest字符串并返回一个新字符串。 singleRDD:RDD[(String)] val xRDD = singleRDD.map(e=>{ func1(e.

Apache spark 如何使用Apache Spark读取/写入协议缓冲区消息?

我想使用ApacheSpark从HDFS读取/写入协议缓冲区消息。我找到了以下建议方法: 1) 使用Google的Gson库将protobuf消息转换为Json,然后通过SparkSql读/写它们。此解决方案在中进行了解释,但我认为这样做(转换为json)是一项额外的任务 2) 转换为拼花文件。有和github项目可以这样做,但我不想要拼花文件,因为我总是处理所有列(而不是某些列),这样拼花格式不会给我任何好处(至少我认为) 3) 。也许这就是我要找的。但在scala语言中,我对此一无所知。我正

Apache spark 火花流:连接被拒绝

我有一个简单的Spark流式代码,我想试试: import org.apache.spark.SparkConf import org.apache.spark.streaming.{Seconds, StreamingContext} object WordCountStreamingWithFlume { def main(args: Array[String]) { val ssc = new StreamingContext(new SparkConf().setMast

Apache spark 如何从spark使用reduceByKey对列表中的整数求和?

我有一个(键,值),它的值等于一个列表中的整数列表。我的意思是: (Key, Value) = ("aaa", [ [1,2,3],[1,1,1] ]) 我希望reducebykey对相同位置的每个值求和,如下所示: ("aaa", [1+1,2+1,3+1]) 使用reduceBykey函数执行此操作的最佳方法是什么 谢谢你 虽然我不确定您为什么需要在这里使用reduceByKey,但根据我的理解提供了我的解决方案 import sparkSession.implicits._ def c

Apache spark 如果我们减少每个执行器的内核数并增加执行器数,spark如何管理IO性能

根据我的研究,无论何时运行spark作业,我们都不应该运行具有超过5个内核的执行器,如果我们将内核增加到超出限制,则由于I/O吞吐量差,作业将受到影响 我的疑问是,如果我们增加执行器的数量并减少内核,即使这些执行器最终会在同一台物理机器上,并且这些执行器将从同一个磁盘读取数据并写入同一个磁盘,为什么这不会导致I/O吞吐量问题 可以考虑 用例供参考。执行器中的核心类似于线程。所以,就像我们增加并行性会做更多的工作一样,我们应该始终记住它是有限制的。因为我们必须收集这些并行任务的结果 我不明白,请

Apache spark 以独立模式在主节点上启动多个辅助节点

我有一台80芯的机器。我想在这台机器上以独立模式启动一个Spark服务器,它有8个执行器,每个执行器有10个内核。但是,当我尝试在主服务器上启动第二个worker时,我得到了一个错误 $ ./sbin/start-master.sh Starting org.apache.spark.deploy.master.Master, logging to ... $ ./sbin/start-slave.sh spark://localhost:7077 -c 10 Starting org.apac

Apache spark Spark 2.4在解析返回到默认机架的主机名时出错

在客户端模式下运行应用程序时,驱动程序日志会打印以下信息消息,您知道如何解决此问题吗?有任何spark配置需要更新吗?还是失踪 [INFO ][dispatcher-event-loop-29][SparkRackResolver:54] Got an error when resolving hostNames. Falling back to /default-rack for all 作业运行正常,此消息不在执行器日志中。检查此错误: 如果要在日志中禁止此项,可以尝试将其添加到log4

Apache spark 从pyspark读取hbase

我正试图用pyspark阅读hbase hbase版本:hbase 1.2.0-cdh5.16.2 pyspark版本:版本2.3.0.cloudera4 我想我需要用这个罐子 我下载了它并运行代码: 从pyspark.sql导入SparkSession app_name=“hbase” 火花=( SparkSession.builder.master(“纱线”) .appName(应用程序名称) .config(“spark.jars”、“hbase-spark-1.2.0-cdh5.16

Apache spark 在Spark数据集上调用createOrReplaceTempView时是否会影响性能?

在我的代码中,我们使用了大量createOrReplaceTempView,以便可以在生成的视图上调用SQL。这是在转换的多个阶段完成的。它还帮助我们将代码保存在每个执行特定操作的模块中。下面的示例代码将我的问题置于上下文中,如下所示。因此,我的问题是: 如果创建临时视图,性能损失是什么 从数据集 当我从每个转换中创建多个时,会执行此操作 增加内存大小 这些视图的生命周期是什么?是否有任何函数调用 移除它们 没有 从手册上 以编程方式运行SQL查询 SparkSession上的sql函数使

Apache spark 在负载平衡器后面的Spark Thread客户端模式,该负载平衡器丢弃非活动TCP连接

我正在客户模式下运行Spark on Thread。驱动程序通过负载平衡器与ApplicationMaster分离,负载平衡器在5分钟后终止非活动TCP连接。这会在5分钟后杀死活跃的纱线作业 这是因为。然后,只有当执行器的数量增加或减少时,它才会通过该连接发送消息。这可能不会每五分钟发生一次。在最后一次RPC调用五分钟后,负载平衡器由于不活动而终止RPC连接,并且在RPC连接上调用onDisconnected方法,终止任务 这是一个公司环境,我不可能更改关于删除非活动TCP会话的负载平衡器行为。

Apache spark spark如何分布式写入s3或azure blob

当我们使用spark在AWS s3或Azure blob存储上写入文件时,我们可以简单地写入: df.write.parquet(“/online/path/folder”) 然后,内容将写入指定文件夹下的数百个文件,如下所示: /online/path/folder/f-1 /online/path/folder/f-2 ... /online/path/folder/f-100 我的问题是,既然写入是在数十个或数百个sparks执行器上同时执行的,那么它们如何避免写入同一个文件? 另一个重

Apache spark 有没有办法通过applicationID和链接的spark submit命令获取纱线日志?

我在亚马逊EMR上有大约400个纱线应用程序,分20批运行。大概是这样的: 序号20中i的;是否提交火花-主纱线&;完成 我希望此过程完全自动化,因此希望以编程方式捕获任何故障日志。我知道,如果我们有applicationId,可以通过以下命令查看应用程序日志: 纱线原木-应用程序ID 但是,我无法找到将applicationId链接到相应spark submit命令的方法 假设上面(1.)中的命令一次向纱线提交20个spark submit作业,其中3个失败,我如何知道哪个spark subm

  1    2   3   4   5   6  ... 下一页 最后一页 共 484 页