大家好,我是 梦想家Alex 。之前我也写了不少关于大数据技术组件的文章,例如:
MapReduce 的核心知识点,你都 get 到了吗 ?(干货文章,建议收藏!)
从 0 到 1 学习 Presto,这一篇就够了!
...
但感觉基本上都是在描述一些理论层面的内容,缺少一些架构的思想精髓 。而且大数据技术其实是分布式技术在数据处理领域的创新型应用,其本质就是利用更多的计算机组成一个集群,提供更多的计算资源,从而满足更大的计算压力要求。说的通俗易懂一些,就是大数据技术的诞生解决的就是数据存储和计算的问题。正好最近在刷李智慧老师的书和极客专栏,想输出一些有用的干货。
本篇文章,我先通过一个引子,然后按顺序依次为大家带来 Hadoop 三大组件:HDFS,MapReduce,Yarn 的架构分析和原理介绍,希望大家看完都能有所收获 。
1引子
大数据就是将各种数据统一收集起来进行计算,发掘其中的价值。这些数据,既包括数据库的数据,也包括日志数据,还包括专门采集的用户行为数据;既包括企业内部自己产生的数据,也包括从第三方采购的数据,还包括使用网络爬虫获取的各种互联网公开数据 ...
面对如此庞大的数据,如何存储、如何有效利用大规模的服务器集群处理计算才是大数据技术的核心。
2HDFS 分布式文件存储架构
我们知道,Google 大数据“三驾马车”的第一驾是 GFS(Google 文件系统),而 Hadoop 的第一个产品是 HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性。如果我们将大数据计算比作烹饪,那么数据就是食材,而 Hadoop 分布式文件系统 HDFS 就是烧菜的那口大锅。
厨师来来往往,食材进进出出,各种菜肴层出不穷,而不变的则是那口大锅。大数据也是如此,这些年来,各种计算框架、各种算法、各种应用场景不断推陈出新,让人眼花缭乱,但是大数据存储的王者依然是 HDFS。
为什么 HDFS 的地位如此稳固呢?在整个大数据体系里面,最宝贵、最难以代替的资产就是数据,大数据所有的一切都要围绕数据展开。HDFS 作为最早的大数据存储系统,存储着宝贵的数据资产,各种新的算法、框架要想得到人们的广泛使用,必须支持 HDFS 才能获取已经存储在里面的数据。所以大数据技术越发展,新技术越多,HDFS 得到的支持越多,我们越离不开 HDFS。HDFS 也许不是最好的大数据存储技术,但依然最重要的大数据存储技术。
之前在 前方高能 | HDFS 的架构,你吃透了吗?这篇文章中,我们就已经谈到了 HDFS 的架构 ,如下图所示:
HDFS 可以将数千台服务器组成一个统一的文件存储系统,其中 NameNode 服务器充当文件控制块的角色,进行文件元数据管理,即记录文件名、访问权限、数据存储地址等信息,而真正的文件数据则存储在 DataNode 服务器上。
DataNode 以块为单位存储数据,所有的块信息,比如 块 ID、块所在的服务器 IP 地址等,都记录在 NameNode 服务器上,而具体的块数据存储在 DataNode 服务器上。理论上,NameNode 可以将所有 DataNode 服务器上的所有数据块都分配给一个文件,也就是说,一个文件可以使用所有服务器的硬盘存储空间 。
此外,HDFS 为了保证不会因为磁盘或者服务器损坏而导致文件损坏,还会对数据块进行复制,每个数据块都会存储在多台服务器上,甚至多个机架上。
关于 HDFS是怎么做文件管理和容错,可以看下这篇文章:
标签:HDFS,MapReduce,Yarn,集群,计算,服务器,数据 From: https://blog.51cto.com/u_15105906/5901838