如何在hadoop3中配置纠删码功能,默认情况下是否仅用于存储冷文件?



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

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

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

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

此外,即使在设置 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

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

./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 仅适用于此目录。 HDFS中已经存在的其他文件,如/tmp/user具有复制策略。

相关内容

最新更新