产品经理学大数据——大数据软件框架:Hadoop框架(1)之HDFS

Hadoop是Apache的子项目,是一个分布式系统基础架构,它主要是用于大数据的处理。Hadoop所提供的分布式文件系统(HDFS)实现了大规模的存储(在所有计算节点上分布式存储50TB数据),这为整个集群带来了非常高的带宽,因此能大大提高效率。Hadoop可以让用户在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

  • Hadoop框架

Hadoop框架使用Java编写的,它的核心是HDFS(Hadoop分布式文件系统)和MapReduce。HDFS为大数据提供了存储,MapReduce为大数据提供了计算。

Hadoop框架包括Hadoop内核、MapReduce、HDFS和Hadoop YARN等。Hadoop也是一个生态系统,在这里面有很多组建。除了HDFS和MapReduce,有NoSQL数据库的HBase,有数据仓库工具Hive,有Pig工作流语言,有机器学习算法库Mahout,有在分布式系统中扮演重要角色的Zookeeper,有内存计算框架的Spark,有数据采集的Flume和Kafka。总之,用户可以在Hadoop平台上开发和部署任何大数据应用程序。

  • HDFS(分布式文件系统)

HDFS是Hadoop Distribute File System的简称,是Hadoop的一个分布式文件系统。在海量数据的处理中,我们经常碰到一些大文件(几百GB甚至TB级别)。在肠胃的系统上,这些大文件的读和写需要花费大量的时间。HDFS优化了大文件的流式读取方式,它把一个大文件分隔成一个或者多个数据块(默认大小为64MB),分发到集群的节点上,从而实现了高吞吐量的数据访问,这个集群拥有几百个节点, 并支持千万级别的文件。因此HDFS非常适合大规模数据集上的应用。

HDFS使用一种机架位感知的办法,先把一份拷贝放入同机架上的机器,然后再拷贝分到其他服务器,这台服务器也许是位于不同的数据中心的,这样,如果某个数据点坏了,就从另一个机架上调用。除了机架位感知的办法,现在还有基于erasure code(一种编码存储技术)的方法。这种方法本来是用于通信容错领域的办法,可以节约空间又达到容错的目的。

  • 名字节点和数据节点

HDFS是一个主从结构。一个HDFS集群是有一个名字节点(NameNode)和多个数据节点(DataNode)组成,它们通常配置在不同的机器上。HDFS将一个文件分割成一个或多个块,这些块被存储在一组数据节点中。名字节点用来操作文件命名空间的文件或目录操作,如:打开、关闭、重命名等等,它同时确定块与数据节点的映射。数据节点负责来自文件系统客户的读写请求。数据节点同时还要执行块的创建、删除,以及来自名字节点的块复制指令。

一个名字节点保存着集群上所有文件的目录树,以及每个文件数据块的位置信息。它是一个管理文件命名空间和客户端访问文件的主服务器,但是它不真正存储文件数据本身。

数据节点通常是一个节点或一个机器,它用来真正地存放文件数据(和复制数据),管理着从NameNode分配过来的数据块,并管理对应节点的数据存储。

HDFS对外开放文件命名空间并允许用户数据以文件形式存储。

 

你可能感兴趣的:(大数据入门,产品经理学大数据,大数据入门,Hadoop,HDFS,产品经理)