cdh4 vs cdh3 client处理DataNode异常的不同

本文对比了CDH3与CDH4在处理pipeline错误时的不同策略。CDH3通过移除故障datanode并使用剩余节点继续写入来应对错误;而CDH4则采取替换故障datanode,并复制数据块到新节点的方式重建三节点pipeline。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cdh4在处理pipeline中的错误时,逻辑上与原先不一样。 

cdh3在处理pipeline的错误时,假设当前pipeline有3个datanode,如果一个有问题,那么通过移除掉坏的datanode,重新建立只有2个datanode的pipeline,然后接着往这两个节点的pipeline写,直到结束。 

cdh4默认处理时不一样,如果当前pipeline有3个datanode,有一个出了问题,那么把这个从pipeline中移除,然后向namenode在申请一个新的datanode,从其中一个好的datanode上面的块数据拷贝到这个新的datanode,然后建立一个新的3个datanode的pipeline。 

 

cdh4这个策略可以配置,见类ReplaceDatanodeOnFailure,默认见下面:

  public static final String  DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_ENABLE_KEY = "dfs.client.block.write.replace-datanode-on-failure.enable";
  public static final boolean DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_ENABLE_DEFAULT = true;
  public static final String  DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_POLICY_KEY = "dfs.client.block.write.replace-datanode-on-failure.policy";
  public static final String  DFS_CLIENT_WRITE_REPLACE_DATANODE_ON_FAILURE_POLICY_DEFAULT = "DEFAULT";

 

 

 

### 配置Cloudera CDH环境中的HDFS以支持不同字符集 在Cloudera CDH环境中配置HDFS以支持不同的字符编码主要涉及调整客户端和服务端的Java属性以及文件系统的元数据处理方式[^1]。 对于服务端(NameNode和DataNode),可以通过修改`hdfs-site.xml`来设置默认字符编码: ```xml <property> <name>dfs.namenode.fs-limits.max-component-length</name> <value>8192</value> <description>The maximum length of a filename component (i.e., the part between slashes). This value should be increased when using multi-byte character sets.</description> </property> <property> <name>dfs.client.read.shortcircuit.buffer.size</name> <value>1048576</value> <description>This parameter does not directly affect encoding but may need adjustment with larger file names or paths containing non-ASCII characters.</description> </property> ``` 为了确保整个集群统一采用特定的字符编码,在所有节点上的JVM启动参数中加入如下选项可以强制指定使用的字符集: ```bash -Dfile.encoding=UTF-8 ``` 此操作通常通过编辑各个守护进程对应的脚本完成,比如`/etc/default/hadoop-hdfs-namenode` 或者利用Cloudera Manager GUI界面来进行全局设定[^2]。 另外值得注意的是,尽管可以在技术层面上实现多字节字符的支持,但在实际应用过程中仍需考虑兼容性和性能影响。特别是当涉及到跨平台交互时,保持一致的数据表示形式是非常重要的[^3]。 最后提醒一点,更改这些配置之前建议先备份现有设置,并在一个测试环境中验证改动的效果再推广到生产系统上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值