【问题标题】:How to configure the erasure coding feature in hadoop3 and is it used for storing cold files only by default?hadoop3如何配置纠删码功能,默认只用于存储冷文件?
【发布时间】:2018-03-18 08:10:22
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: hadoop hdfs hadoop3 erasure-code


    【解决方案1】:

    在 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)具有 REPLICATION 策略。

    【讨论】:

    • 谢谢,@karthik 但我也在寻找 ec 策略 user_ec_policies.xml 的配置文件。我需要帮助在 xml 文件中添加正确的属性。
    • 您可以参考 Hadoop conf 目录 ($HADOOP_HOME/etc/hadoop/) 中的示例 EC 策略 XML 文件 user_ec_policies.xml.template。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2018-10-27
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    相关资源
    最近更新 更多