什么是大数据
大数据简而言之就是巨量的数据。随着互联网的发展,我们的行为,我们日常活动、自然界运行的规律随时随地都在产生数据信息。而由互联网而链接的数据是海量的,这些数据的背后蕴含的价值也是巨大的。对这些数据的分析与挖掘,能让我们更好的了解事、物、自然以及人类社会运行的规律。
所以说大数据:就是对海量数据进行处理、分析、挖掘获取数据背后蕴含价值的技术体系。
大数据体系
大数据体系结构主要包含数据存储、数据传输、数据计算。
数据存储:对海量数据的保存与备份
数据计算:对海量数据等计算分析,挖掘数据等价值
数据传输:协助大数据存储和计算等各环节数据等传输读取工作
数据存储
数据存储:对海量数据的保存与备份
随着大数据等发展,数据越来越大,对海量数据等存储也成了企业发展中的难点。在企业中,对于数据等存储一般都是以PB、EB计算的。单机的情况下,不能很好的完成对数据的存储与备份。所以目前的数据存储都是以分布式存储的方式对数据进行存储。
分布式存储可以分为中心化模式和去中心化模式
中心化模式
中心化模式又被称为主从模式(Master and Slaves)。中心化模式的主要特点是有一个中心节点服务器来统筹管理其他服务器的工作,统一对资源进行调度、避免争抢资源而引起的混乱。如大数据中最流行的框架Hadoop的HDFS文件系统就是以中心化模式进行的存储。
中心化模式的稳定性和安全性依赖于中心节点的稳定和安全,所以中心化模式虽然能对资源进行统一调度和安排,但一旦中心节点出现问题,造成的影响必然是不可估量的。在Hadoop的HDFS存储文件系统中,可以设置两个中心化节点,当一个中心节点出现问题时,可以无缝衔接第二个中心节点,这种多中心化节点的模式能很好的解决单中心化模式存在的缺陷。
在多中心化节点的模式中,如果条件允许,尽量选择异地组网的方式,避免同一个机房因相同的问题导致中心节点都出现问题。
对存储模式的一些思考
想必很多人都听说过NAS系统,相比于高成本的大数据分布式存储。NAS这种产品更平民化,更适合于普通用户或小型工作室的大量数据存储。
大家对NAS的印象可能是大文件存储,安全性,毕竟NAS采用raid冗余性磁盘阵列,能放下更多的磁盘。
但在实际的应用中,首先,组raid需要一定的级别,即需要多盘才能体现出相应的优势。在少量硬盘的情况下,一旦出现一个坏盘,对整体的稳定性和数据安全性都是不可估量的。其次,若是在一次到位的情况下,用户购买硬盘都是买的同批量的硬盘,在这种情况下,一旦一台硬盘出现问题,那理论上,其他硬盘本身也快到其理论寿命来。
综上所述,对于数据的安全存储,最好的方式还是采用异地异机的方式进行存储。在同一机房的情况下,难免会因为相同的原因导致批量的硬盘出现故障问题。数据存储硬盘的讨论
热点数据/预热数据存储在SSD中,能更快的进行访问读取
温数据/数据备份存储在机械硬盘中,相比于SSD硬盘更加稳定
冷数据(如果有的话)存储在磁带,读取数据只能一次性全部读取
数据计算
数据计算:对海量数据等计算分析,挖掘数据等价值
数据计算主要是对海量数据进行统计分析,挖掘数据的价值,了解数据背后的统计规律。为更好的服务社会,创造生产力提供支持。
数据传输
数据传输:协助大数据存储和计算等各环节数据等传输读取工作
在大数据中,对数据的传输也是重中之重。大数据体系由于采用分布式架构,其数据是分布存储到不同的设备中的,在多台设备之间的传输也是大数据体系的重中之重。
在数据传输中一般采用消息队列或数据总线的方式实现资源的调度和传输。如Kafka消息队列。
为什么采用消息队列进行数据传输
- 在高并发的场景下,由于来不及处理同步请求,请求会发生堵塞。通过消息队列,可以异步的处理请求,缓解系统压力
- 当系统资源有限时,不断的向系统发起请求,超过系统所能处理请求的最大阈值,可能会导致系统崩溃。
- 当发起请求需要立即获得回调信息,而请求的处理需要消费一点的时间时。如:发送邮件,系统下单,模型训练,远程接口调用等
- 消息队列在消费者和生产者中引入了exchange的概念,当压力增长的情况下,可以通过配置exchange在不停机的情况下调整系统资源,缓解服务压力