根据Hadoop 3.x发行说明,他们引入了Erasure编码来克服存储问题。
与复制相比,擦除编码是一种持久存储数据的方法,可节省大量空间。与标准HDFS复制的3倍开销相比,Reed-Solomon(10,4)等标准编码的空间开销为1.4倍。
由于擦除编码在重建期间会产生额外的开销并且主要执行远程读取,因此传统上它被用于存储较冷的,较少访问的数据。在部署此功能时,用户应考虑擦除编码的网络和CPU开销。
我正在寻找相同的示例配置文件。
此外,即使在设置了ec策略并使用hdfs ec-enablePolicy
启用它之后,该策略是否仅适用于冷文件,或者默认情况下是否实现了以存储整个hdfs文件?
答案 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策略。