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