沉沙
2018-09-27
来源 :
阅读 1666
评论 0
摘要:本篇教程介绍了大数据应用 Amazon Kinesis实时数据分析,希望阅读本篇文章以后大家有所收获,帮助大家对大数据云计算大数据应用的理解更加深入。
本篇教程介绍了大数据应用 Amazon Kinesis实时数据分析,希望阅读本篇文章以后大家有所收获,帮助大家对大数据云计算大数据应用的理解更加深入。
<
1.总结
AWS的服务全部采用SOA架构可以需要时相互调用
关于大数据的实时流处理,AWS提供了传统方案和完全host方案
传统方案是EC2上面部署flume (采集)、kafka(数据转存)、storam(流处理)
完全host方案是Kinesis
使用Kinesis还是需要用户通过API来将手机、网站点击、IoT、传感器等各类数据源的数据接入
允许用户编写Kinesis的Worker来处理自定义的数据处理逻辑(扩展性)
Kinesis处理之后的数据,AWS建议存储S3或redshift等存储中,后续使用
Kinesis的典型用法是:前端数据源→kinesis流处理→S3保存临时数据→EMR数据处理→redshift做BI分析。整体使用CW来做运行监控,并且可以出发AutoScaling来弹性伸缩处理能力
Kinesis实时数据流的应用场景
对于广告平台:用户在互联网上的行为,能实时的影响广告推送内容,在用户下一次刷新页面时,就提供给用户新广告
对于电商:用户的每一次收藏、点击、购买行为,都能被快速的归入他的个人模型中,立即修正商品推荐
对于社交网络:用户社交图谱变更和发言行为,也能快速反映在他的好友推荐、热门话题提醒上
2.概述
2.1.AWS基于云的完整大数据服务
采集:实时数据流采集处理(Kinesis)
保存:大规模存储
DynonamoDB
S3
Glacier
处理:大集群并行计算
EMR
EC2
Redshift–MPP数据库
Data Pipeline–ETL工具
2.2.AWS的大数据客户
包括:药厂、互联网公司、大企业
3.大数据分析处理
3.1.大数据处理的挑战
大数据的生命周期:收集→存储→分析→洞察
成功案例:SUPERCELL手游公司
- 收集:实时数据采集Kinesis
- 存储:4T存储/天→S3
- 长期归档Glacier
- 分析:数据挖掘Hadoop
3.2.实时数据流处理使用案例
对于广告平台:用户在互联网上的行为,能实时的影响广告推送内容,在用户下一次刷新页面时,就提供给用户新广告
对于电商:用户的每一次收藏、点击、购买行为,都能被快速的归入他的个人模型中,立即修正商品推荐
对于社交网络:用户社交图谱变更和发言行为,也能快速反映在他的好友推荐、热门话题提醒上
4.典型的实时动态数据流处理架构和工作流程
1)数据采集:负责从各个节点上实时采集处理数据,例如选用flume(cloudeara提供)来实现
2)数据接入:由于采集数据的速度和处理的速度不一定同步,因此添加一个消息中间件作为缓冲,例如apache的kafka(Linkedin提供)
3)流式计算:对采集到的数据进行实时分析,例如选用apache的storm(twitter提供)
5.在AWS上进行处理(简单模式)
1)数据采集:在EC2服务器上搭建收集器(kafka,fluedtd,scribe和flume等)
2)载入数据—将数据存入S3
不推荐存储在本地磁盘,因为难以保证容量扩展性,难以保障持久性
6.在AWS上进行处理(Kinesis模式)
实时数据处理–Amazon Kinesis
实时数据采集,摄入,传输
处理实时动态数据流
并行写入与写出
支持数据输出到不同存储目的地
Amazon Kinesis的架构模型如下图
操作流程
1)创建一个数据流(就是使用storm),制定shard(分片)
- shard:分片是Kinesis数据流的基本吞吐量单位
- 一个分片提供:1MB/秒数据输入(write)容量=1000TPS,2MB/秒数据读入(read)容量=5TPS
2)设定单个数据片的容量(例如:twitter的每条记录为140字节),设定每秒钟同时写入量(例如5000个这样的分片)
指定分片数量、单个数据片容量、同时写入量 之后,就会自动计算下列的吞吐量
3) 后期在CW中可以监控运行情况
客户案例《卡通农场》
简单调用put命令动态摄入数据
每个分片可摄入每秒1MB数据(高大1000TPS)
(突然玩家暴增之后)不停机状态下动态扩展 shard数量
6.1.将数据输入Kinesis数据流
PutRecord API用于添加数据到Amazon Kinesis 数据流
指定数据流的名称和分区键(partition key)
分区键用于分配数据记录到不同的数据流分片
6.2.实时数据流处理
分布式处理多shards
容错
实时动态扩展workers
专注数据处理逻辑
6.3.处理来自Amazon Kinesis数据流的数据
Amazon Kinesis应用程序(workers)允许用户自己开发
读取和处理来自数据流strom数据的使用者
使用Kinesis客户端哭(KCL)构建应用程序执行分布式流处理的繁杂任务
自动扩展组(AutoScaling)实时动态扩展
6.4.Amazon Kinesis 对比 Storm
Storm
部署采集工具,例如flume
部署数据接入工具,例如kafka
部署实时分析工具,例如storm
Kinesis
自动配置采集、接入、分析工具
自动扩展、容错
与AWS其他服务融合,例如s3、redshift、dynamoDB
6.5.实时数据流处理&海量数据存储案例
supercell的用户点击屏幕的实时数据流,写入kinesis
worker应用程序负责处理这些数据
聚合数据预处理写入S3
实时趋势分析表制作(例如玩家数量、虚拟道具使用情况等)
Glacier可以做归档
hadoop可以做数据挖掘(EMR从S3中获取数据)
将hadoop处理完毕后的数据,放入redshift进行BI分析
6.6.AWS上Kinesis的常见CDP架构
#1 点击流分析
#2 支付
7.总结
实时收集并处理数据
易于使用
通过java、python、KCL轻松构建应用程序
与S3、Redshift、DynamoDB其他服务工具集成
并行处理
聚合数据发送到S3存储对象中
实时分析日志并在发生例外情况时触发警报
实时分析网站点击流
灵活应变
动态调节Kinesis数据流的吞吐量
可靠
三个AZ同步复制数据,并保留24小时,防止应用故障后数据丢失
$(function () {
$(‘pre.prettyprint code‘).each(function () {
var lines = $(this).text().split(‘\n‘).length;
var $numbering = $(‘
‘).addClass(‘pre-numbering‘).hide();
$(this).addClass(‘has-numbering‘).parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($(‘
‘).text(i));
};
$numbering.fadeIn(1700);
});
});
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据应用频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号