Spark大数据分析实战
2016-06-15 15:13:18 74 举报
AI智能生成
Spark大数据分析实战总结
作者其他创作
大纲/内容
Twitter情感分析
系统架构
Spark Streaming Twitter收集与分析模块
实时聚类和热点分析
Cassandra持久化存储模块
Spark分析模块
情感分析
Mysql结果存储模块
提供可视化数据
数据收集
twitter数据收集
数据预处理和Cassandra存储
作为存储引擎进行数据分析
热点Twitter分析
Spark Stream 滑动窗口API
在线情感分析
使用递归神经网路RNN经行
Spark SQL进行离线分析
twitter可视化
D3, Echarts, HightCharts...
热点新闻分析系统
系统架构
新闻抓取模块
Scrapy抓取
Kafka传输
Mongo存储
实时新闻分析模块
Spark Streaming实时处理
离线新闻分析模块
Spark定时从MongoDB中批量处理,离线热点分析
可视化呈现界面
爬虫抓取网络信息
新闻文本数据预处理
新闻聚类
文本聚类分析
1. 使用向量空间模型进行数据转换
2. 通过K-Means进行聚类
数据准换为向量
向量空间模型
Spark Elastic Search 构建全文检索引擎
个性化推荐
算法
协同过滤推荐算法
基于用户的推荐
基于项目的推荐
基于模型的推荐
基于关联规则的推荐
基于效用的推荐
基于知识的推荐
组合推荐
社交网络分析
社团挖掘
聚类分析
K均值算法(K-Means)
找到社交网络中的团体
链路分析
好友关系推荐
1. 可能认识的人
2. 可能感兴趣的人
大规模新闻主题分析
主题模型LDA
可以将文档的主题以概率的形式给出
Spark简介
Spark执行特点
中间结果无需输出到HDFS
数据格式和内存布局使用RDD
执行策略不同Stage需要shuffle
任务调度使用事件驱动AKKA,避免使用线程池
Spark优势
打造全栈多计算凡是的高效数据流水线
支持MR, SQL查询, 流式计算, 机器学习和图算法, 用户可以在一个工作流无缝搭配这些计算范式
轻量级快速处理
Scala简化了代码
利用了第三方组件
基于内存计算,减少了磁盘IO
易于使用,支持多语言
支持Scala,Java,Python
自带80多个算子
ExternalDataSource多数据支持
社区活跃度高
Spark生态系统BDAS
数据分析栈
组件
Spark
Spark SQL
Spark Streaming
流式计算吞吐量超过Strom
GraphX
经行大规模同步全局的图计算
MLlib
分布式机器学习算法库
分类, 回归, 聚类 ,协同过滤 , 梯度下降优化
Spark架构
Spark组件
Dirver
创建SparkContext的main函数
Client
用户提交作业的客户端
Worker
集群中任何可以运行Application代码的节点, 运行一个或多个Executor进程
Executor
运行Worker的Task执行器
SparkConext
应用的上下文, 控制应用的声明周期
RDD
Spark的基本计算单元, 一组RDD形成执行的有向无环图
DAG schedule
根据Job构建基于Stage的DAG工作流, 并提交Stage给TaskScheduler
Task Scheduler
Task分发给Executor执行
SparkEnv
线程级别的上下文
运行逻辑
作业提交
Client->Master-> Worker->Driver->Master->RDD->Stage DAG -> TaskScheduler-> Executor
作业执行
Shuffle
RDD
弹性分布式数据集
RDD创建方式
1. HDFS输入创建
2. 父RDD转换
3. paralleize或makeRDD将单机数据创建为分布式RDD
RDD的两种操作算子
转换(Transformation)
延迟计算
map, flatMap, mapPartitions...
行动(Action)
触发提交作业Job
foreach, saveAsTextFile...
RDD的重要内部属性
分区列表
计算每个分片的函数
对父RDD的依赖列表
对key-value pair数据类型RDD的分区器, 控制分片策略和分区数
每个数据分区的地址列表
Spark计算工作流
BDAS
SQL on Spark(替代Hive)
1. Catalyst架构及执行流程
2. SparkSql优化策略
Spark Streaming(替代Storm)
优势与特点
1. 多范式数据分析管道
2. 扩展性, 可运行在100个节点以上的集群
3. 容错性
4. 吞吐量大(超过Storm)
5. 实时性比Storm略低(batch size选取为0.5~2S, storm为100ms)
Spark Stream架构
GraphX(替代GraphLab)
MLlib(替代Mahout)
Lamda架构日志分析流水线
日志分析指标
PV
UV
PVUV
漏斗模型与转化率
留存率
Lamda架构
速度层(Speed Layer)
批处理层(Batch Layer)
服务层(Serving Layer)
实时日志分析流水线架构
数据采集
Flume NG
数据汇总和转发
Flume 汇总到Kafka
数据处理
Spark Streaming
结果呈现
Flask
离线日志分析流水线架构
数据存储
Flume转储到HDFS
数据处理
Spark SQL
结果呈现
Flask
基于云平台和用户日志的推荐系统
系统架构
数据收集聚合
数据处理
结果输出
离线训练
Spark MLlib中的ALS模型
分布式的搜索引擎
计算网页的PageRank值
0 条评论
下一页