目录
1. HDFS 简介
HDFS(Hadoop Distribute File System)是大数据领域一种非常可靠的存储系统,它以分布式方式存储超大数据量文件,但它并不适合存储大量的小数据量文件。
2. HDFS 节点
2.1 HDFS Master 节点(Namenode)
Namenode会规范客户端对文件的访问,它维护和管理Slave节点,并把读写任务分配给Slave节点。Namenode执行文件系统的名字空间操作,比如打开,关闭,重命名文件和目录,应该把Namenode部署在高可靠的硬件上面。
2.2 HDFS Slave 节点(Datanode)
在HDFS集群,Datanode节点的数量可以扩展到1000。Datanode负责数据存储,它是真正干活的节点,比如响应客户端的数据读写请求,根据Namenode的指令创建和删除block。而且还会根据副本因子把block复制到其他节点。Datanode可以部署在价格低廉的商用机器上,没必要部署在昂贵的高可用机器上。
3. HDFS 特性
3.1 分布式存储
HDFS会把大数据文件分割成小block,并把这些block以分布式方式存储在集群。这样MapReduce才能并行的对这些数据进行计算处理。
3.2 高可用
为了达到数据高可用目的,数据块的副本是存储在集群的不同节点的。默认副本因子是3,也就是说数据会在3个不同节点存储,3个节点全挂的概率比较小,所以其中某个节点或者网络挂了都不影响数据可用性。
3.3 可扩展性
可扩展性即集群可以根据需要扩充和缩小。Hadoop HDFS可以用下面2种方式来达到扩展性目的。
- 给集群的节点增加更多的磁盘。
我们需要编辑配置文件,并为新添加的磁盘创建相应的条目。这种方式需要停机处理,即使停机时间很少。所以人们通常更倾向于使用第二种扩展方式,即水平扩展。
- 给集群增加更多的节点。
这种方式不需要停机,把机器加进来,做一下配置和数据平衡即可,这种方式被称为集群的水平扩展。
3.3 高吞吐量
HDFS提供高吞吐量访问数据。吞吐量是单位时间内完成的工作量,它描述了从系统访问数据的速度,通常用它来衡量一个系统的性能。当我们执行一个任务或者一个操作的时候,这个任务会被分割成小任务并被分发到不同系统,系统将会并行且独立的执行这些分配给他们的任务。这样,一个大任务将会在非常短的时间内被执行完成。HDFS就是利用这种方式来提供高吞吐量能力的。通过并行读取数据,我们大大减少了实际读取数据的时间。