1

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

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

由于纠删码在重建过程中会产生额外的开销并且主要执行远程读取,因此它传统上用于存储较冷、访问频率较低的数据。用户在部署此功能时应考虑纠删码的网络和 CPU 开销。

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

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

4

1 回答 1

0

在 hadoop3 中,我们可以对folderHDFS 中的任何内容启用擦除编码策略。

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

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

从目录中删除策略的命令。即取消设置策略:

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

禁用策略的命令:

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

编辑:

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

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

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

于 2018-03-21T07:31:09.733 回答