Skip to main content
 Web开发网 » 操作系统 » linux系统

为什么在数据量很大时(TB以上)需要利用hadoop系统?

2021年10月14日9200百度已收录

当数据量很大时,单台机器已经不能够在存储和计算这么大量的数据,需要引用到分布式技术来处理这些数据。Hadoop 作为一种大数据处理系统,包括分布式文件存储、分布式计算、以及资源管理,使用 Hadoop,可以解决大数据量的存储和计算的问题。

同时 Hadoop 是一款开源大数据组件,很多公司直接使用 Hadoop 技术,就可以满足公司内部的离线业务需求,技术成本很低。

为什么在数据量很大时(TB以上)需要利用hadoop系统?  Hadoop 第1张

Hadoop 文件系统将数据量大的文件分布式存储在不同机器,解决数据量大不能存储问题Hadoop 中 HDFS 分布式文件系统,通过对数据体量非常大的文件进行分块,每个块默认 256 兆,将其分成数据量较小的多个块,然后对每个数据块在进行数据备份存储,一个数据块有三个数据副本,冗余的存储在集群上,通过数据冗余解决数据容错问题。

打个比方,你的一个文件大小为 1 TB 大小,单台机器磁盘 500 G 存不下。此时你将文件存储在 HDFS 文件系统上,那么该文件最终会按照 256 兆一个数据块,划分成 4000块,分布式的存储在 Hadoop 集群上面,每台机器都会存储这个文件的一个数据子集,这样就解决了数据量大单机不能存储的问题。

Hadoop MapReduce 分布式计算框架,解决单台机器不能计算问题

为什么在数据量很大时(TB以上)需要利用hadoop系统?  Hadoop 第2张

Hadoop MapReduce 计算框架包含两个步骤:Map阶段和Reduce阶段。由于 HDFS 文件系统将数据按照块进行存储,当在 Map 阶段的时候,会对每一个块进行计算,相当于对一个数据量大的文件,并行计算,每个 Map 任务处理的就是该文件的一个数据子集。

Reduce 阶段就是对 Map 任务产生的数据,在做一个汇总计算。打个比方,就比如 Hadoop 中 WordCount 场景,Map 阶段只是计算这个 Map 任务输入文件的中的每个单词的数量,但是多个 Map 任务中key有可能相同,所以最终还需要在 Reduce 任务中再进行一次汇总。

Map1 任务计算的单词 A 有 3 个,Map2 任务计算的单词 A 有 2 个,最后通过 Reduce 任务汇总,单词 A 个数就有 5 个。

为什么在数据量很大时(TB以上)需要利用hadoop系统?  Hadoop 第3张

个人想法Hadoop 由于其开源特性,任何公司都可以使用其作为公司的大数据处理计算框架,所以 Hadoop 在国内使用的范围还是非常广的。同时有很多其他大数据组件最底层或多或少都需要使用到 Hadoop ,比如 HBase 数据库、Flink 实时计算引擎的状态存储等等,Hadoop 生态是非常广的,所以很多公司还在使用 Hadoop。

我是Lake,专注大数据技术原理、人工智能、数据库技术、程序员经验分享,如果我的问答对你有帮助的话,希望你能点赞关注我,感谢。

我会持续大数据、数据库方面的内容,如果你有任何问题,也欢迎关注私信我,我会认真解答每一个问题。期待您的关注

评论列表暂无评论
发表评论
微信