hadoop3如何配置纠删码功能,是否默认只用于存储冷文件?

How to configure the erasure coding feature in hadoop3 and is it used for storing cold files only by default?

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

Erasure coding is a method for durably storing data with significant space savings compared to replication. Standard encodings like Reed-Solomon (10,4) have a 1.4x space overhead, compared to the 3x overhead of standard HDFS replication.

Since erasure coding imposes additional overhead during reconstruction and performs mostly remote reads, it has traditionally been used for storing colder, less frequently accessed data. Users should consider the network and CPU overheads of erasure coding when deploying this feature.

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

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

在 hadoop3 中,我们可以对 HDFS 中的任何 folder 启用纠删码策略。

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

./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

从 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 策略始终处于启用状态。默认情况下禁用纠删码策略。

Erasure coding 仅适用于 selected HDFS 路径,例如,如果您在设置策略时将 select /erasure_code_data 作为路径,则 EC 仅适用于此目录。 HDFS 中已经存在的其他文件,如 /tmp /user 具有 REPLICATION 策略。