首页 > 电脑

HDFS中默认的副本因子个数是多少

更新时间2019-10-22 05:41:06

Hadoop作为大数据时代代表性的解决方案被大家所熟知,它主要包含两部分内容:

HDFS分布式文件存储

MapReduce分a布式计算框架

前面我们分析存储方案的发展的时候有提到分布式文件存储的出现是为了解决存储的三大问题:可扩展性,高吞吐量,高可靠性

那么Hadoop的核心HDFS是如何解决上面三个问题的呢?

其实设计一个系统我们要考虑到它的应用场景,然后对它的功能和特性进行设计,做出取舍。我们可能会关注这几个问题:

1.原始存储格式 or 特殊存储格式,通过什么格式存储才能方便的管理数据,保证数据的迁移和安全。

2.大文件 or 小文件,文件系统适合大文件还是小文件存储,如何提供I/O效率。

3.数据高可用 or 空间利用率,通过复制副本技术提高数据可用性必然会降低空间利用率,应该如何取舍。

4.是否有元数据服务,元数据服务是保存存储数据元数据信息的服务,读写数据都需要连接元数据服务器保证一致性。存在元数据服务势必会存在单点问题和性能瓶颈问题。

上面这个4个问题划重点,要考的!!!

HDFS它的设计目标就是把超大的数据集存储到多台普通计算机上,并且可以提供高可靠性和高吞吐量的服务,支持通过添加节点的方式对集群进行扩容。所以HDFS有着它自己的设计前提:

1.对存储大文件支持很好,不适用于存储大量小文件

2.通过流式访问数据,保证高吞吐量而不是低延时的用户响应

3.简单一致性,使用场景应为一次写入多次读取,不支持多用户写入,不支持任意修改文件。

4.冗余备份机制,空间换可靠性(Hadoop3中引入纠删码机制,纠删码需通过计算恢复数据,实为通过时间换空间,有兴趣的可以查看RAID的实现)

5.移动计算优于移动数据,为支持大数据处理主张移动计算优于移动数据,提供相关接口。

遵循以上的设计前提和目标最终的成品就是我们日常应用中的HDFS了。HDFS主要由NameNode和DataNode构成,以Master/Slave模式运行。


上一篇:java一个char类型的数组转换为一个字符串的问题

下一篇:c语言初学者提问