Hadoop中的副本、校验和(数字指纹)、block

1.副本:为了系统容错,文件系统会对所有的数据块进行副本复制

        1.副本生成和数量

        在数据块被写入HDFS的过程中,NameNode会根据副本策略决定每个数据块的副本数量和存储位置,Hadoop默认副本数量是3,每个数据块的副本会被存放在不同的DataNode节点上,以确保数据的高可用和容错性。

        第一个副本,如果客户端是集群外的一台机器,就会随机存放在一个DataNode节点上(系统会避免存放在太忙碌的节点)

        第二个副本,存放在不同机架上的随机DataNode节点

        第三个副本,存放在与第二个副本相同的机架但是不同的DataNode节点上

2.校验和(Checksum)

        在数据块被写入HDFS的过程中,客户端会将输入的文件按照block块的大小切分为多个数据块,对于每个数据块,客户端会计算其校验和,并将这些校验和一起存储在一个单独的校验和文件中,这些校验和文件和实际的数据块被一起存放在DataNode中,用于后续的数据完整性的校验。

        当客户端从HDFS中下载数据时,NameNode会提供数据块的位置(包括副本的位置),客户端会根据这些位置从DataNode中下载数据块和校验和文件

        客户端逐个读取数据块,并计算每个数据块的校验和,将计算得到的校验和与从校验和文件中读取的校验和进行比较,如果校验和匹配,说明这个数据快是完整且未被篡改的

        如果校验和不匹配,客户端会从其他的DataNode中下载该数据块的副本,并重新进行校验。

3.block块

        数据块,磁盘读写的基本单位,hadoop2.0默认大小是128M

        块增大可以减少寻址时间,但是也不宜过大,块过大会导致整体任务数量过小,降低作业处理速度

相关推荐

  1. Hadoop副本、校验(数字指纹)、block

    2024-07-10 11:08:05       22 阅读
  2. 数据分析:使用SparkHadoop实用指南

    2024-07-10 11:08:05       33 阅读
  3. 二进制数据传输校验方法

    2024-07-10 11:08:05       55 阅读
  4. Kafka分区副本机制

    2024-07-10 11:08:05       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 11:08:05       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 11:08:05       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 11:08:05       90 阅读
  4. Python语言-面向对象

    2024-07-10 11:08:05       98 阅读

热门阅读

  1. Xshell 和宝塔有啥区别

    2024-07-10 11:08:05       30 阅读
  2. SD卡,laptop,启动ubtuntu

    2024-07-10 11:08:05       26 阅读
  3. 达梦数据库主备手动切换

    2024-07-10 11:08:05       29 阅读
  4. ffmpeg滤镜创建过程

    2024-07-10 11:08:05       30 阅读
  5. stm32使用单通道规则组ADC

    2024-07-10 11:08:05       31 阅读
  6. HTML 学习指南:从入门到精通

    2024-07-10 11:08:05       29 阅读
  7. 经导管二尖瓣修复系统市场全面解析与未来展望

    2024-07-10 11:08:05       28 阅读
  8. 大众点评商家电话采集软件分享 解析爬虫工具

    2024-07-10 11:08:05       26 阅读
  9. Python 使用正则提取字符串

    2024-07-10 11:08:05       22 阅读