02 2018 档案
摘要:一、前述 持久化概念:将数据从掉电易失的内存存放到能够永久存储的设备上。 Redis持久化方式RDB(Redis DB) hdfs: fsimageAOF(AppendOnlyFile) hdfs : edit logs 默认关闭的 二、RDB方式 在默认情况下,Redis 将数据库快照保存在名字为
阅读全文
摘要:一、前述 本文将单台节点不同端口模拟集群方式。 二、具体搭建 前提是安装好redis具体可参考http://www.cnblogs.com/LHWorldBlog/p/8463269.html 1、规划 redis集群 3.x版本物理节点1个指定3个主节点端口为7000、7001、7002对应的3个
阅读全文
摘要:一、前述 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remo
阅读全文
摘要:一、前述 Vi类似记事本,所以用好记事本对编程效率有很大得影响,有着事半功倍的效率。 二、具体操作 1、打开文件vim /path/to/somefilevim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行vim +/PATTERN : 打开文件,定位至第一次被PATTER
阅读全文
摘要:一、前述 SparkSQL中的UDF相当于是1进1出,UDAF相当于是多进一出,类似于聚合函数。 开窗函数一般分组取topn时常用。 二、UDF和UDAF函数 1、UDF函数 java代码: 这些参数需要对应,UDF2就是表示传两个参数,UDF3就是传三个参数。 scala代码: 2、UDAF:用户
阅读全文
摘要:一、前述 今天分享一篇SparkStreaming常用的算子transform和updateStateByKey。 可以通过transform算子,对Dstream做RDD到RDD的任意操作。其实就是DStream的类型转换。 算子内,拿到的RDD算子外,代码是在Driver端执行的,每个batch
阅读全文
摘要:一、前述 SparkStreaming是流式处理框架,是Spark API的扩展,支持可扩展、高吞吐量、容错的实时数据流处理,实时数据的来源可以是:Kafka, Flume, Twitter, ZeroMQ或者TCP sockets,并且可以使用高级功能的复杂算子来处理流数据。例如:map,redu
阅读全文
摘要:一、前述 Spark on Hive: Hive只作为储存角色,Spark负责sql解析优化,执行。 二、具体配置 1、在Spark客户端配置Hive On Spark 在Spark客户端安装包下spark-1.6.0/conf中创建文件hive-site.xml: 配置hive的metastore
阅读全文
摘要:一、前述 1、SparkSQL介绍 Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制。 SparkSQL支持查询原生的RDD。 RDD是Spark平台的核心概念,是Spark能够高效的处理大数据的各种场景的基础。 能够在Sca
阅读全文
摘要:一、前述 Spark内存管理 Spark执行应用程序时,Spark集群会启动Driver和Executor两种JVM进程,Driver负责创建SparkContext上下文,提交任务,task的分发等。Executor负责task的计算任务,并将结果返回给Driver。同时需要为需要持久化的RDD提
阅读全文
摘要:一、前述 Spark中Shuffle的机制可以分为HashShuffle,SortShuffle。 SparkShuffle概念 reduceByKey会将上一个RDD中的每一个key对应的所有value聚合成一个value,然后生成一个新的RDD,元素类型是<key,value>对的形式,这样每一
阅读全文
摘要:一、前述 本节讲述Spark Master的HA的搭建,为的是防止单点故障。 Spark-UI 的使用介绍,可以更好的监控Spark应用程序的执行。 二、具体细节 1、Master HA 1、Master的高可用原理 Standalone集群只有一个Master,如果Master挂了就无法提交应用程
阅读全文
摘要:一、前述 Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,需要使用广播变量。 累机器相当于统筹大变量,常用于计数,统计。 二、具体原理 1、广播变量 广播变量理解图 注意事项 1、能不能将一个RDD使用广播变量广播出去? 不能,因为RD
阅读全文
摘要:一、前述 Spark中资源调度是一个非常核心的模块,尤其对于我们提交参数来说,需要具体到某些配置,所以提交配置的参数于源码一一对应,掌握此节对于Spark在任务执行过程中的资源分配会更上一层楼。由于源码部分太多本节只抽取关键部分和结论阐述,更多的偏于应用。 二、具体细节 1、Spark-Submit
阅读全文
摘要:一、前述 今天继续整理几个Transformation算子如下: mapPartitionWithIndex repartition coalesce groupByKey zip zipWithIndex 二、具体细节 mapPartitionWithIndex 类似于mapPartitions,
阅读全文
摘要:一、前述 Spark的资源调度是个很重要的模块,只要搞懂原理,才能具体明白Spark是怎么执行的,所以尤其重要。 自愿申请的话,本文分粗粒度和细粒度模式分别介绍。 二、具体 Spark资源调度流程图: Spark资源调度和任务调度的流程: 1、启动集群后,Worker节点会向Master节点汇报资源
阅读全文
摘要:一、前述 RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。 Spark中的Stage其实就是一组并行的任务,任务是一个个的task 。 二、具体细节 窄依赖 父RDD和子RDD partition之间的关系是一对一的。或者父RDD一个partition只对应一个子RDD的partitio
阅读全文
摘要:一、前述 Spark可以和Yarn整合,将Application提交到Yarn上运行,和StandAlone提交模式一样,Yarn也有两种提交任务的方式。 二、具体 1、yarn-client提交任务方式 配置 在client节点配置中spark-env.sh添加Hadoop_HOME的配置目录即可
阅读全文
摘要:一、前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式。 二、具体 1、Standalone-client提交任务方式 提交命令 ./spark-submit --master spark://node01
阅读全文
摘要:一、前述 Action类算子也是一类算子(函数)叫做行动算子,如foreach,collect,count等。Transformations类算子是延迟执行,Action类算子是触发执行。一个application应用程序(就是我们编写的一个应用程序)中有几个Action类算子执行,就有几个job运
阅读全文
摘要:一、前述 Spark中控制算子也是懒执行的,需要Action算子触发才能执行,主要是为了对数据进行缓存。 控制算子有三种,cache,persist,checkpoint,以上算子都可以将RDD持久化,持久化的单位是partition。cache和persist都是懒执行的。必须有一个action类
阅读全文
摘要:一、前述 Spark中默认有两大类算子,Transformation(转换算子),懒执行。action算子,立即执行,有一个action算子 ,就有一个job。 通俗些来说由RDD变成RDD就是Transformation算子,由RDD转换成其他的格式就是Action算子。 二、常用Transfor
阅读全文
摘要:一、前述 Spark是基于内存的计算框架,性能要优于Mapreduce,可以实现hadoop生态圈中的多个组件,是一个非常优秀的大数据框架,是Apache的顶级项目。One stack rule them all 霸气。 但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要
阅读全文
摘要:一、前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明。 二、具体函数 1、Scala函数的定义 注意点: 函数定义语法 用def来定义 l可以定义传入的参数,要指定传入参数的类型 方法可以写返回值的类型也可以不写,会自动推断,有时候不能省略,必须写
阅读全文
摘要:一、前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 模式匹配机制相当于java中的switch-case。 使用了case关键字的类定义就是样例类(case classes),样例类是种特殊的类。 Actor相当于Java中的多线程。 二、具体阐述 tra
阅读全文
摘要:一、前述 Scala在常用的集合的类别有数组,List,Set,Map,元祖。 二、具体实现 数组 1、创建数组 new Array[Int](10) 赋值:arr(0) = xxx Array[String](“s1”,”s2”,”s3”) 2、数组遍历 创建二维数组(相当于数组中的每元素是一个数
阅读全文
摘要:一、前述 Scala是基于JVM的另一个语言。 Scala官网6个特征。 1).Java和scala可以混编 2).类型推测(自动推测类型) 3).并发和分布式(Actor) 4).特质,特征(类似java中interfaces 和 abstract结合) 5).模式匹配(类似java switch
阅读全文