如何在hadoop3中配置擦除编码功能,它是否默认只用于存储冷文件?

wa7juj8i  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(487)

根据hadoop3.x发行说明,他们引入了擦除编码来克服存储方面的问题。
擦除编码是一种持久存储数据的方法,与复制相比节省了大量空间。像reed-solomon(10,4)这样的标准编码的空间开销是标准hdfs复制的3倍。
由于擦除编码在重建过程中增加了额外的开销,并且主要执行远程读取,因此它通常用于存储较冷、访问频率较低的数据。在部署此功能时,用户应考虑擦除编码的网络和cpu开销。
我正在寻找相同的示例配置文件。
而且,即使在建立了ec政策并使用 hdfs ec-enablePolicy ,该策略是仅适用于冷文件还是默认实现为存储整个hdfs文件?

yhuiod9q

yhuiod9q1#

在hadoop3中,我们可以对任何 folder 在hdfs中。
命令列出支持的擦除策略: ./bin/hdfs ec -listPolicies 启用xor-2-1-1024k擦除策略的命令: ./bin/hdfs ec -enablePolicy -policy XOR-2-1-1024k 将擦除策略设置为hdfs目录的命令: ./bin/hdfs ec -setPolicy -path /tmp -policy XOR-2-1-1024k 命令将策略集获取到给定目录: ./bin/hdfs ec -getPolicy -path /tmp 命令从目录中删除策略。例如,unset policy: ./bin/hdfs ec -unsetPolicy -path /tmp 禁用策略的命令: ./bin/hdfs ec -disablePolicy -policy XOR-2-1-1024k编辑:
一个名为 user_ec_policies.xml.template 位于hadoop conf目录($hadoop\u home/etc/hadoop/)中,可供参考。
默认情况下 REPLICATION 策略始终处于启用状态。默认情况下禁用擦除编码策略。
擦除编码仅适用于选定的 HDFS 路径,例如,如果在设置策略时选择/erasure\u code\u data作为路径,则ec仅适用于此目录。hdfs中已经存在的其他文件(如/tmp/user)具有复制策略。

相关问题