随笔分类 -  spark

摘要:实时人群计算——设想 目的 + 做到实时人群打标 技术 + spark streaming + 在前段创建一些判断条件,例如订单访问次数等,以此为依据创建人群。 + spark streaming 周期从mysql拉取新创建的人群 + 以batch进来的人为key,... 阅读全文
posted @ 2016-01-19 18:36 逸新 阅读(517) 评论(0) 推荐(0)
摘要:1、spark: one stack to rule them all一个堆栈解决所有的计算问题2、大数据第一个问题,如何存储,HDFS已经完美解决了。3、资源管理就是yarn,mesource4、大数据如何计算。MR将被Spark取代。batch计算实时流计算 spark streaming交互式... 阅读全文
posted @ 2016-01-02 22:26 逸新 阅读(600) 评论(0) 推荐(0)
摘要:spark sql 应用实例随笔//define the schema using a case class//必须为case class,否则无法隐式转换case class Person(name:String, age: Int)//create an RDD of Person object... 阅读全文
posted @ 2015-12-30 16:55 逸新 阅读(330) 评论(0) 推荐(0)
摘要:前提storageLevel != null读源码查看先看ietrator,查看storageLevel看sparkEnv.getMemoryManger,通过block manager来操作具体的storage,a list of partitions;RDD获取缓存实质上通过block mana... 阅读全文
posted @ 2015-12-30 11:15 逸新 阅读(322) 评论(0) 推荐(0)
摘要:sparkEnv是spark环境变量1、可以从其中get 缓存2、为master workder driver 管理和保存运行时对象。3、excutorid ,excutor 一种为driver类型,一种具体处理task 内部有线程池的excutor4、actorSystem ,如果运行在drive... 阅读全文
posted @ 2015-12-29 17:35 逸新 阅读(1072) 评论(0) 推荐(0)
摘要:spark 每次提交一个作业,都会划分成不同的stage,除了最后一个stage(shuffle map task),前边的stage属于一种类型(result task)。spark中的job,内部是由具体task构成,由于spark的调度模式根据宽依赖的模式划分成不同的stage,而我们从spa... 阅读全文
posted @ 2015-12-29 16:19 逸新 阅读(1097) 评论(0) 推荐(0)
摘要:hadoop RDD 把hdfs的block转换为split 的逻辑映射mapPartitioned RDD 从split中转换,与hadoop RDD 一一映射textFileflatMap 也是mapPartitioned RDDmapreduceByKey会将前期的窄依赖部分合并作为一个sta... 阅读全文
posted @ 2015-12-29 15:50 逸新 阅读(902) 评论(0) 推荐(0)
摘要:窄依赖 narrow dependencymap,filter,union ,join(co-partitioned)制定了父RDD中的分片具体交给哪个唯一的子RDD并行的,RDD分片是独立的。只依赖相同ID的分片range分片one to dependencyrange dependency内部可... 阅读全文
posted @ 2015-12-29 15:31 逸新 阅读(5005) 评论(0) 推荐(0)
摘要:DAG图(RDD 依赖关系图,有向图,无环图)shuffledRDD为宽依赖在spark shell的页面上查看具体的job执行情况我们实际操作save》》》 val cache = sc.textFile("hdfs://hadoop-1:9000/data/test/test.dat").fla... 阅读全文
posted @ 2015-12-29 15:11 逸新 阅读(676) 评论(0) 推荐(0)
摘要:1、缓存persist =>storage level对运算中间数据持久化。对数据缓存了,就会重用。使用场景:步骤1=>步骤2=>【步骤3.1、步骤3.2】 就需要在步骤2进行缓存;每个分片都会进行缓存;有缓存就会有丢失,分片有可能丢失,会造成数据不完整,根据RDD的依赖机制,丢失的会从前边的步骤重... 阅读全文
posted @ 2015-12-29 14:38 逸新 阅读(1401) 评论(0) 推荐(0)
摘要:count返回整个RDD所有元素的个数top返回最大key的top个数元素。会进行倒叙排序返回的为数组reduce针对每个分区进行reduceLeft操作。前两个进行reduce操作,然后结果与第三个元素操作。。。。。。。然后对所有分区的结果进行reduceLeft操作串行处理aggregate也是... 阅读全文
posted @ 2015-12-29 14:15 逸新 阅读(644) 评论(0) 推荐(0)
摘要:saveAsTextFile将RDD中的每个元素变为(null,element.toString)每个分区都会存储成一个block,基本都是一一映射。 sc.textFile("hdfs://hadoop-1:9000/data/test/test.dat").flatMap(_.split(" "... 阅读全文
posted @ 2015-12-29 14:15 逸新 阅读(3572) 评论(1) 推荐(0)
摘要:foreach(较常用)直接循环遍历RDD中的元素collect (较常用)将RDD中的数据收集起来,变成一个Array,仅限数据量比较小的时候。collectAsMap()返回hashMap包含所有RDD中的分片,key如果重复,后边的元素会覆盖前面的元素。reduceByKeyLocally先执... 阅读全文
posted @ 2015-12-29 14:14 逸新 阅读(3016) 评论(0) 推荐(0)
摘要:cache只是persist中的一种情况。cache由persist实现SotrageLevel 缓存级别,是一个枚举。从磁盘缓存到内存中cache算子对RDD转换persist(MEMORY_AND_DISK) lazy级别从磁盘获取数据,如果内存不够则缓存到磁盘中。unpersist (立即生效... 阅读全文
posted @ 2015-12-29 14:13 逸新 阅读(554) 评论(0) 推荐(0)
摘要:filterf:T->Boolean 为true则保留,为false则丢弃。产生filter后的RDDdistinct去除重复元素cartesian笛卡尔积union单纯合并两个RDD,并不会去重。 阅读全文
posted @ 2015-12-29 14:12 逸新 阅读(553) 评论(0) 推荐(0)
摘要:combineByKey,返回相同的key的value序列reduceByKey((A,B)=(A+B)),相同key的合并,合并后接value进行累加。 阅读全文
posted @ 2015-12-29 14:11 逸新 阅读(242) 评论(0) 推荐(0)
摘要:mapValues针对key-value类型的value进行操作,不会对key进行操作。maValue(a=>a+2) 所有的value 都变成value+2subtract对两个RDD进行运算 A∪B - A∩B sample对RDD进行采样,输入RDD,返回采样RDDfraction 百分比se... 阅读全文
posted @ 2015-12-29 14:10 逸新 阅读(825) 评论(0) 推荐(0)
摘要:groupBy针对key进行分组操作。partitionBy原有partitioner和现在partitioner不同才触发重新分片,如果一直则不会触发一般都是根据key进行分片的。cogroup协同,针对两个RDD进行协同划分返回的结果,key-value value为两个数据的集合的迭代器。 阅读全文
posted @ 2015-12-29 14:10 逸新 阅读(722) 评论(0) 推荐(0)
摘要:map 通过自定义函数 f:T->u 将元数据T转换为u,不会将split进行合并flatMap通过自定义函数 f:T->u 进行数据变换,并将拆分后的小集合合并成一个大集合。mapPartitionsIter => iter.filter(_>3)作用于整个分区(例如hbase表等)进行操作glo... 阅读全文
posted @ 2015-12-28 19:30 逸新 阅读(408) 评论(0) 推荐(0)
摘要:cache 可以通过 persist 物化操作流程图 阅读全文
posted @ 2015-12-28 19:29 逸新 阅读(227) 评论(0) 推荐(0)