
Spark
hei bai ying
这个作者很懒,什么都没留下…
展开
-
Spark 系列(一)—— Spark简介
Spark简介一、简介Spark于2009年诞生于加州大学伯克利分校AMPLab,2013年被捐赠给Apache软件基金会,2014年2月成为Apache的顶级项目。相对于MapReduce的批处理计算,Spark可以带来上百倍的性能提升,因此它成为继MapReduce之后,最为广泛使用的分布式计算框架。二、特点Apache Spark具有以下特点:使用先进的DAG调度程序,查询优化器...原创 2019-07-19 07:38:33 · 1602 阅读 · 4 评论 -
Spark 系列(二)—— Spark开发环境搭建
一、安装Spark1.1 下载并解压官方下载地址:http://spark.apache.org/downloads.html ,选择Spark版本和对应的Hadoop版本后再下载: 解压安装包:# tar -zxvf spark-2.2.3-bin-hadoop2.6.tgz1.2 配置环境变量# vim /etc/profile添加环境变量:export SPARK_...原创 2019-07-19 07:37:22 · 1116 阅读 · 0 评论 -
Spark 系列(三)—— 弹性式数据集RDDs
一、RDD简介RDD全称为Resilient Distributed Datasets,是Spark最基本的数据抽象,它是只读的、分区记录的集合,支持并行操作,可以由外部数据集或其他RDD转换而来,它具有以下特性:一个RDD由一个或者多个分区(Partitions)组成。对于RDD来说,每个分区会被一个计算任务所处理,用户可以在创建RDD时指定其分区个数,如果没有指定,则默认采用程序所分配到...原创 2019-07-19 07:37:49 · 606 阅读 · 0 评论 -
Spark 系列(四)—— RDD常用算子详解
一、Transformationspark常用的Transformation算子如下表:Transformation算子Meaning(含义)map(func)对原RDD中每个元素运用 func 函数,并生成新的RDDfilter(func)对原RDD中每个元素使用func 函数进行过滤,并生成新的RDDflatMap(func)与 map 类似,但是每一...原创 2019-06-08 08:52:58 · 1057 阅读 · 3 评论 -
Spark 系列(五)—— Spark运行模式与作业提交
一、作业提交1.1 spark-submitSpark所有模式均使用spark-submit命令提交作业,其格式如下:./bin/spark-submit \ --class <main-class> \ # 应用程序主入口类 --master <master-url> \ # 集群的Master Url --deploy-mo...原创 2019-06-08 08:53:02 · 436 阅读 · 0 评论 -
Spark 系列(六)—— 累加器与广播变量
一、简介在Spark中,提供了两种类型的共享变量:累加器(accumulator)与广播变量(broadcast variable):累加器:用来对信息进行聚合,主要用于累计计数等场景;广播变量:主要用于在节点间高效分发大对象。二、累加器这里先看一个具体的场景,对于正常的累计求和,如果在集群模式中使用下面的代码进行计算,会发现执行结果并非预期:var counter = 0val...原创 2019-06-08 08:53:06 · 473 阅读 · 0 评论 -
Spark 系列(七)—— 基于ZooKeeper搭建Spark高可用集群
一、集群规划这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务。同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop003上分别部署备用的Master服务,Master服务由Zookeeper集群进行协调管理,如果主Master不可用,则备用Master会成为新的主Master。 二、前置条件搭建Spark集群...原创 2019-06-08 08:53:10 · 624 阅读 · 0 评论 -
Spark 系列(八)—— Spark SQL 之 DataFrame和Dataset
一、Spark SQL简介Spark SQL是Spark中的一个子模块,主要用于操作结构化数据。它具有以下特点:能够将SQL查询与Spark程序无缝混合,允许您使用SQL或DataFrame API对结构化数据进行查询;支持多种开发语言;支持多达上百种的外部数据源,包括Hive,Avro,Parquet,ORC,JSON和JDBC等;支持HiveQL语法以及Hive SerDes和UD...原创 2019-06-08 08:53:21 · 593 阅读 · 0 评论 -
Spark 系列(九)—— Spark SQL 之 Structured API
一、创建DataFrame和Dataset1.1 创建DataFrameSpark中所有功能的入口点是SparkSession,可以使用SparkSession.builder()创建。创建后应用程序就可以从现有RDD,Hive表或Spark数据源创建DataFrame。示例如下:val spark = SparkSession.builder().appName("Spark-SQL")....原创 2019-06-08 08:53:30 · 504 阅读 · 0 评论 -
Spark 系列(十)—— Spark SQL 外部数据源
一、简介1.1 多数据源支持Spark支持以下六个核心数据源,同时Spark社区还提供了多达上百种数据源的读取方式,能够满足绝大部分使用场景。CSVJSONParquetORCJDBC/ODBC connectionsPlain-text files注:以下所有测试文件均可从本仓库的resources目录进行下载1.2 读数据格式所有读取API遵循以下调用格式://...原创 2019-06-08 08:54:00 · 1439 阅读 · 0 评论 -
Spark 系列(十一)—— Spark SQL 聚合函数 Aggregations
一、简单聚合1.1 数据准备// 需要导入spark sql内置的函数包import org.apache.spark.sql.functions._val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate()val empDF = spark.read.json(...原创 2019-06-08 08:54:04 · 3413 阅读 · 0 评论 -
Spark 系列(十二)—— Spark SQL JOIN操作
一、 数据准备本文主要介绍Spark SQL的多表连接,需要预先准备测试数据。分别创建员工和部门的Datafame,并注册为临时视图,代码如下:val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate()val empDF = spark.read.json("/usr...原创 2019-06-08 08:54:08 · 13986 阅读 · 0 评论 -
Spark 系列(十三)—— Spark Streaming 与流处理
一、流处理1.1 静态数据处理在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop采用HDFS进行数据存储,采用MapReduce进行数据查询或分析,这就是典型的静态数据处理架构。 1.2 流处理而流处理则是直接对运动中的数据的处理,在接收数据时直接计算数据。大多数数据都是连续的流:传感器事...原创 2019-06-08 08:54:12 · 527 阅读 · 0 评论 -
Spark 系列(十四)—— Spark Streaming 基本操作
一、案例引入这里先引入一个基本的案例来演示流的创建:获取指定端口上的数据并进行词频统计。项目依赖和代码实现如下:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.12</artifactId> <v...原创 2019-06-08 08:54:17 · 986 阅读 · 0 评论 -
Spark 系列(十五)—— Spark Streaming 整合 Flume
一、简介Apache Flume是一个分布式,高可用的数据收集系统,可以从不同的数据源收集数据,经过聚合后发送到分布式计算框架或者存储系统中。Spark Straming提供了以下两种方式用于Flume的整合。二、推送式方法在推送式方法(Flume-style Push-based Approach)中,Spark Streaming程序需要对某台服务器的某个端口进行监听,Flume通过av...原创 2019-06-08 08:54:21 · 343 阅读 · 0 评论 -
Spark 系列(十六)—— Spark Streaming 整合 Kafka
一、版本说明Spark针对Kafka的不同版本,提供了两套整合方案:spark-streaming-kafka-0-8和spark-streaming-kafka-0-10,其主要区别如下:spark-streaming-kafka-0-8spark-streaming-kafka-0-10Kafka版本0.8.2.1 or higher0.10.0 or highe...原创 2019-06-08 08:54:26 · 542 阅读 · 0 评论