hdfs需要3倍的数据空间吗?

qzwqbdag  于 2021-05-30  发布在  Hadoop
关注(0)|答案(4)|浏览(595)

我在udacity.com上参加了一个关于hadoop和mapreduce的课程,老师提到在hdfs中,为了减少故障点,每个块在数据库中被复制3次。是真的吗??这是否意味着如果我有1 PB的日志,我需要3 PB的存储空间??因为那会花我更多的钱

hlswsv35

hlswsv351#

是的,这是真的,hdfs需要为每个冗余拷贝留出空间,并且需要拷贝以在处理过程中实现故障容限和数据局部性。
但mapreduce并不一定如此,它可以运行在其他文件系统上,比如s3或azureblob。hdfs需要3份拷贝。

nlejzf6q

nlejzf6q2#

这是因为hdfs在存储数据时复制数据。hdfs的默认复制因子是3,可以在dfs.replication属性下的hdfs-site.xml文件中找到。您可以根据需要将此值设置为1或5。
数据复制非常有用,因为如果某个节点发生故障,您将在其他节点上获得数据副本以供处理。

b1uwtaje

b1uwtaje3#

默认情况下,hdfs conf参数 dfs.replication 设置为值3。允许容错性、可争议性等(hdfs的所有参数(此处)
但在安装时,可以将参数设置为1,hdfs不会复制数据。在dfs.replication=1的情况下,1 PB存储在相同的空间量中。

klr1opcd

klr1opcd4#

是的,那是真的。假设有4台机器上运行数据节点,那么默认情况下,复制也会随机发生在另外两台机器上。如果不需要,可以通过设置 dfs.replication hdfs-site.xml中的属性

相关问题