一、引言

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

英文

最新文章

  1. Git笔记1
  2. python客户端编程
  3. Qt编写自定义控件一开关按钮
  4. 【Vijos】1218 数字游戏
  5. 知乎上有一个问题“在mfc框架中,有上面方法能直接将opencv2.0库中的Mat格式图片传递到Picture Control”中显示?
  6. 学习c语言的第9天
  7. EcTouch二次开发
  8. Shell命令合集
  9. 没有找到iertutil.dll怎么办?快速解决iertutil.dll丢失
  10. sicily 1035. DNA matching
  11. flex 调用WebService2(基于.net)
  12. 数据的加密传输——单片机上实现TEA加密解密算法
  13. UVA 103 Stacking Boxes 套箱子 DAG最长路 dp记忆化搜索
  14. 利用 squid 反向代理提高网站性能
  15. 基于visual Studio2013解决C语言竞赛题之0501挑选素数
  16. Java编程思想非主流知识点
  17. web网站更换新域名
  18. Tarjan + bfs HYSBZ 1179Atm
  19. [Linux]返回被阻塞的信号集
  20. MySQL Innodb数据库误删ibdata1后MySQL数据库的恢复案例

热门文章

  1. 分享知识-快乐自己:初中级 java 面试题宝典
  2. Mybatis中collection与association的区别
  3. 重拾安卓_01_安卓开发环境搭建(eclipse)
  4. linux命令学习笔记(3):pwd命令
  5. Java Main Differences between HashMap HashTable and ConcurrentHashMap
  6. bzoj 2823: [AHOI2012]信号塔 最小圆覆盖
  7. C# Hashtable赋值给另一个Hashtable时
  8. Operating System-Thread(4) 线程的调度激活机制(Scheduler Activations)
  9. #include <deque>
  10. MySQL Sending data导致查询很慢的问题详细分析