大数据 Big Data
从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。
大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
体量大 - Volume
速度快 - Velocity
模态多 - Variety
难辨识 - Veracity
价值大密度低 - Value
0x01 大数据处理与系统
大数据处理形式主要包括:
静态数据批量处理
在线数据实时处理
– 对流式数据处理
– 实时交互计算
对图数据的综合处理
批量数据处理系统
适用于先存储后计算,实时性要求不高,同时数据的准确性和全面性更为重要的场景。
批量数据的特征
1. 数据体量巨大:TB/PB级,以静态形式存储在硬盘上,很少更新,存储时间长,可以重复利用。
2. 数据精度要求高
3. 数据价值密度低:需要通过合理算法抽取有价值的信息。
4. 适合大型的相对成熟的作业。
批量数据的典型应用
数据来源:物联网/云计算/互联网/车联网等
1. 社交网络:以人为核心的社交网络产生了大量的文本、图片、音视频等数据,对这些数据的批量处理可以对社交网络进行分析,发现人与人之间的大量隐含的关系或者他们中存在的社区,推荐朋友或者相关的主题
2. 电子商务:购买记录、商品评论、商品网页访问次数和驻留时间等数据,通过批量处理,可以根据用户消费行为为商家提供推荐相关商品的策略等
3. 搜索引擎:广告分析系统,通过对广告相关数据的批量处理来改善广告的投放效果以提高用户点击量
4. 安全领域:欺诈检测和IT安全,可对客户交易和现货异常进行判断,从而使其他产品判断是否接受来自这些来源的通信。另一方面,企业通过处理机器产生的数据,识别恶意软件和网络攻击模式,从而使安全产品判断是否接受来自这些来源的信息。
5. 公共服务领域:能源/医疗保险
6. 其他:移动数据分析/图像处理。基础设施管理等
处理系统
Hadoop - 大数据处理框架
HDFS - 负责静态数据的存储
MapReduce - 一种编程模式,将计算逻辑分配到各数据节点进行数据计算和价值发现。
MapReduce 采用无共享大规模集群系统,具有良好的性价比和可伸缩性,为MapReduce成为大规模海量数据平台的首选创造了条件;MapReduce模型简单,隐藏了很多繁琐的细节(自动并行化/负载均衡/灾备管理等),并且大量数据处理问题,包括机器学习和数据挖掘算法,都可以使用MapReduce实现;虽然MapReduce模型只提供一个过程性的编程接口,但在海量数据环境、需要保证可伸缩性的前提下,通过合适的查询优化和索引技术,MapReduce仍能提供良好的数据处理性能。
流式数据处理系统
实时数据处理系统:流式数据处理/交互式数据处理
在大数据背景下,流式数据处理源于服务器日志的实时采集,交互式数据处理的目标是PB级数据的处理时间缩短到秒级。
流式数据的特征
流式数据是一个无穷的数据序列,序列中每一个元素来源各异,各式复杂,序列往往包含时序特性,或者有其他的有序标签(如IP报文的序号)。从数据库角度而言,每一个元素可以看作一个元组,元素的特性类比于元组的属性。流式数据在不同的将惊吓往往体现出不同的特征,如流速大小、元素特性数量、数据格式等,但大部分流式数据都含有共同的特征,这些特征便可以用来设计通用的流式数据处理系统。
共有特征
流式数据的元组通常带有时间标签或其余含序属性。
数据的物理数据和逻辑顺序可能不一致(实际到达顺序和含序属性排序)
数据源不受系统控制,产生的数据是实时的、不可预知的
数据流速往往有较大波动
–> 系统需要具有很好的可伸缩性,能够动态适应不确定流入的数据源,具有很强的系统计算能力和大数据流量动态匹配能力。
数据流中数据可能是结构化/半结构化/无结构化的,包含错误元素/垃圾信息等。
–> 系统需要良好的容错性与异构分析能力。能够完成数据的动态清洗、格式处理等。
流式数据是活动的(用完即弃),随着时间推移不断增长,不同于传统的数据处理模式(存储->查询)
–> 系统可以根据局部数据进行计算,保存数据的动态属性。针对该特性,应提供流式查询接口,即提交动态的SQL语句,实时地返回当前结果。
流式数据典型应用
1. 数据采集应用:
- 日志采集系统:针对各类平台不断产生的大量日志信息量身定做的处理系统,通过流式挖掘日志信息,达到动态提醒与预警功能。
- 传感器采集系统:通过采集传感器信息,实时分析提供动态的信息展示,主要应用于智能交通、环境监控、灾难预警等
- 数据采集系统:利用网络爬虫抓去万维网上的内容,通过清洗、归类、分析并挖掘其数据价值
2. 金融银行的应用:数据时效性短、存在结构化/半结构化数据。通过流失计算,发现隐含其中的内在特征,可帮助进行实时决策。
流式数据处理系统
Storm(Twitter)- 分布式、可靠、可容错的用于处理流式数据的系统。
*