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

时间:2018-03-18 08:10:22

标签: hadoop hdfs hadoop3 erasure-code

根据Hadoop 3.x发行说明,他们引入了Erasure编码来克服存储问题。

  

与复制相比,擦除编码是一种持久存储数据的方法,可节省大量空间。与标准HDFS复制的3倍开销相比,Reed-Solomon(10,4)等标准编码的空间开销为1.4倍。

     

由于擦除编码在重建期间会产生额外的开销并且主要执行远程读取,因此传统上它被用于存储较冷的,较少访问的数据。在部署此功能时,用户应考虑擦除编码的网络和CPU开销。

我正在寻找相同的示例配置文件。

此外,即使在设置了ec策略并使用hdfs ec-enablePolicy启用它之后,该策略是否仅适用于冷文件,或者默认情况下是否实现了以存储整个hdfs文件?

1 个答案:

答案 0 :(得分:0)

在hadoop3中,我们可以为HDFS中的任何folder启用Erasure编码策略。

列出支持的擦除策略的命令:

./bin/hdfs ec -listPolicies

启用XOR-2-1-1024k擦除策略的命令:

./bin/hdfs ec -enablePolicy -policy XOR-2-1-1024k

将Erasure策略设置为HDFS目录的命令:

./bin/hdfs ec -setPolicy -path /tmp -policy XOR-2-1-1024k

获取策略集到给定目录的命令:

./bin/hdfs ec -getPolicy -path /tmp

从directory.i.e取消设置策略中删除策略的命令:

./bin/hdfs ec -unsetPolicy -path /tmp

禁用政策的命令:

./bin/hdfs ec -disablePolicy -policy XOR-2-1-1024k

修改

名为user_ec_policies.xml.template的示例EC策略XML文件位于Hadoop conf目录($ HADOOP_HOME / etc / hadoop /)中,可供参考。

默认情况下,REPLICATION策略始终处于启用状态。默认情况下禁用擦除编码策略。

擦除编码仅适用于选定的HDFS路径,例如,如果在设置策略时选择/ erasure_code_data作为路径,则EC仅适用于此目录。 和/ tmp / user这样的HDFS中已存在的其他文件具有REPLICATION策略。