【发布时间】:2016-06-07 19:16:21
【问题描述】:
我想澄清和确认我对块和输入拆分的理解。
请阅读并告诉我是否正确。
- 当使用“put”命令将文件(例如 1 GB 大小)从本地文件系统复制到 HDFS 时,取决于块大小 在 hadoop 的配置文件中设置,它将在 8 个不同的数据节点上拆分(例如 128 MB)为 8 个块(1024 MB 文件/128MB 块大小)。还取决于复制因子(比如 3 次),它会被复制到不同数据节点上的 2 个额外副本(了解数据局部性)。所有这些块信息(文件名、块名和存储它们的数据节点)都存储在 Name 节点的 RAM 中。此信息不存储在 FSImage 中。
到目前为止我的理解正确吗?
如果到目前为止我是正确的,那么硬盘上的FSImage有什么(里面有什么样的内容)?
- 当我们为此数据集运行 mapreduce 作业时,驱动程序会将存储在数据节点上的数据块拆分为多个“输入拆分”(大小在 xml 文件中配置)。 在这种情况下,假设每个输入拆分为 128 MB,那么我们有 8 个输入拆分,每个拆分都分配有一个 Mapper 进程。
我的理解正确吗?
非常感谢 亲切的问候 纳特
【问题讨论】: