Hadoop中块,块和文件分割有什么区别?

时间:2015-04-09 19:49:18

标签: hadoop hdfs bigdata

请澄清一下1)Hadoop中的块,块和文件分割有什么区别? 2)$ hadoop fs -put命令的内部过程是什么?

2 个答案:

答案 0 :(得分:1)

阻止:Hdfs以块的形式进行会谈,例如: 如果你有256 MB的文件并且你已经配置你的块大小是128 mb所以现在创建了2个块为256 mb。

块大小可以在整个群集中配置,甚至可以在文件的基础上配置。

拆分:它有与map reduce相关的内容,您可以选择更改拆分大小,这意味着您可以修改大于块大小的拆分大小或小于块大小的拆分大小。默认情况下,如果您不进行任何配置,则拆分大小约等于块大小。

在地图缩减处理中,生成的映射器数量将等于您的拆分数量:对于文件,如果有10个拆分,那么将生成10个映射器。

当put命令被触发时,它转到namenode,namenode询问客户端(在这种情况下,hadoop fs实用程序的行为类似于客户端),将文件分成块,并按块大小,可以在hdfs中定义 - 然后,namenode要求客户端将不同的块写入不同的数据节点。

实际数据将存储在数据节点上,数据的元数据意味着文件的块位置和文件属性将存储在名称节点上。

客户端首先建立与name节点的连接,一旦获得有关存储块的位置的确认,然后它将直接创建一个 tcp与数据节点的连接并写入数据。

根据复制因素,其他副本将在hadoop集群中维护,其块信息将存储在namenode上。

但是在任何情况下,数据节点都没有重复的块副本,意味着同一个块不会在同一节点上复制。

答案 1 :(得分:0)

块,块或文件拆分是指同一件事。也就是说,HDFS按块大小(通常为128或256 MB)拆分文件,这些块本身可复制一个可配置的(通常为3次)。

对于put命令,最终你要创建一个管道,NameNode(每个块)告诉客户端哪个DataNode要将其复制到该管道,然后该DN将其复制给朋友,而朋友又将其复制到朋友。在https://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html的“复制流水线”部分中有一个小写。 http://www.slideshare.net/lestermartin/hadoop-demystified的幻灯片14上还有一个视觉效果。