
Spark
Fenggms
好好学习,天天向上。
展开
-
Spark Streaming 和Kafka Stream 区别?
想了解SparkStreaming 和Kafka Stream的区别,首先我们需要先了解一下Spark Streaming和Kafka Stream.什么是Spark Streaming?Spark Streaming是核心Spark API的扩展,可让其用户执行实时数据流的流处理。它从Kafka,Flume,Kinesis或TCP套接字等来源获取数据。可以使用复杂的算法对这些数据进行进一步处...原创 2019-10-22 20:05:38 · 2669 阅读 · 0 评论 -
spark数据倾斜
什么是数据倾斜?数据倾斜就是我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢。数据倾斜,会导致:OOM(单或少数的节点);运行速度慢,拖慢整个Job执行时间(出现数据倾斜的节点会成为整个Job的瓶颈)。数据倾斜的原理数据倾斜产生的原因Spark在做数据运算的时候会涉及countdis...原创 2018-10-11 23:43:33 · 393 阅读 · 0 评论 -
Spark计算模型RDD(1)——RDD概述及原理
RDD概述及原理RDD是什么?RDD解决什么问题?解决迭代计算是Spark Core的底层核心RDD五大属性创建RDD的方式由一个已经存在的Scala集合创建。由外部存储系统的文件创建。已有的RDD经过算子转换生成新的RDDRDD是什么?RDD(Resilient Distributed Dataset)叫做弹性分布式数据集。是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元...原创 2018-09-28 21:23:24 · 666 阅读 · 0 评论 -
Spark计算模型RDD(2)——RDD算子分类及操作
RDD算子RDD算子分类Transformation(转换)Action(动作)Transformation常用Action常用RDD常用的算子操作RDD算子分类Transformation(转换)Transformation(转换):根据数据集创建一个新的数据集,计算后返回一个新RDD;例如:一个rdd进行map操作后生了一个新的rdd。它不会立即触发整个任务的运行,它是延迟加载。Act...原创 2018-09-28 22:05:00 · 385 阅读 · 0 评论 -
Spark计算模型RDD(3)——RDD的依赖关系
RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。窄依赖窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用宽依赖宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的PartitionLineage(血统)RDD只支持粗粒度转换,即只记录单个块上执...原创 2018-09-28 22:35:25 · 461 阅读 · 0 评论 -
Spark计算模型RDD(4)——RDD的持久化(缓存)
RDD的缓存Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或者缓存数据集。当持久化某个RDD后,每一个节点都将把计算分区结果保存在内存中,对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。RDD相关的持久化和缓存,是Spark最重要的特征之一。可以说,缓存是Spark构建迭代式算法和快速交互式查询的关键。RDD缓存方式RDD通过persist...原创 2018-09-28 22:42:40 · 601 阅读 · 0 评论 -
Spark计算模型RDD(5)——DAG的生成和Spark的任务调度
DAGDAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就形成了DAG,根据RDD之间依赖关系的不同将DAG划分成不同的Stage(调度阶段)。对于窄依赖,partition的转换处理在一个Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据。...原创 2018-09-28 23:57:43 · 2451 阅读 · 0 评论 -
Spark计算模型RDD(6)——RDD容错机制的checkpoint
checkpointcheckpoint可以干什么?checkpoint原理机制persist或者cache与checkpoint的区别如何使用checkpointcheckpoint可以干什么?1 、Spark 在生产环境下经常会面临transformation的RDD非常多(例如一个Job中包含1万个RDD)或者具体transformation的RDD本身计算特别复杂或者耗时(例如计算时长...原创 2018-09-29 00:21:44 · 401 阅读 · 0 评论 -
Spark05——Spark运行架构
Spark运行基本流程Spark运行基本流程参见下面示意图:构建Spark Application的运行环境(启动SparkContext),SparkContext向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor资源;资源管理器分配Executor资源并启动Executor,Executor运行情况将随着心跳发送到资源管理器上;Spark...原创 2018-09-29 00:30:29 · 200 阅读 · 0 评论 -
Spark06——Spark架构及角色介绍
Spark架构图如下:Spark架构同样使用了分布式计算中master-slave模型。master是集群中含有master进程的节点,slave是集群中含有worker进程的节点。master用于管理worker,接收提交的任务,进行任务的分配调度。worker用于管理自己节点上的executor,需要定时向master报活。角色介绍Spark应用程序以一组独立的进程运行在集群上,...原创 2018-09-30 13:46:00 · 693 阅读 · 0 评论 -
Spark07——Spark中的共享变量
spark两种共享变量spark中有两种共享变量。分别为广播变量和累加器。广播变量主要用于高效分发较大的数据对象,累加器主要用于对信息进行聚合。广播变量广播变量允许我们将一个只读的变量缓存在每台机器上,而不用在任务之间传递变量。广播变量可被用于有效地给每个节点一个大输入数据集的副本。广播的数据被集群不同节点共享,且默认存储在内存中,读取速度比较快。Spark还尝试使用高效地广播算法来分...原创 2018-09-30 16:35:14 · 1597 阅读 · 3 评论 -
SparkSQL(1)——Spark SQL概述
Spark SQLspark sql发展spark sql是什么?Spark SQL的特性易整合统一的数据访问兼容Hive标准的数据连接spark sql发展Shark是一个为Spark设计的大规模数据仓库系统,它与Hive兼容。Shark建立在Hive的代码基础上,并通过将Hive的部分物理执行计划交换出来。这个方法使得Shark的用户可以加速Hive的查询。但是Shark继承了Hive...原创 2018-09-30 17:40:50 · 383 阅读 · 0 评论 -
Spark Streaming(05)——Spark Streaming与kafka整合
在Spark1.3版本后,KafkaUtils里面提供了两个创建dstream的方法,一种为KafkaUtils.createDstream,另一种为KafkaUtils.createDirectStream。KafkaUtils.createDstream方式KafkaUtils.createDstream(ssc, [zk], [group id], [per-topic,partitio...原创 2018-10-11 23:06:46 · 353 阅读 · 0 评论 -
Spark Streaming(04)——Spark Streaming与flume整合
Spark Streaming对接FlumeNG有两种方式,一种是FlumeNG将消息Push推给Spark Streaming,还有一种是Spark Streaming从flume 中Poll拉取数据。也就是一种是推模式,主动方在Flume,一种是拉模式,主动方在Spark Streaming。Poll模式(拉模式)1 搭建安装flume2 下载依赖包下载依赖包,spark-strea...原创 2018-10-11 22:43:07 · 280 阅读 · 0 评论 -
Spark04——Spark程序简单使用
Spark程序简单使用1、执行第一个spark程序2、启动Spark-Shell2.1 运行spark-shell --master local[N] 读取本地文件案例:wordcount实现2.2 使用spark-shell --master local[N] 读取HDFS上数据文件,实现单词统计1、执行第一个spark程序在spark目录下执行以下任务:bin/spark-submit ...原创 2018-09-26 22:32:25 · 588 阅读 · 0 评论 -
SparkSQL(3)——Spark SQL DataFrame操作
读取数据源创建DataFrame在spark2.0之后,SparkSession 封装了 SparkContext,SqlContext,通过SparkSession可以获取到SparkConetxt,SqlContext对象。读取文本文件创建DataFrame(1)在本地创建一个文件,有三列,分别是id、name、age,用空格分隔,然后上传到hdfs上。vim person.txt1...原创 2018-09-30 21:26:36 · 876 阅读 · 0 评论 -
SparkSQL(4)——Spark SQL DataSet操作
DataSet1、DataSet是什么?2、DataFrame与DataSet的区别3、DataFrame与DataSet互相转换DataFrame转为 DataSetDataSet转为DataFrame4、DataSet的创建从一个已经存在的scala集合来构建从一个已经存在的rdd中来构建通过dataFrame转换生成Dataset相关方法1、DataSet是什么?DataSet是分布式的...原创 2018-09-30 22:12:14 · 2544 阅读 · 0 评论 -
SparkSQL(5)——Spark SQL编程方式执行查询
编写Spark SQL程序实现RDD转换成DataFrameSpark官网提供了两种方法来实现从RDD转换得到DataFrame,第一种方法是利用反射机制,推导包含某种类型的RDD,通过反射将其转换为指定类型的DataFrame,适用于提前知道RDD的schema。第二种方法通过编程接口与RDD进行交互获取schema,并动态创建DataFrame,在运行时决定列及其类型。一、添加maven依...原创 2018-10-01 01:17:51 · 1365 阅读 · 1 评论 -
SparkSQL(6)——Spark SQL JDBC
Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame。通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。SparkSQL从MySQL中加载数据package com.fgm.sparksqlimport java.util.Propertiesimport org.apache.spark.sql.SparkSession...原创 2018-10-01 18:41:24 · 4978 阅读 · 0 评论 -
Spark08——Spark on yarn
配置安装需要提前配置好hadoop集群,以及Spark。之前均已安装。之后启动HDFS及yarn集群。配置指向HADOOP_CONF_DIR或YARN_CONF_DIR的指向Hadoop集群的(客户端)配置文件的目录。运行模式Spark on yarn运行模式分为两种,cluster模式和client模式。在YARN模式下,资源管理器的地址从Hadoop配置中获取。因此,–master...原创 2018-10-01 21:19:07 · 281 阅读 · 0 评论 -
Spark01——Spark概述
Spark概述1、Spark是什么?2、Spark发展历史3、为什么要使用Spark?4、Spark的特点速度快使用方便通用性兼容性1、Spark是什么?Apache Spark™ is a unified analytics engine for large-scale data processing.—— http://spark.apache.org/Spark是用于大规模数据处理的...原创 2018-09-26 18:03:37 · 1087 阅读 · 0 评论 -
Spark02——Spark集群安装部署
Spark集群搭建集群安装1.1 下载Spark安装包1.2 上传并解压安装包1.3 可选择重命名解压后的安装目录1.4 修改配置文件修改配置文件spark-env.sh修改配置文件slaves1.5 拷贝安装包到其他主机1.6 配置spark环境变量1.7 spark启动1.8 停止spark1.9 spark的web界面集群安装本集群搭建为三台虚拟机,分别在hosts中命名为node01,...原创 2018-09-26 18:45:09 · 370 阅读 · 0 评论 -
Spark Streaming(01)——Spark Streaming概述
Spark Streaming1、Spark Streaming是什么?2、Spark Streaming特点易用容错易整合3、SparkStreaming与Storm的对比1、Spark Streaming是什么?Spark Streaming类似于Apache Storm,用于流式数据的处理。Spark Streaming有高吞吐量和容错能力强等特点。且支持的数据源有很多,例如:Kafk...原创 2018-10-03 11:34:23 · 494 阅读 · 0 评论 -
Spark Streaming(02)——Spark Streaming原理
Spark Streaming原理Spark Streaming 是基于spark的流式批处理引擎,其基本原理是把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。Spark Streaming计算流程Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark Core,也就是把Spark Streaming的...原创 2018-10-03 12:38:57 · 517 阅读 · 0 评论 -
Spark Streaming(03)——Dstream及相关操作
Dstream1、什么是Dstream?2、DStream相关操作2.1 Transformations on DStreamsOutput Operations on DStreams1、什么是Dstream?Dstream(Discretized Stream)是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark算子操作后的结果数据流。在内部实现上,DStre...原创 2018-10-03 13:50:48 · 764 阅读 · 0 评论 -
Spark03——Spark HA高可用部署
Spark高可用部署1、高可用部署说明1 、基于文件系统的单点恢复(Single-Node Recovery with Local File System)。2、基于zookeeper的Standby Masters(Standby Masters with ZooKeeper)。2、基于zookeeper的Spark HA高可用集群部署2.1 停止Spark进程,启动zookeeper进程。2....原创 2018-09-26 20:19:53 · 719 阅读 · 0 评论 -
SparkSQL(2)——Spark SQL DataFrame概述
DataFrameDataFrame是什么?DataFrame与RDD的区别DataFrame与RDD的优缺点比较RDD的优缺点:DataFrame的优缺点:DataFrame是什么?DataFrame的前身是SchemaRDD,从Spark 1.3.0开始SchemaRDD更名为DataFrame。DataFrame与SchemaRDD的主要区别是:DataFrame不再直接继承自RDD,...原创 2018-09-30 20:56:51 · 350 阅读 · 0 评论