《OD学spark》20160925 Spark Core
一、引言
Spark内存计算框架
中国Spark技术峰会
十二场演讲
大数据改变世界,Spark改变大数据
大数据:
以Hadoop 2.x为主的生态系统框架(MapReduce并行计算框架)
存储数据、处理数据
分布式
Spark:
类似于MapReduce的另外一种分布式计算框架
核心:
数据结构:RDD,集合List[T]
MapReduce
最大的痛点:
IO性能瓶颈,也是所有分布式计算框架的痛点
(1)磁盘IO,
input(disk) -> map -> DISK(local)->reduce->output(DISK)
(2)网络IO,
shuffle
2015年Spark Submit
阿里巴巴和databricks
全球,每天使用Spark处理数据最大的公司
数据量: 1PB = 1024TB
腾讯:集群规模 8000台
Spark:内存计算框架
为什么要将中间结果存储到磁盘中呢?要进行写呢?我放入内存不行吗?
input(disk) -> flatMap -> memory->map->memory->groupByKey->memory->map->output(DISK)
分析:
(1)将中间处理的数据,存储在内存中
(2)提供很多的Operation,上百种
list.map(_ * 2).filter(_ % 5 == 1).map(_ + 100)
对于迭代计算、机器学习
Scala->Java->JVM
作业:
假期期间,MapReduce Shuffle过程,好好再理解
Spark处理分析数据:
(1)读取输入数据
Core: Rdd
SQL: DataFrame
Streaming:DStream
(2)process data
Core: rdd#xxx
SQL: df#xxx
Streaming:dstream#xxx
里面的方法基本上95%以上都是高阶函数,依据你自己的需求,定义操作
(3)ouputdata
resultRdd.saveAsTextFile("")
resultDF.write.jdbc.(url, tableName, props)
resultDStream.foreach(Redis\HBase\RDBMS)
钨丝计划:三阶段
腾讯:技术发展路线
服务器,上百台,产生数据
运维人员
维护上百台集群的产生的日志文件
产品人员提供的需求,需要进行数据分析
(1)MySQL+Python
每台机器都有MySQL数据库
使用Python对数据进行清洗,加载到MySQL表中
各自统计分析->聚合->格子分析统计
(2)HADOOP+Hive
HDFS(分布式存储)
MapReduce
Hive
HiveQL
分区表/year/month/day/number
Hive + Python
如何集成?
(3)HADOOP+SPARK
二、Spark简介
设置Hive为本地模式,进行测试
HiveQL转换为MapReduce的本地模式
set hive.exec.mode.local.auto
set hive.exec.mode.local.auto = true
select session_id, count(1)
from db_hive.page_views
group by session_id
limit 5
使用SparkCore
val rdd = sc.textFile("/path")
val sessionIdRdd = rdd.map(line => line.split("\t")).mpa(x => (x(2), 1)).reduceByKey(_ + _)
sessionIdRdd.take(5)
使用SparkSQL
val df = sqlContext.sql("
select session_id, count(1)
from db_hive.page_views
group by session_id
limit 5
");
sqlContext.cacheTable("db_hive.page_views")
df.show()
DSL语句
val df = sqlContext.sql("select * from db_hive.page_views")
df.groupBy("session_id")
Core/Spark SQL/Streaming/Graphx/MLlib/R/StructStreaming(2.0)
JAR
处理的数据
HDFS/Hive/HBase/ES/JSON/JDBC
Spark程序运行模式
本地模式,
集群模式:YARN、Mesos(分布式资源管理框架)、Standalone集群、EC2
七牛云存储技术总监陈超
Tachyon李浩源
三、Spark学习网站
(1)官方文档
http://spark.apache.org/docs/1.6.2/
(2)源码
https://github.com/apache/spark
导入IDEA
(3)官方博客
http://databricks.com/blog
英文
《OD学spark》20160925 Spark Core的更多相关文章
- 深入理解Spark 2.1 Core (十一):Shuffle Reduce 端的原理与源代码分析
http://blog.csdn.net/u011239443/article/details/56843264 在<深入理解Spark 2.1 Core (九):迭代计算和Shuffle的原理 ...
- 大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池
第0章 预备知识0.1 Scala0.1.1 Scala 操作符0.1.2 拉链操作0.2 Spark Core0.2.1 Spark RDD 持久化0.2.2 Spark 共享变量0.3 Spark ...
- 《OD学hive》第四周0717
一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...
- 【转】科普Spark,Spark是什么,如何使用Spark
本博文是转自如下链接,为了方便自己查阅学习和他人交流.感谢原博主的提供! http://www.aboutyun.com/thread-6849-1-1.html http://www.aboutyu ...
- 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序
第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...
- Spark记录-Spark性能优化解决方案
Spark性能优化的10大问题及其解决方案 问题1:reduce task数目不合适解决方式:需根据实际情况调节默认配置,调整方式是修改参数spark.default.parallelism.通常,r ...
- Spark 以及 spark streaming 核心原理及实践
收录待用,修改转载已取得腾讯云授权 作者 | 蒋专 蒋专,现CDG事业群社交与效果广告部微信广告中心业务逻辑组员工,负责广告系统后台开发,2012年上海同济大学软件学院本科毕业,曾在百度凤巢工作三年, ...
- Spark之 spark简介、生态圈详解
来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介Spark是加州大学伯克利分校AMP实验室(Algorithm ...
- Spark Streaming——Spark第一代实时计算引擎
虽然SparkStreaming已经停止更新,Spark的重点也放到了 Structured Streaming ,但由于Spark版本过低或者其他技术选型问题,可能还是会选择SparkStreami ...
- 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点
大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...
随机推荐
- 各数据库连接配置与maven依赖安装
maven用的比较多,所以自己去捣鼓了一下:以下是关于数据库配置的一块,把相关的内容张贴出来,以备不时之需 //MySql 配置文件(maven):pom.xml <dependency> ...
- java: jdk1.8以后就不支持桥接的方式
java: jdk1.8以后就不支持桥接的方式 如果想继续使用桥接的方式,请使用jdk1.7及以下版本.
- appium-环境搭建(三)
appium步骤:基本环境1.由于操作手机端操作,需要模拟器或者真机 itools模拟器,真机2.appium操作app,需要知道操作的app是什么?需要知道这个app包名 1.问开发 2.利用adt ...
- codeforces 615E Hexagons (二分+找规律)
E. Hexagons time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- codeforces 650D D. Image Preview (暴力+二分+dp)
题目链接: http://codeforces.com/contest/651/problem/D D. Image Preview time limit per test 1 second memo ...
- 树套树Day1线段树套平衡树bzoj3196
您需要写一种数据结构,来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查 ...
- Mysql备份脚本python编写
#!/usr/bin/env python #-*- coding: UTF-8 -*- ####################################################### ...
- ACM学习历程—HDU4675 GCD of Sequence(莫比乌斯)
Description Alice is playing a game with Bob. Alice shows N integers a 1, a 2, …, a N, and M, K. She ...
- #include <deque>
deque \(deque\)头文件主要包括一个双端队列容器.是一个支持在两端插入两端删除的线性储存空间,与vector和queue相似.与\(vector\)比起来,\(deque\)可以在\(O( ...
- boost::io_service解读
boost::io_service解读 asio是boost提供的一个c++异步编程模型库,其核心类io_service,在多线程编程里面提供了任务队列和任务分发功能,在socket.io编程里主要作 ...