我是Hadoop/HDFS的新手。我读过几篇关于HDFS如何存储数据的文章,但没有完全理解它。有人能像我5岁那样解释吗?
的例子:考虑一个有6台机器运行HDFS的集群(1个namenode, 5个datanode)。集群中每个节点的硬盘空间为1TB,主存为2GB。集群使用的块大小为64 MB,复制因子为3。主节点为每个64mb的块维护100字节的元数据。假设我们上传了一个128gb的文件。
每个datanode存储多少数据?
描述HDFS将如何存储文件?
从HDFS客户端开始,它获取文件信息并调用namenode:
嘿,我有一个128 GB的文件,我应该把它放在哪里?(Create()方法)
Namenode检查datanode,并回复:
这里是数据节点的IP地址或主机名足够的空间。
客户端开始将数据分块并流式传输到datanode。
块存储在数据节点上的块上,hadoop可能会将块存储在多个数据节点上。
现在128GB写入一个或多个datanode作为2000块(128GB/64MB)。复制是3,所以hadoop在复制块下找到新的,并根据复制策略和机架感知开始将它们复制到其他数据节点。在复制结束时,每个datanode上将有400个复制文件块(2000/5),这意味着每个datanode上有25.6 gb。(64MB * 400).