Spark
Spark
程序员学习圈
值得去的地方,没有捷径;难走的路,才更值得开始!
展开
-
Spark_FAQ
该篇我们将会从如下几个方向进行Spark性能调优的学习: • Spark的监控 • Spark调优要点 • Spark数据倾斜调优 • Spark资源运行参数调优 • Spark程序开发调优 • Spark Shuffle调优 • JVM GC优化 1.Spark的监控 • Spark Web UI:Sp...原创 2019-01-16 21:58:06 · 463 阅读 · 0 评论 -
Spark 性能调优
该篇我们将会从如下几个方向进行Spark性能调优的学习: • Spark的监控 • Spark调优要点 • Spark数据倾斜调优 • Spark资源运行参数调优 • Spark程序开发调优 • Spark Shuffle调优 • JVM GC优化 1.Spark的监控 • Spark Web UI:Sp...原创 2019-01-16 15:36:08 · 622 阅读 · 0 评论 -
Spark 内核解析
该篇我们将会从如下几个方向进行学习Spark的内核机制: • Spark的通信架构 • Spark的脚本解析 • Spark的交互流程 • Spark的Shuffle过程 • Spark的内存管理 • Spark的部署模式 1.Spark 通信架构 Spark作为分布式计算框架,多个节点的设计与相互通信模式是其重要的组成...原创 2019-01-16 12:00:27 · 634 阅读 · 0 评论 -
Spark GraphX 简单介绍
Spark GraphX是一个分布式的图处理框架。社交网络中,用户与用户之间会存在错综复杂的联系,如微信、QQ、微博的用户之间的好友、关注等关系,构成了一张巨大的图,单机无法处理,只能使用分布式图处理框架处理,Spark GraphX就是一种分布式图处理框架。 下面以一个简单的示例进行说明:1. POM文件 在项目的pom文件中加上Spark GraphX的包:...原创 2019-01-14 14:20:50 · 985 阅读 · 0 评论 -
Spark MLlib 简单介绍
1.机器学习介绍 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 机器学习算法是从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。 机器学习可分为以下几...原创 2019-01-14 13:31:33 · 9785 阅读 · 1 评论 -
Spark Streaming 解析-7x24 不间断运行
1.检查点机制 检查点机制是我们在Spark Streaming中用来保障容错性的主要机制。与应用程序逻辑无关的错误(即系统错位,JVM崩溃等)有迅速恢复的能力.它可以使Spark Streaming阶段性地把应用数据存储到诸如HDFS或Amazon S3这样的可靠存储系统中, 以供恢复时使用。具体来说,检查点机制主要为以下两个目的服务。 • 控制发生失败时需要重算的状态数...原创 2019-01-14 11:36:10 · 798 阅读 · 0 评论 -
Spark Streaming 解析-Caching / Persistence
和RDDs类似,DStreams同样允许开发者将流数据保存在内存中。也就是说,在DStream上使用persist()方法将会自动把DStreams中的每个RDD保存在内存中。当DStream中的数据要被多次计算时,这个非常有用(如在同样数据上的多次操作)。对于像reduceByWindow和reduceByKeyAndWindow以及基于状态的(updateStateByKey)这种操作...原创 2019-01-14 11:16:41 · 203 阅读 · 0 评论 -
Spark Streaming 解析-累加器和广播变量
累加器(Accumulators)和广播变量(Broadcast variables)不能从Spark Streaming的检查点中恢复。如果你启用检查并也使用了累加器和广播变量,那么你必须创建累加器和广播变量的延迟单实例从而在驱动因失效重启后他们可以被重新实例化。如下例述:object WordBlacklist { @volatile private var instanc...原创 2019-01-13 22:25:39 · 697 阅读 · 0 评论 -
Spark Streaming 解析-输入转换和输出
1.初始化StreamingContextimport org.apache.spark._import org.apache.spark.streaming._val conf = new SparkConf().setAppName(appName).setMaster(master)val ssc = new StreamingContext(conf, Seconds(1))...原创 2019-01-11 15:53:23 · 851 阅读 · 0 评论 -
Spark Streaming 架构与抽象
Spark Streaming使用“微批次”的架构,把流式计算当作一系列连续的小规模批处理来对待。Spark Streaming从各种输入源中读取数据,并把数据分组为小的批次。新的批次按均匀的时间间隔创建出来。在每个时间区间开始的时候,一个新的批次就创建出来,在该区间内收到的数据都会被添加到这个批次中。在时间区间结束时,批次停止增长。时间区间的大小是由批次间隔这个参数决定的。批次间隔一般设...原创 2019-01-11 13:01:57 · 440 阅读 · 0 评论 -
Spark Streaming 简单示例(WordCount)
1.Pom.xml 加入以下依赖:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>${spark.version}</version...原创 2019-01-11 10:51:07 · 232 阅读 · 0 评论 -
Spark Streaming 简单介绍
1.什么是Spark Streaming Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map...原创 2019-01-11 00:22:41 · 943 阅读 · 0 评论 -
Spark SQL 练习
1.数据说明(数据集是货品交易数据集) 每个订单可能包含多个货品,每个订单可以产生多次交易,不同的货品有不同的单价。 2.需求说明: • 计算所有订单中每年的销售单数、销售总额 • 计算所有订单每年最大金额订单的销售额 • 计算所有订单中每年最畅销货品3.具体实现import org.apache.spark.SparkCon...原创 2019-01-10 17:38:26 · 1358 阅读 · 0 评论 -
Spark SQL数据的读取和存储
Spark SQL 支持很多种结构化数据源,可以让你跳过复杂的读取过程,轻松从各种数据 源中读取到 Row 对象。这些数据源包括 Hive 表、JSON 和 Parquet 文件。此外,当你使用 SQL 查询这些数据源中的数据并且只用到了一部分字段时,Spark SQL 可以智能地只扫描 这些用到的字段,而不是像 SparkContext.hadoopFile 中那样简单粗暴地扫描全部数据...原创 2019-01-10 09:55:23 · 2353 阅读 · 0 评论 -
Spark SQL 解析-UDF,UDAF,开窗函数
1.UDF函数(用户自定义函数) • 注册一个UDF函数 spark.udf.register("addname",(x:String) => "name:"+ x) • spark.sql("select addname(name) as name from people").show详细案例:scala> val df = spark.read...原创 2019-01-09 22:02:07 · 377 阅读 · 0 评论 -
Spark SQL 解析-RDD、DataFrame、Dataset 三者之间转换
1.新的起始点SparkSession 在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用...原创 2019-01-09 19:25:28 · 1120 阅读 · 0 评论 -
Spark SQL简单示例(WordCount)
1.SparkSQL查询-SparkShell中使用1.employees.json原始数据如下:{"name":"Michael", "salary":3000}{"name":"Andy", "salary":4500}{"name":"Justin", "salary":3500}{"name&quo原创 2019-01-09 17:06:06 · 1056 阅读 · 0 评论 -
Spark SQL 简单介绍
1.什么是Spark SQL • Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。 • 我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spar...原创 2019-01-09 15:20:23 · 337 阅读 · 0 评论 -
SparkCore-RDD 练习
1.原始数据如下:* 格式 :timestamp province city userid adid* 某个时间点 某个省份 某个城市 某个用户 某个广告 1516609143867 6 7 64 16 1516609143869 9 4 75 18 1516609143869 1 7 87 12 1516609143869 2 8 92 9* 注意: • 用户ID范...原创 2019-01-08 23:52:14 · 678 阅读 · 0 评论 -
SparkCore 累加器和广播变量(Spark编程进阶)
本章介绍前几章没有提及的 Spark 编程的各种进阶特性,会介绍两种类型的共享变量: 累加器(accumulator)与广播变量(broadcast variable)。累加器用来对信息进行聚合,而 广播变量用来高效分发较大的对象。在已有的 RDD 转化操作的基础上,我们为类似查询 数据库这样需要很大配置代价的任务引入了批操作。为了扩展可用的工具范围,本章会介 绍 Spark 与外部程序交...原创 2019-01-08 23:33:39 · 541 阅读 · 0 评论 -
SparkCore 的输入输出
在Spark生态体系中,SparkCore,SparkSql,SparkStream都有自己的输入输出,他们之间可以相互转换。相对来说。SparkCore的输入输出做的不是特别规范,SparkSql的输入输出做的比较规范,下面我们来学习的是SparkCore的输入输出。 1.文本文件输入输出 当我们将一个文本文件读取为 RDD 时,输入的每一行 都会成为RDD的一个元素。...原创 2019-01-08 18:38:39 · 398 阅读 · 0 评论 -
SparkCore-容易混淆的RDD算子区别(Scala版本)
1.map与flatMap的区别# 初始化数据val rdd1 = sc.parallelize(Array("hello world","i love you"))1.1 map# map算子rdd1.map(_.split(" ")).collect# map算子结果输出res0: Array[Array[String]] = Array(Array(hello, ...原创 2019-01-08 18:00:16 · 375 阅读 · 0 评论 -
SparkCore-键值对RDD详解
键值对 RDD 是 Spark 中许多操作所需要的常见数据类型。本章就来介绍如何操作键值对 RDD。键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转 化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口(比如 统计每个产品的评论,将数据中键相同的分为一组,将两个不同的 RDD 进行分组合并等)。 1.动机 Spar...原创 2019-01-08 17:39:18 · 404 阅读 · 0 评论 -
SparkCore-RDD编程详解
1.编程模型 在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Spark中,只有遇到action,才会执行RDD的计算(即延迟计...原创 2019-01-07 23:36:08 · 388 阅读 · 0 评论 -
SparkCore-RDD 简单介绍
1.RDD 为什么会产生 RDD是Spark的基石,是实现Spark数据处理的核心抽象。那么RDD为什么会产生呢? Hadoop的MapReduce是一种基于数据集的工作模式,面向数据,这种工作模式一般是从存储上加载数据集,然后操作数据集,最后写入物理存储设备。数据更多面临的是一次性处理。 MR的这种方式对数据领域两种常见的操作不是很高效。第一种是迭代式的算法。比如机...原创 2019-01-07 22:55:13 · 216 阅读 · 0 评论 -
Spark 和 Hadoop 比较
直接比较Hadoop和Spark有难度,因为它们处理的许多任务都一样,但是在一些方面又并不相互重叠。比如说,Spark没有文件管理功能,因而必须依赖Hadoop分布式文件系统(HDFS)或另外某种解决方案。 0.Hadoop框架的主要模块包括如下: • Hadoop Common • Hadoop分布式文件系统(HDFS) • Hadoop YARN ...原创 2019-01-07 17:26:25 · 427 阅读 · 0 评论 -
Spark 简单示例(WordCount)
1.执行第一个spark程序(standalone) /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop102:7077 --executor-memory 1G --total-executor-co...原创 2019-01-07 16:10:10 · 3772 阅读 · 0 评论 -
Spark 运行模式
spark部署在单台机器上面时,可以使用本地模式(Local)运行;当部署在分布式集群上面的时候,可以根据自己的情况选择Standalone模式(Spark自带的模式)、YARN-Client模式或者YARN-Cluster模式、Spark on Mesos模式。 1.本地单机模式所有的Spark进程都运行在一台机器或一个虚拟机上面。Spark任务提交的方式为:spark-...原创 2019-01-07 00:18:10 · 281 阅读 · 0 评论 -
Spark 集群安装
1.机器准备 准备三台Linux服务器,安装好JDK1.8。 2.下载Spark安装包 上传解压安装包:spark-2.1.1-bin-hadoop2.7.tgz 安装包到Linux上 解压安装包到指定位置:tar -zxvf /opt/software/spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/ 3.配...原创 2019-01-06 23:36:08 · 375 阅读 · 0 评论 -
Spark 简单介绍
1.Spark的产生背景 2.什么是Spark http://spark.apache.org Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。 目前,Spark生态系统已经发展成...原创 2019-01-06 17:58:11 · 237 阅读 · 0 评论