HDFS 面试题(二)

1. 简述HDFS的Block ?

HDFS的Block是HDFS中数据存储的基本单元。以下是HDFS Block的一些关键特性:

  1. 大尺寸:HDFS的Block默认大小是128MB,这个尺寸比传统的文件系统要大得多,这有助于减少元数据的数量,提高存储效率。

  2. 文件分块:当一个文件被存储到HDFS时,如果文件的大小超过了Block的大小,文件会被分割成多个Block。每个Block会被独立存储和管理。

  3. 副本机制:为了提高数据的可靠性,HDFS会为每个Block创建多个副本(默认是3个)。这些副本被存储在不同的DataNode上,以防止单个节点故障导致数据丢失。

  4. 存储位置:每个Block在HDFS中的存储位置由NameNode管理。NameNode维护着文件系统的命名空间和Block的映射信息,知道每个Block存储在哪些DataNode上。

  5. 数据本地性:HDFS在设计时考虑了数据本地性,尽量让计算任务在存储数据的节点上执行,这样可以减少数据在网络中的传输,提高效率。

  6. 块的读写:当应用程序需要读取数据时,它会通过NameNode找到Block的位置,然后直接从DataNode读取数据。写入数据时,客户端首先将数据发送到一个DataNode,然后该DataNode会将数据分发到其他需要存储副本的DataNode。

  7. 块的恢复:如果某个DataNode故障,NameNode会检测到这一情况,并指示其他DataNode复制丢失的Block副本,以保持所需的副本数量。

  8. 块的合并和拆分:在某些情况下,如文件追加操作,HDFS可能会合并或拆分Block。例如,当向一个文件追加数据时,可能会创建一个新的Block,或者将数据追加到现有的Block中。

  9. 块的校验:DataNode会为存储的每个Block生成校验和(checksum),这有助于在读取数据时检测数据的完整性。

通过这些特性,HDFS的Block机制不仅提高了存储效率,还增强了数据的可靠性和容错能力。

2. HDFS的块默认大小,64M和128M是在哪个版本更换的?怎么修改默认块大小?

HDFS的块默认大小从64MB更换到128MB是在Hadoop的2.x版本中进行的。具体的修改默认块大小的方法如下:

  1. 停止正在运行的Hadoop集群。
  2. 打开Hadoop安装目录下的conf文件夹中的hdfs-site.xml配置文件。
  3. 修改或添加以下配置项,设置dfs.block.size属性的值来改变块大小,例如,如果要设置块大小为256MB,可以添加或修改如下配置:
    <property>
        <name>dfs.block.size</name>
        <value>268435456</value> <!-- 256MB 对应的字节数 -->
    </property>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依邻依伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值