《OD学spark》20161022
一、Spark Core
1. 什么是Spark Shuffle
Wide Dependencies
*ByKey: groupByKey,reduceByKey
关联操作:join,cogroup
窄依赖:
父RDD的每个分区的数据,仅仅只会给子RDD的一个分区。
Spark性能优化:
开发优化:
依据业务场景及数据,使用较好的RDD的方法
(1)能使用reduceByKey不要使用groupByKey
(2)适当的时候已经处理的数据RDD,进行重新分区
repartition
reduceByKey(func, numPartitions)
coalse
SCALA中的拉链编程
val rdd = sc.parallelize(List(1,2,3,4,5))
val rdd2 = sc.parallelize(List("aa", "bb", "cc", "dd", "ee"))
rdd.zip(rdd2)
rdd.zip(rdd2).collect
2. MapReduce Shuffle
Spark Stages
(1)ResultStage
Stage阶段运行Jobs输出结果
ResultTask
(2)ShuffleMapStage
Stage阶段的RDD会发生Shuffle过程,
ShuffleMapTask
每个Stage中的所有任务的逻辑处理相同(functions)
Spark Scheduler
RDD Objects -> DAGScheduler -> TaskScheduler -> Worker
二、Spark SQL
MapReduce -> Hive
SparkCore -> SparkSQL
1. SQL on Hadoop
(1)Hive
基础,数据仓库,Facebook开源,
(2)Presto
内存,Facebook,依赖于Hive MetaStore
国内:京东
(3)Impala
内存,Cloudera,依赖于Hive MetaStore
应用:电信、游戏
安装方式: RPM包,联网安装,包特别多;CM5.3.x安装CDH5.3.x,包含Impala,界面化安装
(4)Spark SQL
(5)Drill
1PB的数据进行分析查询-> 3s
(6)Kylin
麒麟框架,唯一一个由国人开源的大数据框架,提供中文文档,也是Apache顶级项目
大数据起源搜索引擎,发展于电商互联网,Google三大论文
大数据的前三驾马车: GFS、 MapReduce和BigTable
大数据的后三驾马车: Caffeine、Pregel(Pregel主要绘制大量网上信息之间关系的“图形数据库”)、Dremel
2. SparkSQL
DataFrame = RDD[Row]
封装所有数据,提供一系列方法进行操作。
SQLContext
spark-1.3.0 release
特性: 外部数据源(接口) hive\parquet\orc\json\xml\jdbc\tsv\csv\......
SparkSQL读取文件数据的内容
文件数据格式默认的是parquet格式
Hive引擎:
SQL->Parse(语法解析)->Logical Plan(逻辑计划)->优化LP->Pyhsical Plan(物理计划)
MapReduce
SparkCore
SHark = Spark on Hive spark 1.0之前
Catalyst: Spark SQL引擎
1)替代Hive
shark
SparkSQL与Hive无缝对接继承
企业中开发经验
(1)Hive对要分析的数据进行ETL操作
数据仓库
(2)SparkSQL进行分析
HiveQL:
val df = sqlContext.sql("select * from emp")
DSL:
val df = sqlContext.table("emp").select("empno")
Spark与Hive继承
从某个角度来说,SparkSQL读取Hive表中的数据,就是Hive客户端
(1)hive-site.xml
metastore存储在哪里?MySQL中
(2)数据库驱动包
3. Catalyst
SQL Text
------Parsing ----->Unsolved Logic Plan
------Binding & Anlyzidng -------> Logical Plan
------Optimizing -----> Optimized Logical Plan
------QueryPlanning ----> Physical Plan
4. 如何将依赖包放入到应用CLASSPATH虾米那
(1)--jars
(2)万能
SPARK_CLASSPTH
《OD学spark》20161022的更多相关文章
- 《OD学spark》20160925 Spark Core
一.引言 Spark内存计算框架 中国Spark技术峰会 十二场演讲 大数据改变世界,Spark改变大数据 大数据: 以Hadoop 2.x为主的生态系统框架(MapReduce并行计算框架) 存储数 ...
- 《OD学spark》20160924scala基础
拓展: Hadoop 3.0 NameNode HA NameNode是Active NameNode是Standby可以有多个 HBase Cluster 单节点故障? HBaster -> ...
- 《OD学hive》第四周0717
一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...
- 《OD学hadoop》20160903某旅游网项目实战
一.大数据的落地点 1.数据出售 数据商城:以卖数据为公司的核心业务 2. 数据分析 百度统计 友盟 GA IBM analysis 3.搜索引擎 4. 推荐系统 mahout 百分比 5.精准营销 ...
- 《OD学HBase》20160821
一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab. ...
- 《OD学Oozie》20160807Oozie
一.引入 MapReduce Job Hive 脚本任务 同一个业务:先后.定时调度 工作流: 定义工作流程 activity jbpm oozie: 大数据工作流定义与调度框架 专门定义与调度Map ...
- 《OD学Flume》20160806Flume和Kafka
一.Flume http://flume.apache.org/FlumeUserGuide.html Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集.聚集.移动信 ...
- 《OD学hive》第六周20160731
一.hive的压缩 1. hadoop的压缩 1)为什么需要压缩 MapReduce的性能瓶颈:网络IO.磁盘IO 数据量:对于MapReduce的优化,最主要.根本就是要能够减少数据量 Combin ...
- 《OD学hadoop》第三周0709
一.MapReduce编程模型1. 中心思想: 分而治之2. map(映射)3. 分布式计算模型,处理海量数据4. 一个简单的MR程序需要制定map().reduce().input.output5. ...
随机推荐
- 代码题(1)—lower_bound和upper_bound算法
1.lower_bound:查找序列中的第一个出现的值大于等于val的位置 这个序列中可能会有很多重复的元素,也可能所有的元素都相同,为了充分考虑这种边界条件,STL中的lower_bound算法总体 ...
- 代码题(3)— 最小的k个数、数组中的第K个最大元素、前K个高频元素
1.题目:输入n个整数,找出其中最小的K个数. 例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 快排思路(掌握): class Solution { public ...
- 201621123014《Java程序设计》第四周学习总结
1.本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:继承.多态.子类.父类.final.static.类型判断与类型转换.抽象类. 1.2 尝试使用思维导图将这些关键词组织起来. ...
- bison 编译sql的基本知识
一.bison是干什么的? bison 是一个语法分析器,把用户输入的内容,根绝在.y文件中事先定义好的规则,构建一课语法分析树.(所谓的规则就是,匹配上对应字符之后,执行相应的动作.) 1.一个简单 ...
- 串行总线 —— I2C、UART、SPI
I2C,也叫 IIC,是一种常见的串行总线,它只需要两根线即可在连接于总线上的器件之间传送信息. 0. 电气知识 开漏输出:Open drain output,不输出电压,低电平时接地,高电平时不接地 ...
- Android repo 学习参考
/*************************************************************************** * Android repo 学习参考 * 说 ...
- Nginx-rtmp模块实现流媒体play、push、pull功能
官方wiki:https://github.com/arut/nginx-rtmp-module#readme Nginx rtmp 功能特点 1. 支持音视频直播 2. 支持flv/mp4视 ...
- ACM学习历程—HDU1695 GCD(容斥原理 || 莫比乌斯)
Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = ...
- 【LeetCode】012. Integer to Roman
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- js字符串API
1.charAt(n) :返回字符串n位置的字符 2.substr(n,m):n:开始截取的位置 m:截取的长度 2.substring(n,m):n:开始截取的位置 m:截取结束的位置 3.repl ...