HDFS 的特点
HDFS 的特点

HDFS 具有高容错性
HDFS 具有高容错性,通过在服务器集群的每个服务器机器复制存储数据,实现数据的冗余备份,即使某一节点发生故障,也能保证数据的可用性。

HDFS 支持超大文件存储
HDFS 可以通过大型集群,将大文件拆分成多个小块,实现超大文件的存储支持。HDFS 也支持自定义数据块大小,可以根据实际情况进行设置,从而有效提高大文件的存储效率和读写性能,同时 HDFS 能够水平扩展存储容量,适应海量数据的存储需求。

HDFS 可构建在低成本的机器上
HDFS 采用数据复制的方式实现数据的冗余备份,因此可以使用低成本的机器来搭建 HDFS 集群,而不需要过多考虑机器的性能和可靠性,适合构建大规模数据存储和处理平台。

HDFS 具有高容错性
HDFS 具有高容错性,通过在服务器集群的每个服务器机器复制存储数据,实现数据的冗余备份,即使某一节点发生故障,也能保证数据的可用性。

HDFS 支持超大文件存储
HDFS 可以通过大型集群,将大文件拆分成多个小块,实现超大文件的存储支持。HDFS 也支持自定义数据块大小,可以根据实际情况进行设置,从而有效提高大文件的存储效率和读写性能,同时 HDFS 能够水平扩展存储容量,适应海量数据的存储需求。

HDFS 可构建在低成本的机器上
HDFS 采用数据复制的方式实现数据的冗余备份,因此可以使用低成本的机器来搭建 HDFS 集群,而不需要过多考虑机器的性能和可靠性,适合构建大规模数据存储和处理平台。
HDFS 异常处理
HDFS 异常处理
HDFS 异常处理包括:
- 重新复制:如果某个数据块损坏或丢失,HDFS 会自动从其他备份中获取数据进行恢复,如果 HDFS 在复制数据块时出现异常,可能会导致数据块的复制数量不足,此时需要 HDFS 重新复制数据块;
- 数据正确性:由于文件块可能会因为网络异常、设备故障或软件漏洞等原因损坏,因此 HDFS 实现了校验机制,以保证数据的正确性;
- 元数据失效:由于 HDFS 的核心由 FsImage 和 Editlog 组成,因此需要保障 FsImage 和 Editlog 的可用性,配置名字节点并同步更新多个副本,以避免集群失效。此外在 HDFS 中,大量的数据请求比元数据请求更常见。
HDFS 的读写流程
HDFS 的读写流程
HDFS 的读写流程如下:
- 文件写入:客户端向 HDFS 中的 NameNode 发送一个写入请求,并将文件的元数据保存在 NameNode 上;
- 数据块复制:在接收到客户端写入请求后,NameNode 会返回存储文件的一组 DataNode 列表,客户端会将数据块发送给这些 DataNode 进行存储;
- 数据读取:客户端向 NameNode 发送读取请求,并获取文件的元数据;
- 数据块恢复:如果客户端在读取数据块时发现某个 DataNode 上的数据块损坏或丢失,HDFS 会自动从其他副本的 DataNode 中获取数据块进行恢复;
- 数据校验:在读取数据块时,HDFS 会通过对数据块的校验,来验证数据的完整性和正确性。