赞
踩
Hadoop系列 (一):在CentOS中搭建hadoop环境(伪分布式)
Hadoop系列 (二):完全分布式搭建(腾讯云服务器+阿里云服务器)
HDFS( Hadoop Distributed File System ),意为:Hadoop分布式文件系统。是Apache Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。
用于存储和管理文件,通过统一的命名空间(类似于本地文件系统的目录树)。
HDFS是分布式的,服务器集群中各个节点都有自己的角色和职责。
HDFS是用Java语言实现的、分布式的、可扩展的文件系统。
HDFS是Hadoop的三大核心(HDFS、MapReduce、YARN)和四大模块(Hadoop Common、Hadoop HDFS、Hadoop MapReduce、Hadoop YARN)之一。
HDFS主要应用于海量数据的存储。
HDFS的基本存储单位:块,块是最小的数据读写单位,默认存储块大小为128M。块的大小可以在配置文件hdfs-site.xml
中修改。块的默认单位是Byte,每个块都有自己的全局唯一ID。HDFS就是以块为单位在集权服务器上分配存储的。
块的好处就是:一个文件的大小可以大于集群中任一磁盘容量;块适合于数据备份,极大的提高了集群的容错能力和可用性。
高可靠:按位存储,就近原则分配数据,会把数据分配到离它最近的数据节点(DateNode)上。
高扩展:集群节点可以根据业务需求随时扩展和缩减。
高效性:可以在各个集群节点之间动态移动数据,保证集群各节点之间的动态平衡。
高容错:自动保存多个副本(默认3个,可自行修改),并且能够将失败的任务重新分配,解决故障,成本低。
不适合存储小文件
不适合低延迟的数据访问(多用于离线数据分析)
故障检测和自动快速恢复是HDFS的核心架构目标。因为HDFS可能有成百上千的服务器组成,每一个组件都有可能出现故障。
相较于数据访问的反应时间,更注重数据访问的高吞吐量。HDFS被设计成用于批处理,而不是用户交互式的。
典型的HDFS文件大小是GB到TB的级别。所以,HDFS被调整成支持大文件(Large Data Sets) 。它应该提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。
HDFS采用master/slave
架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。
注:fsimage 和 editlog是在磁盘保存两个元数据管理文件
适合场景:大文件、数据流式访问、一次写入多次读取、高容错等。
不适合场景:小文件、交互式访问、频繁修改、低延迟处理等。
NameNode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。
NameNode的工作机制如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。