草庐IT

sparking

全部标签

java - Apache Spark-Kafka.TaskCompletionListenerException & KafkaRDD$KafkaRDDIterator.close 本地集群上的 NPE(客户端模式)

我的spark-streaming代码可以在EclipseIDE上无缝运行。但是当我在本地spark集群上运行它时,它给出了org.apache.spark.util.TaskCompletionListenerException。此外,在spark-submit上,“客户端模式”代码运行良好,直到我启动我的kafka生产者,但当我启动生产者时,它会出现以下错误。我使用命令shSPARK_HOME/sbin/start-all.sh启动本地集群并使用此脚本调用spark-submit。#!/bin/shSP_SUBMIT=/home/user/spark/bin/spark-submi

scala - 将 Spark Dataframe 中的一列转换为多列

我有一个具有这种结构的大数据框(或多或少1.2GB):+---------+--------------+------------------------------------------------------------------------------------------------------+|country|date_data|text|+---------+--------------+------------------------------------------------------------------------------------------

hadoop - 为 S3 提供基于 Hadoop/Spark IAM 角色的访问的正确方法是什么?

我们在EC2和EC2实例上运行Hadoop集群,该实例附加到可以访问S3存储桶的角色,例如:“stackoverflow-example”。几个用户正在集群中放置Spark作业,我们过去使用key但不想继续并希望迁移到角色,因此放置在Hadoop集群上的任何作业都将使用与ec2实例关联的角色。做了很多搜索,发现了10+张门票,其中一些仍然开放,一些已经固定,一些没有任何评论。想知道是否仍然可以将IAM角色用于放置在Hadoop集群上的作业(Spark、Hive、HDFS、Oozie等)。大多数教程都在讨论传递key(fs.s3a.access.key、fs.s3a.secret.key

scala - Spark 执行器如何运行多个任务?

例如,如果执行器的数量是40,但任务的数量是80,这意味着每个执行器将并行运行两个任务。我的函数(执行哪些任务)也不是普通函数,但我在其中调用程序。因此,每个任务实际上需要几分钟才能完成。所以,我的问题是,Spark如何管理它?这些任务会共享执行者的JVM吗?核心数量如何,会在这两个任务之间分配吗?如果不希望这两个任务同时运行,而是以循环方式执行它们,也就是说,用执行程序的所有核心运行第一个任务,只有当它完成时,才运行第二个任务怎么办? 最佳答案 这取决于您如何分配资源,即内核数量、每个执行程序的内核数以及分配给执行程序的内存。它还

scala - 如何强制 spark/hadoop 忽略文件上的 .gz 扩展名并将其读取为未压缩的纯文本?

我的代码如下:vallines:RDD[String]=sparkSession.sparkContext.textFile("s3://mybucket/file.gz")URL以.gz结尾,但这是遗留代码的结果。该文件是纯文本,不涉及压缩。然而,spark坚持将其作为GZIP文件读取,这显然失败了。我怎样才能让它忽略扩展名并简单地将文件作为文本读取?基于thisarticle我已经尝试在不包括GZIP编解码器的各个地方设置配置,例如:sparkContext.getConf.set("spark.hadoop.io.compression.codecs",classOf[Defau

java - spark 0.9.1 on hadoop 2.2.0 maven 依赖

我在pom.xml中设置了ApacheSparkmaven依赖,如下所示org.apache.sparkspark-core_2.100.9.1但是我发现这个依赖使用了“hadoop-client-1.0.4.jar”和“hadoop-core-1.0.4.jar”,当我运行我的程序时出现错误“org.apache.hadoop.ipc.RemoteException:服务器IPC版本9无法与客户端版本4通信”,这表明我需要将hadoop版本从1.0切换。4到2.2.0。更新:以下解决方案是否是解决此问题的正确方法?org.apache.sparkspark-core_2.100.9.

hadoop - 您如何设置具有不同批处理持续时间的多个 Spark Streaming 作业?

我们正处于转换大型企业当前数据架构的开始阶段,我目前正在构建一个SparkStreamingETL框架,我们将在其中将所有源连接到目的地(源/目的地可以是Kafka主题、Flume、HDFS等)通过转换。这看起来像:SparkStreamingEtlManager.addEtl(源、转换*、目标)SparkStreamingEtlManager.streamEtl()streamingContext.start()假设是,因为我们应该只有一个SparkContext,所以我们将在一个应用程序/jar中部署所有ETL管道。问题在于batchDuration是上下文本身的属性,而不是Rec

scala - Apache Spark - spark 中的内部作业调度程序如何定义用户和池

我很抱歉在这里有点笼统,但我对作业调度在spark中的内部工作方式有点困惑。来自文档here我知道这是HadoopFairScheduler的某种实现。我无法理解这里的用户到底是谁(是linux用户、hadoop用户还是spark客户端?)。我也无法理解这里的池是如何定义的。例如,在我的hadoop集群中,我将资源分配给了两个不同的池(我们称它们为团队1和团队2)。但是在sparkcluster中,不同的pool和里面的user不会实例化自己的sparkcontext吗?这再次让我质疑,当我将属性设置为spark.scheduler.pool时,我传递了哪些参数。我基本了解驱动程序如何

hadoop - 如何在 Apache Spark 中重新分区压缩文件?

我在HDFS中有数千个大小为2GB的压缩文件。我正在使用spark来处理这些文件。我正在使用SparktextFile()方法从HDFS加载文件。我的问题是如何重新分区数据,以便我可以并行处理每个文件。目前每个.gz文件都在一个任务中处理。因此,如果我处理1000个文件,则只会执行1000个任务。我知道,压缩文件不可分割。但是有没有其他方法可以让我更快地运行我的工作? 最佳答案 您可以在加载文件后使用rdd.repartition(#partitions)。这具有相关的洗牌成本,因此您需要评估并行化的性能提升是否涵盖了这个初始洗牌成

hadoop - 带有 'yarn-client' 的 Spark-shell 尝试从错误的位置加载配置

我正在尝试从笔记本电脑启动bin/spark-shell和bin/pyspark,连接到yarn-client中的Yarn集群模式,我得到了同样的错误WARNScriptBasedMapping:Exceptionrunning/etc/hadoop/conf.cloudera.yarn1/topology.py10.0.240.71java.io.IOException:Cannotrunprogram"/etc/hadoop/conf.cloudera.yarn1/topology.py"(indirectory"/Users/eugenezhulenev/projects/clo