有一个问题,HDFS可以分区域存储么?比如我有9台DataNode,1-3台存储一类数据,4-6台存储一类数据,7-9台存储一类数据,这样的需求可以通过配置实现么?

fish - Hadooper

赞同来自: 张伟

能说明一下什么样的应用需求导致有这样的存储要求么?

fish - Hadooper

赞同来自: liuzhixin137

HDFS-2832(https://issues.apache.org/jira/browse/HDFS-2832),hdfs中可以给datanode中的storage加label,在文件存储的时候,可将文件存到label匹配的存储中。   这个功能用于区分datanode中的异构存储(ssd、HD等),但并不限于只用作区分异构存储,可以利用它的特性,满足你的需求。   比如,在1-3机器上,配置: <property>    <name>dfs.datanode.data.dir</name>    <value>[type1]/dir0,[type1]/dir1,[type1]/dir2,[type1]/dir3</value> </property>   在4-6机器上,配置: <property>    <name>dfs.datanode.data.dir</name>    <value>[type2]/dir0,[type2]/dir1,[type2]/dir2,[type2]/dir3</value> </property>   等。

fish - Hadooper

赞同来自: liuzhixin137

还有一个方法,用federation。 1-3、4-6、7-9的datanode分别汇报到不同的namenode(跟经典意义的federation中datanode汇报给所有的namenode不一样),三组namenode以federation形式组成统一的namespace供上层应用使用。   不过这个方法比较繁琐,需要根据业务需求评估下是否符合你们的需求。

要回复问题请先登录注册