SparkStreaming
道法—自然
不积跬步,无以至千里;不积小流,无以成江海。——荀子
展开
-
SparkStreaming+kafka的Direct模式的整合
SparkStreaming+Kafkareceiver模式receiver模式原理图 receiver模式理解:在SparkStreaming程序运行起来后,Executor中会有receiver tasks接收kafka推送过来的数据。数据会被持久化,默认级别为MEMORY_AND_DISK_SER_2,这个级别也可以修改。receiver task对接收过来的数据进行存储和备...原创 2018-09-07 23:37:52 · 954 阅读 · 0 评论 -
rdd的持久化的三种方式:cache,persist,checkpoint
rdd的持久化算子有三种:1、cache:将数据持久化到内存2、persist:可以将数据持久化到磁盘,也可以将数据持久化到内存3、checkpoint:将数据持久化到磁盘。persist的几个参数:cache和persist的注意事项1、cache和persist都是懒执行算子,需要有一个action算子触发执行2、cache和persist算子的返回执行都必...原创 2018-11-22 19:17:50 · 2869 阅读 · 0 评论 -
logstash安装与logstash-input-jdbc插件使用
ElasticSearch的索引可以手动添加索引的,就是类似下面这样添加的PUT /movies/movie/1{ "title": "The Godfather", "director": "Francis Ford Coppola", "year": 1972, "genres": ["Crime", "Dr原创 2018-11-23 18:02:47 · 501 阅读 · 0 评论 -
Spark——countByKey()与reduceByKey()
1.transformation & action transformation :是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD或者从RDD生成一个新的RDD action : 是得到一个值,或者一个结果(直接将RDDcache到内存中) 所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会...原创 2018-11-22 00:02:43 · 500 阅读 · 0 评论 -
spark运行的四种模式比较
Spark可以用R语言,Java语言,Scala语言以及Python语言进行编写程序,spark本身是由Java语言编写的。Java编写的代码量大,Scala编写的比较简洁,但是可读性会比较差。Java和scala 编写的程序执行效率相同,Python编写的程序执行效率不如Java和Scala编写的执行效率。Spark的4中运算模式:local模式,适用于测试;一般是本地跑 Standa...原创 2018-11-22 00:00:11 · 895 阅读 · 0 评论 -
map和maptopair的区别
maptopair是作用在Java代码中map作用在Scala代码中两者的作用是:都对rdd进行处理。在Wordcount中,初步都是进行处理成(k,1)的形式,然后在排序之前,往往按照tuple的形式进行处理,也就是将(k,v)——>(v,k)的形式。排序完成之后,再次将(v,k)的形式转换成(k,v)的形式。...原创 2018-11-21 23:46:44 · 7565 阅读 · 3 评论 -
map flatmap mappartition flatMapToPair四种用法区别
map: 我们可以看到数据的每一行在map之后产生了一个数组,那么rdd存储的是一个数组的集合JavaRDD<String[]> mapresult=lines.map()flatMap: 同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象 最后将所有对象合并为一个对象 JavaRDD<String> objectJavaRDD = ...原创 2018-11-21 23:37:53 · 575 阅读 · 0 评论 -
spark中rdd的宽窄依赖
1)RDD概念:Resilient Distributed Datasets 弹性分布式数据集,是一个容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据。RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(transformation操作)而创建。RDD可看作一个spark的对象,它本身存在于内...原创 2018-11-21 23:14:29 · 2254 阅读 · 0 评论 -
repartition和coalesce的区别
重分区函数: repartition(numPartitions:Int):RDD[T] coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T] 它们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,(假设RDD有N个分区,需要重新划分成M个分...原创 2018-11-21 22:50:02 · 2238 阅读 · 0 评论 -
coalesce重新分区
coalesce重新分区,可以设置参数为true或者false1、如果设置为true,则不需要进行分区,如果设置为false,则需要进行分区2、false不需要进行分区,也不产生shuffle,true会产生分区,也会产生shuffle3、如果重新分区的数量大于之前的分区的数量,那么一定要设置为true,否则分区数不变;如果重新分区的数量小于之前分区的数量,那么可以不设置分区,也就是可...原创 2018-11-21 22:34:33 · 849 阅读 · 0 评论 -
SQL中union和union all的区别
union在进行表求并集后会去掉重复的元素,所以会对所产生的结果集进行排序运算,删除重复的记录再返回结果。union all则只是简单地将两个结果集合并后就返回结果。因此,如果返回的两个结果集中有重复的数据,那么返回的结果就会包含重复的数据。从上面的对比可以看出,在执行查询操作时,union all要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据,那么最好使用un...原创 2018-11-21 21:56:59 · 18181 阅读 · 0 评论 -
spark中makerdd和parallelize的区别
我们知道,在Spark中创建RDD的创建方式大概可以分为三种:(1)、从集合中创建RDD;(2)、从外部存储创建RDD;(3)、从其他RDD创建。 而从集合中创建RDD,Spark主要提供了两中函数:parallelize和makeRDD。我们可以先看看这两个函数的声明:Spark提供了两种创建RDD的方式:读取外部数据集,以及在驱动器程序中对一个集合进行并行化。在驱动器程序中对一个...原创 2018-11-21 21:28:49 · 18645 阅读 · 0 评论 -
并行度和并发数的比较
在互联网概念中,并行度是指可同时开辟的线程的数量并发数是指每个线程中可同时处理的最大数据量。比如4个线程,每个线程可处理的数据量是100万条,那么并行度就是4,并发量就是100万,而对于stage而言,即使其中的task是分批task进行执行的,也都算在并行度中,比如,stage中有100个task,而这100个task分4次才能执行完,那么该stage的并行度就是100....原创 2018-11-22 20:05:38 · 2009 阅读 · 0 评论