一、引言

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的更多相关文章

  1. 深入理解Spark 2.1 Core (十一):Shuffle Reduce 端的原理与源代码分析

    http://blog.csdn.net/u011239443/article/details/56843264 在<深入理解Spark 2.1 Core (九):迭代计算和Shuffle的原理 ...

  2. 大数据技术之_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 ...

  3. 《OD学hive》第四周0717

    一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...

  4. 【转】科普Spark,Spark是什么,如何使用Spark

    本博文是转自如下链接,为了方便自己查阅学习和他人交流.感谢原博主的提供! http://www.aboutyun.com/thread-6849-1-1.html http://www.aboutyu ...

  5. 大数据技术之_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 ...

  6. Spark记录-Spark性能优化解决方案

    Spark性能优化的10大问题及其解决方案 问题1:reduce task数目不合适解决方式:需根据实际情况调节默认配置,调整方式是修改参数spark.default.parallelism.通常,r ...

  7. Spark 以及 spark streaming 核心原理及实践

    收录待用,修改转载已取得腾讯云授权 作者 | 蒋专 蒋专,现CDG事业群社交与效果广告部微信广告中心业务逻辑组员工,负责广告系统后台开发,2012年上海同济大学软件学院本科毕业,曾在百度凤巢工作三年, ...

  8. Spark之 spark简介、生态圈详解

    来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介Spark是加州大学伯克利分校AMP实验室(Algorithm ...

  9. Spark Streaming——Spark第一代实时计算引擎

    虽然SparkStreaming已经停止更新,Spark的重点也放到了 Structured Streaming ,但由于Spark版本过低或者其他技术选型问题,可能还是会选择SparkStreami ...

  10. 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点

    大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...

随机推荐

  1. 备份/还原MySQL数据库----MySQL Workbench

    点击[Data Export],界面右侧将显示数据导出窗口. 2 点击[Refresh]按钮,刷新数据库列表(1),选择要导出的数据表(2),设置导出的目录(3),点击[Start Export]按钮 ...

  2. runtime error 的原因

    1.  数组访问越界 2.  分母为 0 3.   括号 做题时偶然发现的! (详见 UVA 10158 War) 代码中出现了这种东西 else if( arefriends(x,y==-1)  ) ...

  3. Redis安装以及基本操作命令

    Redis安装 cd redis-2.6.14make PREFIX=/usr/local/redis install 可能会出现的错误提示>>提示1:make[3]: gcc:命令未找到 ...

  4. Android开发中高效的数据结构

    android开发中,在java2ee或者android中常用的数据结构有Map,List,Set,但android作为移动平台,有些api(很多都是效率问题)显然不够理想,本着造更好轮子的精神,an ...

  5. Link-cut-tree 学习记录 & hdu4010

    网上的lct一抓一大把,所以我也不再写什么讲解了,只写一写自己的看法. Link-cut-tree 是用于维护动态树的一种数据结构 所谓动态树就是一片存在边的添加与删除的森林中的一棵树 所以我们要快速 ...

  6. 【Lintcode】364.Trapping Rain Water II

    题目: Given n x m non-negative integers representing an elevation map 2d where the area of each cell i ...

  7. 移植memtester到android平台

    硬件搭建起来能进入系统,首要就是测试内存的稳定性,需要一款内存测试工具. 一般都是选择memtester这款linux软件,下载地址如下:http://pyropus.ca/software/memt ...

  8. 11g RAC 如何备份OCR,利用备份恢复OCR,ocrdump

    OCR备份 OCR的备份有2种方式,自动备份和手工备份. 自动备份策略: Oracle Clusterware 每隔4小时,CRSD 进程会自动对OCR 进行一次备份,在任意时刻,oracle 总会保 ...

  9. vmware的双网卡以及Pro的注册码

    DC/OS的master需要能够上外网而且能够和本地内网设备交互,于是打算在虚拟机上面做测试,于是调研了一下虚拟机的双网卡配置.   最推荐的方式是使用vmware的station,而不是player ...

  10. JVM插庄之二:Java agent基础原理

    javaagent 简介 Javaagent 只要作用在class被加载之前对其加载,插入我们需要添加的字节码. Javaagent面向的是我们java程序员,而且agent都是用java编写的,不需 ...