大数据hadoop
Hadoop是一个开源的框架,也是Apache的一个顶级项目。Hadoop框架中由两大模块组成,一个HDFS(Hadoop Distributed File System),是用来存储需要处理数据,另外一个是MapReduce,是Hadoop的处理数据的计算模型。
Hadoop的好处在于:
-
可扩展:如果集群现在的能力不能满足现有的需求,可以增加数据节点来实现集群的扩展,但需要具体情况具体对待。
-
经济:Hadoop集群能够在普通、廉价的硬件设备上运行,节约开支。
-
可靠:HDFS上提供副本机制,可以使得数据不会丢失,MapReduce若发现计算的数据块损坏,它会自动寻找没有损坏的数据块重新计算。
-
高效:充分利用本地数据来提高性能。
如果有对大数据感兴趣程序员,可来我们的大数据交流扣qun哦:591305687里面免费送大数据的系统教程噢! 小编也是一名从事了5年的数据算法工程师,花了近两个月整理了一份较适合当下学习的干货,以及我这5年的工作经验,分享给每一位想学大数据的小伙伴,这里是大数据学习者聚集地,欢迎初学和进阶中的小伙伴。
HDFS
-
HDFS的Hadoop的分布式系统,也可以部署在普通硬件机器上,是一个容错性高的系统,它有3个副本来解决容错问题的。
-
它是通过流式来读取数据的。它可以存储TB以上的数据量,它是通过顺序读取文件来实现高吞吐的。
-
HDFS适合处理大文件的访问,流式数据访问,不适合小文件的存储,因为这些文件的元数据会占用大量的内存空间,也适合随机读取,低延迟读取。
MapReduce
-
MR是一个并行计算的一个模型框架。文件储存在HDFS上,然后通过MR模型来进行大数据的处理。
-
它可以由许多的普通的硬件机器来构成大型并行集群,可以在集群上自动分配和执行任务以及收集结果,可以简化我们的工作,主要是用map和reduce两个函数来实现并行计算。
-
MR采用"分而治之"的思想来解决一台机器处理不了的事,它是分发给主节点管理的分节点来共同完成的,然后通过整合各个节点的中间结果,从而得到最终结果。
-
MR的运用场景是:数据可以分解成很多个小数据块来并行处理。
数据块
一个大型的文件在一台机器上是存储不下的,HDFS是通过将文件split成多个数据块block来实现存储的,以前一个数据块是64M,2.0版本是128M,3.0版本是256M。而且小于块大小的文件不会占用整个块的空间。每block都有3个副本(可配置)。
NameNode
NameNode是HDFS的元数据服务器,可以配置HA,里面信息包含每一个文件大小|权限|创建时间|位置等,主要管理文件和目录等。
DataNode
DataNode:负责检索和存储数据块,客户端访问数据文件时,先通过NameNode知道数据在哪个DataNode上存储的,然后直接读取数据块,而且DataNode是每隔一段时间会向NameNode发送一次心跳。