Spark技术详解
介绍Spark安装配置/基础知识/运行原理及调优等相关知识点。
二百四十九先森
这个作者很懒,什么都没留下…
展开
-
Spark从入门到精通第一课:IDEA整合Maven开发第一个Spark应用程序
1、Maven安装1、Windows安装好Maven 按提示一路确定即可,和安装QQ差不多2、配置好库和settings.xml文件 <!--指定仓库位置--> <localRepository>G:\SoftwareInstall\maven\apache-maven-3.3.9\repository</localRepository...原创 2018-03-10 11:21:39 · 593 阅读 · 0 评论 -
Spark从入门到精通第二课:Spark产生背景之Spark VS MR && SparkConf/SparkContext && Spark-shell
1、产生背景1、产生背景: MapReduce的差劲促使了spark的产生。 1)编程: MR只有只提供给map和reduce方法处理数据,而spark中提供了80多个。 这对编程产生了质的影响: 就比如对于一个wordcount,既要写Map,又要写Reduce和驱动类。 而spark只需要一个...原创 2018-03-02 17:44:39 · 1530 阅读 · 0 评论 -
Spark从入门到精通第三课:Spark源码编译 && spark客户端简单搭建
1、编译spark源码的前置要求Maven 3.39 or newerjava 8+scala scala-2.11.12.tgz git2、编译1、安装java配置环境变量 略2、安装scala配置环境变量 export SCALA_HOME=/opt/apps/scala-2.12.4...原创 2018-03-04 14:05:03 · 936 阅读 · 0 评论 -
Spark从入门到精通第四课:RDD详解解读
1、RDD:resilient distributed dataset 弹性分布式数据集: 弹性: RDD之间有依赖关系,使得RDD具有容错机制 分区和task设置,但是可以设置 前后算子间的分区数相同,但也可以设置,比如合并分区 分布式: 一个RDD对应很多个分区,一个分区分布在多个节点注意:...原创 2018-03-05 14:05:40 · 705 阅读 · 0 评论 -
Spark从入门到精通第五课:Spark的持久化策略 && Spark的分区原理剖析
1、背景+方法1、为什么要持久化 action操作触发,会触发RDD的重算,对于相同数据执行多次action操作,要多次从FS中读取数据,这就降低了性能。因而我们可以通过cache和persist方法将RDD缓存到内存或者磁盘中。 重算:重新将FS上的数据读入RDD再根据依赖关系推导出所需要的RDD。2、cache() && persist...原创 2018-03-09 10:22:41 · 454 阅读 · 0 评论 -
Spark从入门到精通第六课:RDD中的常用算子全面剖析
1、概述分类: Transformations 和Actions 以及 持久化算子Transformations : 将一个RDD转换成另一个RDD 所有的Transformation都是lazy的,只有发生action是才会触发计算Action: 这类算子会触发 SparkContext提交作业 一个action算子就是一个job(作业)...原创 2018-03-09 14:43:11 · 1144 阅读 · 2 评论 -
Spark从入门到精通第七课:Spark运行模式概述 && Spark standalone模式精讲 && spark核心概念
1、Spark运行模式概述1、spark的运行模式 local yarn-client yarn-cluster standalone-client standalone-cluster k8s/mesos(不讲)2、local模式:在Linux上的local: 将spark安装包解压 JAVA...原创 2018-03-11 11:38:01 · 1887 阅读 · 0 评论 -
Spark从入门到精通第八课:细致分析Spark on Yarn 模式
1、spark on yarn两种模式: client模式(测试) cluster模式(生产常用) 区别: client模式的driver是运行在客户端。 cluster模式的driver运行在NodeManager的MRApplicationMaster中。2、client模式启动: spark-submit --master yar...原创 2018-03-11 17:00:07 · 11043 阅读 · 0 评论 -
Spark从入门到精通第九课:Spark监控之history-server
1、每一个SparkContext都会启动一个网页UI,这个网的UI上包含诸如stages/tasks/RDD/executor/配置环境/配置参数等一些许许多多的信息,它默认的地址是http://<driver_node>:4040,当我们在一个机器上运行了多个SparkContext的时候,除了第一个SparkContext,其余的SparkContext的默认端口就变为4041、...原创 2018-03-13 15:52:45 · 762 阅读 · 0 评论 -
Spark从入门到精通第十课:SparkCore实现二次排序 && 分组取top n
1、二次排序 对两个以上字段排序就叫二次排序import org.apache.spark.{SparkConf, SparkContext}import src.scala.SecondarySortKey/** * 使用Spark Core API实现二次排序 * 1) 自定义排序的key, 要实现Ordered和Serializable接口 * 2...原创 2018-03-15 22:07:52 · 1117 阅读 · 2 评论 -
Spark从入门到精通第十一课: Spark中的宽窄依赖 && Spark中的Shuffle && 内存管理策略
1、宽依赖和窄依赖1、区别窄依赖:对于一个父rdd,子rdd的一个分区只依赖其一个分区。 窄依赖允许在一个集群节点上以流水线的方式(pipeline)计算所有父分区。 算子:map、union、map join和broadcast join。宽依赖:对于一个父rdd,子rdd的一个分区依赖其多个分区. 宽依赖需要首先计算好所有父分区数据,然后在节点之间进行...原创 2018-03-17 11:22:14 · 987 阅读 · 0 评论 -
Spark从入门到精通第十二课:Spark资源调度与任务调度 && 广播变量与累加器
1 、资源调度与任务调度资源调度过程资源调度: 1、new SparkContext时在启动driver。 2、driver/AM启动成功则向主节点申请资源。 3、主节点接收到请求返回给driver/AM一批节点信息。 4、driver/AM接收到回应则到对应的从节点启动executor。 5、executor成功启动则向driver注册自...原创 2018-03-18 11:38:06 · 892 阅读 · 0 评论 -
Spark从入门到精通第十三课:Spark-Core源码分析
原创 2018-03-17 15:01:37 · 908 阅读 · 3 评论 -
Spark从入门到精通第十四课:SparkSQL入门
写更少的代码加载更少的数据将优化交给底层1、写更少的代码A.从wordcount角度看:MapReduce(代码量最多)--->hive(代码量少)---->Spark core(代码量更少,但可读性差)----->Spark SQL(代码量少,可读性好,性能更好)B.从外部数据源角度看:为文件输入输出提供了访问的接口C.从schema推导...原创 2018-03-17 14:26:57 · 484 阅读 · 0 评论 -
Spark从入门到精通第十五课:RDD 转 DataFrame && SparkSQL读取json/parquet/mysql/hive
1、RDD转DataFrame第一种方式:反射package scalaimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, SparkSession}//定义一个样例类case class Person(id:Int,name:String,age:Int,score:Double)...原创 2018-04-08 21:30:01 · 1057 阅读 · 0 评论 -
Spark从入门到精通第十六课:Spark SQL的udf函数和udaf函数 && 开窗函数
UDF函数的使用package com.lirongimport org.apache.spark.sql.{DataFrame, SparkSession}/** * 本类主要演示udf函数的注册和使用 */object SparkTest { def main(args: Array[String]): Unit = { val ss: SparkSess...原创 2018-06-08 11:52:15 · 536 阅读 · 0 评论 -
Spark从入门到精通第十七课:SparkStreaming 对比Storm && SparkStreaming的核心算子
1、SparkStreaming && Storm的区别?答: SparkStreaming 是微批处理,不是真正的实时,它的实时性取决于自定义的间隔是多大。 Storm是真正意义上的实时处理,因为它是一条一条处理数据的。但Storm的吞吐量比起SparkStreaming是要小很多的。 SparkStreaming依托于Spark,所以Spar...原创 2018-06-08 17:47:59 · 294 阅读 · 0 评论 -
Hive on Spark
装了一个多星期的hive on spark 遇到了许多坑。还是写一篇随笔,免得以后自己忘记了。同事也给我一样苦逼的人参考。先说明一下,这里说的Hive on Spark是Hive跑在Spark上,用的是Spark执行引擎,而不是MapReduce,和Hive on Tez的道理一样。先看官网的资源Hive on Spark: Getting Started 要想在Hive中使用Spark执行引擎,...转载 2018-07-15 10:17:25 · 704 阅读 · 0 评论 -
Spark on Yarn 和MapReduce on Yarn对比
Apache Spark的高性能一定程度上取决于它采用的异步并发模型(这里指server/driver端采用的模型),这与Hadoop 2.0(包括YARN和MapReduce)是一致的。Hadoop 2.0自己实现了类似Actor的异步并发模型,实现方式是epoll+状态机,而Apache Spark则直接采用了开源软件Akka,该软件实现了Actor模型,性能非常高。尽管二...转载 2018-06-05 21:17:19 · 295 阅读 · 0 评论 -
Spark on Yarn的Cluster模式关于spark-submit的参数设置总结
Spark提供三个位置用来配置系统: Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置 环境变量:可以通过每个节点的conf/spark-env.sh脚本设置。例如IP地址、端口等信息 日志配置:可以通过log4j.properties配置 Spark属性Spark属性控制大部分的应用程序设置,并且为每个应用程序分别配...原创 2018-07-28 15:54:02 · 4575 阅读 · 0 评论 -
Spark零基础学习路线指导
spark零基础学习路线指导 问题导读1.你认为spark该如何入门?2.你认为spark入门编程需要哪些步骤?3.本文介绍了spark哪些编程知识? spark学习一般都具有hadoop基础,所以学习起来更容易多了。如果没有基础,可以参考零基础学习hadoop到上手工作线路指导(初级篇)。具有基础之后,一般都是按照官网或则视频、或则文档,比如搭建spark,运行spark例子。后面...转载 2018-04-01 09:33:58 · 722 阅读 · 0 评论 -
Direct和Receiver
Receiver是使用Kafka的高层次Consumer API来实现的。receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。如果要启用高可靠机制,让数据零丢失,就必须启用Spark Streaming的预写日志机制(Write Ahe...转载 2018-04-27 10:36:08 · 436 阅读 · 0 评论 -
Spark优化指南--------基础篇
在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性能...转载 2018-06-05 15:52:57 · 272 阅读 · 0 评论 -
Spark大数据面试题1
1、spark在什么场景比不上MapReduce?Spark 在内存中处理数据,需要很大的内存容量。如果 Spark 与其它资源需求型服务一同运行在YARN 上,又或者数据块太大以至于不能完全读入内存,此时 Spark 的性能就会有很大的降低,此时Spark可能比不上MapReduce。当对数据的操作只是简单的ETL的时候,Spark比不上MapReduce。2、spark sql和sql的区别?...原创 2018-06-03 10:28:42 · 5698 阅读 · 1 评论 -
Spark几种运行模式
spark应用执行机制分析前段时间一直在编写指标代码,一直采用的是--deploy-mode client方式开发测试,因此执行没遇到什么问题,但是放到生产上采用--master yarn-cluster方式运行,那问题就开始陆续暴露出来了。因此写一篇文章分析并记录一下spark的几种运行方式。1.spark应用的基本概念spark运行模式分为:Local(本地idea上运行),Standalon...转载 2018-06-04 10:09:22 · 3495 阅读 · 0 评论 -
Spark运行模式对比
目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一...转载 2018-06-04 10:12:26 · 502 阅读 · 0 评论 -
工具类:Spark参数管理工具类
package com.lirong.util;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.lirong.conf.ConfigurationManager;import com.lirong.constant.Constants;/** ...原创 2018-06-04 12:09:04 · 1182 阅读 · 0 评论 -
Spark分区数详解
spark.default.parallelism:(默认的并发数)= 2当配置文件spark-default.conf中没有显示的配置,则按照如下规则取值:1、本地模式(不会启动executor,由SparkSubmit进程生成指定数量的线程数来并发): spark-shell spark.default.parallelism = 1 spark-shell --mas...转载 2018-06-04 12:23:17 · 6282 阅读 · 0 评论 -
Spark性能优化指南——高级篇
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的...转载 2018-06-06 15:24:03 · 315 阅读 · 0 评论 -
spark on yarn时的spark-submit参数详细剖析
1、spark sql内置函数的使用需求:求每天的销售额 时间 消费金额 顾客名"2018-01-01, 50, 1111""2018-01-01, 60, 2222""2018-01-01, 70, 3333""2018-01-02, 150, ...原创 2018-06-08 21:06:38 · 3391 阅读 · 0 评论 -
Spark on Yarn 报错
[hadoop@hadoop001 bin]$ ./spark-shell --master yarnSetting default log level to "WARN".To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).18/03/12 20:46:21 WAR...原创 2018-03-12 21:02:55 · 1117 阅读 · 0 评论