Spark社区
着重书写大数据Spark相关知识
啊策策
通吃java, 大数据.
展开
-
DStream实战之Spark Streaming整合Kafka, 通过KafkaUtils.createDirectStream方式整合Kafka 38
前言kafka作为一个实时的分布式消息队列,实时的生产和消费消息,这里我们可以利用SparkStreaming实时地读取kafka中的数据,然后进行相关计算。在Spark1.3版本后,KafkaUtils里面提供了两个创建dstream的方法,一种为KafkaUtils.createDstream(此种方法已被淘汰,博主上篇文章中已提过~),另一种为KafkaUtils.createDire...原创 2019-11-06 19:59:56 · 2324 阅读 · 0 评论 -
DStream实战之Spark Streaming整合Kafka, 通过 KafkaUtils.createDstream方式整合Kafka 37
前言kafka作为一个实时的分布式消息队列,实时的生产和消费消息,这里我们可以利用SparkStreaming实时地读取kafka中的数据,然后进行相关计算。在Spark1.3版本后,KafkaUtils里面提供了两个创建dstream的方法,一种为KafkaUtils.createDstream,另一种为KafkaUtils.createDirectStream。1. KafkaUti...原创 2019-11-03 16:09:41 · 915 阅读 · 0 评论 -
DStream实战之Spark Streaming整合fulme实战, Flume向Spark Streaming中push推数据 36
前言本文所需要的安装包&Flume配置文件,博主都已上传,链接为本文涉及安装包&Flume配置文件本文涉及的安装包&Flume配置文件,请自行下载~flume作为日志实时采集的框架, 可以与Spark Streaming实时处理框架进行对接.flume实时产生数据, Spark Streaming做实时处理Spark Streaming对接fluem有两种方式,一...原创 2019-11-03 14:39:09 · 190 阅读 · 0 评论 -
DStream实战之Spark Streaming整合fulme实战, Spark Streaming从Flume中poll拉取数据 35
前言flume作为日志实时采集的框架, 可以与Spark Streaming实时处理框架进行对接.flume实时产生数据, Spark Streaming做实时处理Spark Streaming对接fluem有两种方式,一种是Flume将消息Push推给Spark Streaming;还有一种是Spark Streaming从flume中Poll拉取数据.1. Spark Stream...原创 2019-11-03 11:21:24 · 343 阅读 · 0 评论 -
DStream实战之Spark Streaming开窗函数reduceByKeyAndWindow统计一段时间内出现的词汇并排序 34
需求想统计一段时间内每个单词出现的次数, 并且对出现次数的高低进行排序, 选出这一段时间内的热词1. 架构图2. 实现流程安装并启动生成者首先在linux服务器上用YUM安装nc工具,nc命令是netcat命令的简称,都是用来设置路由器。我们可以利用它向某个端口发送数据。yum install -y nc启动一个服务端并监听9999端口nc-lk 9999向指定的端口发送数据...原创 2019-10-20 17:59:33 · 677 阅读 · 0 评论 -
DStream实战之Spark Streaming开窗函数reduceByKeyAndWindow,实现某一段时间单词计数 33
前言我想一段时间一段时间的统计每个单词出现的次数.1. 架构图2. 实现流程安装并启动生成者首先在linux服务器上用YUM安装nc工具,nc命令是netcat命令的简称,都是用来设置路由器。我们可以利用它向某个端口发送数据。yum install -y nc启动一个服务端并监听9999端口nc-lk 9999向指定的端口发送数据编写Spark Streaming程序在逻...原创 2019-10-12 16:28:04 · 301 阅读 · 0 评论 -
DStream实战之SparkStreaming接受socket数据,实现所有批次单词计数结果累加, updateStateByKey(func)算子 32
前言在上面的那个案例中存在这样一个问题:每个批次的单词次数都被正确的统计出来,但是结果不能累加!如果将所有批次的结果数据进行累加使用updateStateByKey(func)来更新状态.1. 架构图2. 实现流程安装并启动生成者首先在linux服务器上用YUM安装nc工具,nc命令是netcat命令的简称,都是用来设置路由器。我们可以利用它向某个端口发送数据。```yum ins...原创 2019-10-12 16:09:01 · 254 阅读 · 0 评论 -
DStream实战之Spark Streaming接收socket数据实现WordCount 31
前言现在想要通过socket发送数据, 然后Spark Streaming接收数据并且统计socket发送的每个单词的个数.1. 架构图2. 实现流程安装并启动生产者首先在linux服务器上用yum安装netcat工具,netcat工具用了发送socket套接字,netcat的命令是nc, 它使用来设置路由器的,我们可以利用它向某个端口发送数据.linux安装netcat命令如下:...原创 2019-10-12 14:41:33 · 523 阅读 · 0 评论 -
DStream相关操作, DStream的Transformations转换算子和OutPut输出算子, Window Operations开窗函数 30
前言DStream上的操作与RDD的类似,分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的操作,如:updateStateByKey()、transform()以及各种Window相关的操作。1. Transformations on DStreams特殊的Transformations操作UpdateSt...原创 2019-10-09 16:32:40 · 281 阅读 · 0 评论 -
什么是DStream, 什么是Spark Streaming基础抽象 29
什么是DStreamDiscretized Stream(离散型数据流)是Spark Streaming的基础抽象, 代表持续性的数据流和经过各种Spark算子操作后的结果数据流.在内部实现实现上, DStream是一系列连续的RDD来表示, 每个RDD含有一段时间间隔内的数据(相对于一个算子不同时间段的数据).对数据的操作也是按照RDD为单位来进行的Spark Streaming使...原创 2019-10-09 16:18:35 · 1760 阅读 · 0 评论 -
Spark Streaming的原理,计算流程, 容错性和实时性, Spark Streaming中RDD的传承关系, DStream的简介 28
1. Spark Streaming的原理Spark Streaming是基于Spark的流式批处理引擎, 其原理是把输入数据以某一时间间隔批量的处理, 当批处理间隔缩短到秒级时, 便可以用于处理实时数据流.2. Spark Streaming的计算流程Spark Streaming是将流式计算分解成一系列短小的批处理作业.这里的批处理引擎是Spark Core, 也就是把Spark S...原创 2019-10-09 10:42:43 · 580 阅读 · 0 评论 -
什么是Spark Streaming, 为什么要学Spark Streaming, Spark Streaming和Strom有什么区别 27
1. 什么是Spark StreamingSpark Streaming类似于Apache Strom, 用于流式数据的处理.根据其官网解释, Spark Streaming有着高吞吐量和高容错的特点.Spark Streaming支持的数据源有很多, 例如:Kafka, Flume, Twitter, ZeroMQ和简单的TCP套接字等.数据输入后,可以使用Spark进行高度的抽象操...原创 2019-10-08 19:10:47 · 739 阅读 · 0 评论 -
SparkSql与Mysql交互, SparkSql如何读取Mysql中的数据, SparkSql如何将数据写入Mysql 26
前言SparkSql可以通过JDBC从关系型数据库中读取数据,创建DataFrame. 然后通过一系列操作后再把数据写回关系型数据库中.1. Spark从Mysql中读取数据1.1 通过IDEA中代码加载要设置好properties属性,也就是登录Mysql的用户名和密码通过spark.read.jdbc读取数据.package com.acece.sparkSqlimport ...原创 2019-10-08 18:02:10 · 1358 阅读 · 0 评论 -
通过IDEA编写Spark SQL, 以编程方式执行Spark SQL查询, 使用Scala语言操作Spark SQL 25
1. 使用Scala语言操作Spark SQL, 将RDD转为DataFrame原创 2019-10-08 15:08:01 · 1624 阅读 · 0 评论 -
DataFrame, DataSet与RDD的区别, DataFrame与DatSet相互转换, 如何创建DataSet 24
1. 什么是DataSetDataSet是分布式的数据集合,Dataset提供了强类型支持,也是在RDD的每行数据加了类型约束。DataSet是在Spark1.6中添加的新的接口。它集中了RDD的优点(强类型和可以用强大lambda函数)以及使用了Spark SQL优化的执行引擎。DataSet可以通过JVM的对象进行构建,可以用函数式的转换(map/flatmap/filter)进行多种...原创 2019-09-29 14:44:04 · 442 阅读 · 0 评论 -
DataFrame常用操作,DSL风格语法操作DataFrame, SQL风格语法操作DataFrame 23
1. DataFrame常用操作1.1 DSL风格语法DataFrame提供了一个**领域特定语言(DSL)**来操作结构化数据。博主我理解为DataFrame自身的一些方法函数。示例如下:如下示例中的数据,来源于博主上上一篇播客personDF数据来源现已经有一个DataFrame类型的数据,想要查看这个数据里面的详情,需要使用.show方法personDF.show查看D...原创 2019-09-24 15:21:51 · 1272 阅读 · 0 评论 -
Spark读取parquet格式数据创建DataFrame 22
3. 读取parquet列式存储格式文件创建DataFrame准备数据文件使用Spark自带的数据包/export/servers/spark/example/src/mian/resources/users.parquet在spark shell执行下面命令, 读取数据这里使用SparkSession创建DataFrameval parquetDF = spark.read...原创 2019-09-23 10:39:02 · 461 阅读 · 0 评论 -
Spark读取Json格式数据创建DataFrame 21
2. 读取Json文件创建DataFrame数据文件spark安装包自带不通格式的数据,我们去spark包里面找json文件/export/servers/spark/example/src/main/resourcces/people.json在spark shell执行下面命令,读取数据这里我们使用通过SparkSession构建DataFrameval jsonDF =...原创 2019-09-23 10:32:36 · 1098 阅读 · 0 评论 -
Spark读取文本文档创建DataFrame, 通过RDD转换成DataFrame, 通过SparkSession构建DataFrame 20
1. 读取文本文件创建DataFrame原创 2019-09-21 15:26:24 · 2829 阅读 · 0 评论 -
DataFrame是什么, DataFrame和RDD的区别, DataFrame和RDD优缺点 19
1. 什么是DataFrameDataFrame的前身是SchemaRDD, 从Spark 1.3.0开始SchemaRDD更名为DataFrame.与SchemaRDD的主要区别是: DataFrame不再直接继承自RDD, 而是自己实现了RDD的绝大多数功能.但仍旧可以在DataFrame上调用RDD方法将其转换为一个RDDDataFrame是一种以RDD为基础的分布式数据集, 类似于...原创 2019-07-26 11:43:05 · 2220 阅读 · 0 评论 -
什么是Spark SQL, Spark SQL优势 18
1. SparkSql的前世今生Shark是一个为Spark设计的大规模数据仓库系统, 它与Hive兼容. Shark建立在Hive的代码基础上, 并通过将Hive的部分物理执行计划交换出来.这个方法使得Shark的用户可以加速Hive的查询, 但是Shark继承了Hive的大且复杂的代码, 使得Shark很难优化和维护, 同时Shark依赖于Spark的版本.随着我们遇到了性能优化的上限...原创 2019-07-25 18:53:08 · 2146 阅读 · 0 评论 -
Spark设置日志级别的三种方式, Spark-sumbit设置日志级别,修改Spark本地conf设置日志级别, IDEA中设置日志级别 17
1. Spark设置日志级别前言Spark有多种方式设置日志级别,这次主要记录一下如何在Spark-submit设置Spark日志级别,本文介绍三种方式需求因为Spark的日志级别默认为INFO(log4j.rootCategory=INFO, console),这样在运行程序的时候有很多我不需要的日志信息都打印出来了,看起来比较乱,比较烦,抓不住重点,而我只想把warn和error打印...原创 2019-07-21 17:40:11 · 14844 阅读 · 3 评论 -
Spark实战案例二, 通过Spark实现IP地址查询,广播大变量broadcast 16
1. 需求分析在互联网中,我们经常会见到城市热点图这样的报表数据,例如在百度统计中, 会统计今年的热门旅游城市, 热门包括学校等.会将这样的信息显示在热点图中.因此,我们需要通过日志信息(运营商或者网站自己生产)和城市ip段信息来判断用户的ip段,统计热点经纬度.2. 技术调研因为我们的需求是完成一张报表信息,所以对程序的实时性没有要求,所以可以选择内存计算spark来实现上述功能.3...原创 2019-07-21 16:35:30 · 467 阅读 · 0 评论 -
Spark实战案例一, 通过Spark实现点击流日志分析案例, pv和uv, Spark统计PV, Spark统计UV, Spark统计访问的topN 15
1. 案例一: 通过Spark实现点击流日志分析前言:pv, uv概念**PV: ** 重视每一次的访问, 一个用户访问一次就记录一次. 访问一个页面算作一次PVUV: 重视每一次会话的情况, 30分钟内如果同一个seesion一直访问不同页面,则只记录一个UV,一天之内访问网站不重复的用户数. 不重复的用户越多, 说明我这个网站访问的人数越多. 使用cookie来进行区分不同的用户....原创 2019-07-21 15:46:33 · 1040 阅读 · 0 评论 -
Spark的执行原理,本地Master模式, Yarn_cluster模式运行, Yarn_client模式运行, Yarn_cluster和Yarn_client的区别 14
1. 本地Master负责调度资源1.1 命令行bin/spark-submit --class cn.spark.com.WordCountForHDFS \--master spark:node01:8080 \--executor-memory 1g \ //每个executor分配1g的内存--total-executor-cores 4 \ //所有的executor加起来核数...原创 2019-07-17 09:36:31 · 2331 阅读 · 0 评论 -
Yarn的调度器, Spark的任务调度, DAGSchedule, TaskSchedule, worder 13
1. 复习, Yarn三种调度器1.1 什么是调度器主要是用于研究一个任务提交之后,下一个任务又来了改怎么执行. 绝对我们任务如何进行执行.1.2 Yarn当中的调度器主要有三种第一种:队列调度器FIFO: 第一个任务提交,先执行.然后第二个任务提交,等着第一个任务执行完毕之后再执行第二个任务....原创 2019-07-15 19:19:05 · 386 阅读 · 0 评论 -
Spark中DAG是什么, DAG中Stage如何划分 12
1. 什么是DAGDAG(Directed Acyclic Graph)叫做有向五环图, 原始的RDD通过一系统的转换就形成了DAG.根据RDD之间依赖关系的不同, 将DAG换分成不同的Stage(调度阶段).对于窄依赖, parition的转换处理在一个Stage中完成计算对于宽依赖,由于有Shuffle的存在,只能在Parent RDD处理完成后,才能开始计算接下来的计算.宽依赖是划...原创 2019-07-11 11:37:10 · 1413 阅读 · 2 评论 -
RDD的缓存机制, cache和persist的区别, checkpoint检查点, checkpoint代码实现方式, 缓存和checkpoint设置之后的读取顺序 11
1. RDD的缓存Spark运算速度非常快的原因之一, 就是在不同操作中可以再内存中持久化或者缓存数据集.当持久化某个RDD后, 每一个节点都将计算分区结果保存在内存中, 对此RDD或衍生出的RDD进行的其他动作中重用.这使得后续的动作变得更加迅速.RDD相关的持久化和缓存, 是Spark最重要的特征之一.缓存是Spark构建迭代式算法和快速交互式查询的关键....原创 2019-07-11 11:01:51 · 497 阅读 · 0 评论 -
RDD的依赖关系, 宽依赖, 窄依赖, Lineage血统 10
1. RDD的依赖关系RDD和它依赖的父RDD的关系有两种不同的类型,窄依赖(narrow dependency)宽依赖(wide dependency)2. 窄依赖 narrow dependency窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用.总结: 窄依赖可以形象的比喻为独生子女.3. 宽依赖宽依赖指的的是多个子RDD的Par...原创 2019-07-09 09:53:33 · 269 阅读 · 0 评论 -
RDD常用的算子操作, map和mapPartitions区别, groupByKey和groupBy区别, repartition和coalesce区别, 广播大变量broadcast 09
1. filterfilter 是对RDD中的每个元素都执行一个指定的函数来过滤产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。val rdd = sc.parallelize(List(1,2,3,4,5,6)) val filterRdd = rdd.filter(_ > 5)filterRdd.collect() //返回所有大于5的数据的一...原创 2019-07-08 19:56:42 · 985 阅读 · 0 评论 -
创建RDD3种方法, RDD算子分类, Transformation在worker中执行, Action算子在Driver中执行 08
创建RDD的3中方法有一个已经存在的Scala集合创建val rdd = sc.parallelize(Array(1,2,3,4,5,6))有外部存储系统的文件创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS,Cassandra,Hbase等val rdd = sc.textFile("/words.txt")已有的RDD经过算子转换生成新的RD...原创 2019-07-05 20:15:32 · 350 阅读 · 0 评论 -
弹性分布式数据集RDD, RDD的属性, 为什么会产生RDD, Spark如何解决迭代计算, Spark如何实现交互式计算 07
1. 什么是RDDRDD(Reilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变,可分区,里面的元素可并行计算的集合.RDD具有数据流模型的特点:自动容错,位置感知性调度和可伸缩性.RDD允许用户在执行多个查询时显示地将数据缓存在内存中,后续的查询能够重用这些数据,这极大地提升了查询速度.Dataset:一个数据集...原创 2019-07-05 14:39:47 · 928 阅读 · 0 评论 -
IDEA中编写Spark的WordCount程序 06
1. 创建一个项目2. 选择Maven项目,然后点击next3. 填写Maven的坐标,然后点击next4. 填写项目名称,然后点击finish5. 创建好Maven项目后,点击Enable Auto-Import6. 配置Maven的pom.xml<properties> <scala.version>2.11.8</scala...原创 2019-06-20 09:25:28 · 1032 阅读 · 2 评论 -
初始Spark程序、shell命令执行Spark程序、Spark-shell完成wordcount 05
1. 普通模式提交任务该算法是利用蒙特·卡罗算法求圆周率PI,通过计算机模拟大量的随机数,最终会计算出比较精确的πbin/spark-submit --class org.apache.spark.examples.SparkPi \--master spark://node01:7070 \--executor-memory 1G \--total-executor-cores 2 ...原创 2019-06-04 18:27:45 · 1807 阅读 · 0 评论 -
Spark角色介绍、Driver Program、SparkContext、Cluster Manager、Worker Node、Executor、Task 04
前言Spark是基于内存计算的大数据并行计算框架。因为其基于内存计算,比Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性。Spark架构使用了分布式计算中master-slave模型,master是集群中含有master进程的节点,slave是集群中含有worker进程的节点。Driver Program:运行main函数并且新建SparkC...原创 2019-06-04 15:25:13 · 1884 阅读 · 0 评论 -
Spark HA高可用部署、基于文件系统单点恢复、基于zookeeper的Standby Master、如何恢复到上一次活着master挂掉之前的状态 03
1. Spark HA高可用部署Spark Standalone集群时Master-Slaves架构的集群模式,和大部分的Master-Slaves结果集群一样,存在着Master单点故障的问题。如何解决这个单点故障的问题,Spark提供了两种方案:1.1 基于文件系统的单点恢复(Single-Node Recovery with Local File System)主要用于开发或测试环境...原创 2019-05-29 17:00:30 · 577 阅读 · 0 评论 -
Spark集群安装、Spark的web界面 02
1. 下载spark安装包下载地址Spark官网:Spark官网安装包,这里我们使用 spark-2.1.3-bin-hadoop2.7版本。2. 规划安装目录/export/servers3. 解压安装包tar -zxvf spark-2.1.3-bin-hadoop2.7.tgz4. 重命名解压后的目录mv spark-2.1.3-bin-hadoop2.7 spark5...原创 2019-05-29 15:11:17 · 909 阅读 · 0 评论 -
Spark入门、Spark是什么、Spark下属组件、Spark和MapReduce的区别、Spark的特点 01
1. Spark是什么,下属组件有什么Spark是一种快速、通用、可扩展的大数据分析引擎,下属组件有SparkSqlSparkStreamingGraphXMlib并行计算框架,Spark中的job中间输出和结果可以保存在内存中。2. 为什么要学Spark(Spark和MR区别)Spark是一个开源的类似于Hadoop MapReduce的通用的并行计算框架Spark...原创 2019-05-29 15:13:54 · 451 阅读 · 0 评论