草庐IT

spark-graphx

全部标签

apache-spark - 从 Kafka 读取消息并写入 HDFS

我正在寻找从Kafka读取消息(大量消息,每天大约100B)的最佳方式,在读取消息后我需要对数据进行操作并将其写入HDFS。如果我需要以最佳性能执行此操作,那么从Kafka读取消息并将文件写入HDFS的最佳方式是什么?哪种编程语言最适合?我是否需要考虑为此使用Spark等解决方案? 最佳答案 您应该为此使用Spark流(参见here),它提供了Kafka分区和Spark分区之间的简单对应关系。或者您可以使用UseKafkaStreams(参见more)。KafkaStreams是用于构建应用程序和微服务的客户端库,其中输入和输出数据

apache-spark - Spark Streaming 创建许多小文件

我已经实现了一个SparkStreaming作业,它将过去6个月收到的事件流式传输到HDFS。它在HDFS中创建许多小文件,我希望它们的每个文件大小为HDFS的128MB(block大小)。如果我使用追加模式,所有数据都将写入一个parquet文件。如何配置Spark为每128MB数据创建一个新的HDFSparquet文件? 最佳答案 Spark会在写入之前在对象上写入与分区一样多的文件。这可能真的很低效。要减少部分文件的总数,试试这个,它会检查对象的总字节大小并将其重新调整为+1最佳大小。importorg.apache.spar

java - 如何在 Apache Spark 中重置 MapReduce 函数上的迭代器

我是Apache-Spark的新手。我想知道如何在ApacheSpark的MapReduce函数中重置指向Iterator的指针,这样我就写了Iterator>>iter=arg0;但它不起作用。以下是在java中实现MapReduce功能的类。classCountCandidatesimplementsSerializable,PairFlatMapFunction>>,Set,Integer>,Function2{privateList>currentCandidatesSet;publicCountCandidates(finalList>currentCandidatesSet

java - Apache Spark : Update global variables in workers

我很好奇下面的简单代码是否可以在分布式环境中工作(它在独立环境中可以正常工作)?publicclassTestClass{privatestaticdouble[][]testArray=newdouble[4][];publicstaticvoidmain(String[]args){for(inti=0;itestRDD=sc.textFile("testfile",4).mapPartitionsWithIndex(newFunction2,Iterator>(){@OverridepublicIteratorcall(Integerind,Iterators){/*Update

mongodb - 通过 spark-submit 将额外的 jar 传递给 Spark

我将Spark与MongoDB结合使用,因此依赖于mongo-hadoop驱动程序。多亏了对我原来问题的输入,我才开始工作here.我的Spark作业正在运行,但是,我收到了我不理解的警告。当我运行这个命令时$SPARK_HOME/bin/spark-submit--driver-class-path/usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-

scala - Spark 中的广播变量

假设我在集群上运行了以下代码:privatedefmodifyDatasetFormat(data:String,mappings:Array[HashMap[String,Int]]):Array[Tuple2[Tuple3[Int,Int,Int],Int]]={}varmap=newHashMap[String,Int]()map+=("hello"->2)varmappings=newArray[HashMap[String,Int]])(1)mappings(0)=mapvaloriginalDataset=sc.textFile("/home/paourissi/Deskt

hadoop - Apache Spark 如何实现比 Hadoop MapReduce 快 100 倍的速度以及在什么场景下?

ApacheSpark[http://spark.apache.org/]声称在内存方面比ApacheHadoop快100倍。它是如何实现这种惊人的加速的?这种加速仅适用于迭代机器学习算法还是适用于ETL(提取-转换-加载)任务,如JOIN和GROUPBY?Spark的RDD(弹性分布式数据集)和DataFrames都可以提供这种加速吗?Spark社区有针对上述部分场景的benchmark测试结果吗? 最佳答案 Spark在内存中进行数据处理。不会像MapReduce那样有中间文件,所以没有I/O或者可以忽略不计。它并没有在所有情况

hadoop - $SPARK_HOME 中包含的 hive-site.xml 是什么样的?

我是hive的初学者,当我启动spark作业并从hive读取数据时发生了一些事情(找不到表)。我没有在$SPARK_HOME/conf中设置hive-site.xml吗?提交spark作业命令在这里bin/spark-submit--masterlocal[*]--driver-memory8g--executor-memory8g--classcom.ctrip.ml.client.Client/root/GitLab/di-ml-tool/target/di-ml-tool-1.0-SNAPSHOT.jar 最佳答案 在您的Hi

scala - 在 Spark 中重用连接的数据框

我在本地运行HDFS和Spark,并试图了解Spark持久性的工作原理。我的目标是将连接的数据集存储在内存中,然后动态地对其运行查询。但是,我的查询似乎是重做连接而不是简单地扫描持久的预连接数据集。我通过从HDFS加载两个CSV文件创建并保存了两个数据帧,比方说df1和df2。我将两个数据帧的连接保存在内存中:valresult=df1.join(df2,"USERNAME")result.persist()result.count()然后我在结果之上定义了一些操作:valresult2=result.select("FOO","BAR").groupBy("FOO").sum("BA

hadoop - Spark 和 Map-Reduce 一起使用

在运行mapreduce作业的集群上运行Spark的最佳方法是什么?第一个问题是关于数据的共存性。当我启动一个Spark应用程序时,它会分配执行程序,对吗?它如何知道将它们分配到哪里,以便它们与作业所需的数据位于相同的节点中?(一个作业可能需要一个数据,而另一个作业可能需要另一个数据)如果我保持Spark应用程序运行,那么执行程序会从集群中的机器中获取插槽,这是否意味着对于共存,我需要在每个节点上都有一个Spark执行程序?随着执行程序的运行,这意味着我的mapreduce作业的资源变少了,对吧?我可以为每项工作停止和启动Spark应用程序,但这样就失去了让执行程序启动和运行的速度优势