理解大数据,可以换一个角度

2021-09-10 11:07:48 浏览数 (1)

一提到大数据,大多数技术人可能会想到它的4V特征:数据量、速度、多样性、价值。但同时也会想到它庞大的技术生态圈——大数据产品的数量非常丰富。

仅仅是常见的产品,就已经有这么多了,眼花缭乱。这不禁让很多大数据开发者叹息:“卧槽,学不动了,学不动了”。

但实际上,如果从单机的角度去看待大数据技术,其实很容易理解。

比如,我们传统的数据库MySQL、Oracle。在单机节点部署的时候,是直接安装在操作系统上。操作系统提供了数据库运行的基本资源。

操作系统提供了哪些必要的东西呢?首先是文件系统,用于数据存储。其次是计算引擎,用于分析计算,操作系统提供计算指令集、汇编语言,也提供像C、C 等高级编程语言。最后,计算任务在执行过程中,操作系统会进行调度管理。

在操作系统之上,才会安装支持业务运行的各个组件,关系型数据库、图数据库、机器学习产品等。

其实大数据也是一样的原理。因为大数据是分布式的,而且原生的单机操作系统没办法提供强大的扩展性能,所以需要底层有一个分布式的操作系统来支撑大数据产品的运行。

这个操作系统需要有文件系统、计算引擎、资源调度。而Hadoop的三大组件,HDFS(分布式文件系统)、MapReduce(分布式计算引擎)、YARN(分布式资源调度),不正是一个分布式的操作系统吗?

其中HDFS提供海量数据的存储,MapReduce和编程语言一样提供计算支持,Yarn负责计算资源的分配。

有了这样的一个操作系统,在生产上还不够。因为企业中会有很多垂直的业务场景,如数据仓库、图计算、机器学习等。这些业务场景一般都比较成熟,会有特定的处理语法,像数据仓库的SQL。它们不会直接用底层的计算引擎,即使在传统架构中,也不会用C语言直接处理结构化数据。

所以大数据产品会在Hadoop组成的这样一个分布式系统上,安装一些各个垂直场景的组件。比如Hive用于数据仓库,可以进行结构化数据的存储、分析;使用Malhot进行机器学习的模型构建。

只要把底层Hadoop当做一个分布式操作系统,一切就和单机差不多了。只需要为各种业务场景安装不同的产品组件就行。

本质上,大数据是在已有的单机操作系统上,使用平台软件构建成了一个分布式的操作系统,在此基础上进行应用软件的安装。也正是因为这样,所以它在集群中的协调和调度,相对原生操作系统来说,要慢一些。但它能更好的适应海量数据的规模,在达到一定数据级别(PB)后,性能要远胜于传统架构。

那么我们可不可以畅想一下,如果直接在硬件的基础上抛去原生的单机操作系统,直接安装一个分布式的操作系统,性能会不会有一个质的飞跃?这样的一个专门为分布式服务的操作系统,会不会在将来实现,让我们拭目以待。如果实现,那一定是大数据的一个全新阶段。性能也一定会有质的提升。

后话

在公众号《数舟》中,可以免费获取专栏《数据仓库》配套的视频课程、大数据集群自动安装脚本,并获取进群交流的途径。我所有的大数据技术内容也会优先发布到公众号中。如果对某些大数据技术有兴趣,但没有充足的时间,在群里提出,我为大家安排分享。

0 人点赞