spark
文章平均质量分 84
spark
spark man
crazy for coding
展开
-
spark对接elasticsearch遇到的坑
问题:pushdown是官网强烈推荐的,不过我怎么知道他将spark sql转成了什么dsl语句呢?也就是说,我怎么知道谓词下推有没有成功?问题:我从host1中读取es的数据,要写入host2中,怎么做呢?问题:我不要es自动生成_id,我自己指定。问题:出现了和hadoop相关的问题。解决:读取和写入使用不同的配置。问题:解析none值有问题。...原创 2022-08-26 09:19:03 · 1595 阅读 · 3 评论 -
shuffle过程
案例假设我们写一个wordcount的程序:sc.textFile("hdfs://hadoop102:8020/spark-input/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://hadoop102:8020/spark-out/wcout")观看job:划分了两个stage,因为出现了shuffle:一共是4个task,第一个stage两个task,第二个原创 2021-10-21 17:58:54 · 809 阅读 · 0 评论 -
自定义分区并区内排序
简单的wordCount假设我们的文件中有这么一些数据:sparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparksparkhivehadoopsparkspar原创 2021-10-15 08:28:24 · 342 阅读 · 0 评论 -
rdd之行动算子
行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。一些行动算子collectreduceaggregateforeachcounttakeOrderedmincollectcollect就是将executor端的数据收集到driver端。比如一个简单的wordcount程序:object CollectAction { def main(args: Array[String]): Unit = { val conf: SparkConf = new Spa原创 2021-10-15 08:27:36 · 587 阅读 · 0 评论 -
rdd算子之cogroup
coGroup及其应用cogroupintersectionleftOuterJoin, rightOuterJoin, fullOuterJoin, joincogroupcogroup也能组合RDD。例子:object CogroupOperator { def main(args: Array[String]): Unit = { val sparkConf: SparkConf = new SparkConf().setAppName(this.getClass.getSimpl原创 2021-10-15 08:26:41 · 327 阅读 · 0 评论 -
rdd算子之byKey系列
spark中有一些xxxByKey的算子。我们来看看。rdd算子之byKey系列groupByKey解释实现groupByreduceByKeydistinctaggregateByKeycombineByKeygroupByKey解释假设我们要对一些字符串列表进行分组:object GroupByKeyOperator { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("loc原创 2021-10-15 08:25:54 · 410 阅读 · 0 评论 -
rdd算子之map相关
首先是RDD算子中与map有关的几个算子的理解。rdd算子之map相关mapmapPartitionsmapPartitionsWithIndexmapmap其实就是一种数据结构的映射,将一种结构转换成另一种结构。一个简单的spark程序实现列表中的每个数乘以2:object MapOperator { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local[*]").set原创 2021-10-14 20:42:38 · 2431 阅读 · 0 评论 -
Spark源码之通信环境
Spark通信通信组件RpcEndpoint,RpcEnv,RpcEndpointRef,RpcAddressTransportServer,TransportClient,Outbox,Inbox,DispatcherDriver端Executor端通信组件为了了解spark的通信环境,我们需要了解它的主要组件。RpcEndpoint,RpcEnv,RpcEndpointRef,RpcAddress首先是RpcEndpoint:一个通信终端有他自己的生命周期:constructor ->原创 2021-10-14 20:37:11 · 203 阅读 · 0 评论 -
spark源码之环境准备
我们使用yarn集群作为研究spark环境准备yarn环境准备启动Driver启动Executoryarn环境准备spark的入口类是SparkSubmit,在这里,我们开始提交参数这里的args就是--class这些的。解析好这些参数后,我们会返回一个SparkSubmitArguments的一个属性action的值并进行模式匹配。我们可以看到,action默认就是SUBMIT。于是走submit分支:假设我们没有使用--proxy-user参数,于是走runMain(args,原创 2021-10-14 18:58:08 · 197 阅读 · 0 评论