HDFS Block Split

时间:2015-05-20 19:51:30

标签: hadoop hdfs

我的Hadoop知识是4周大。我正在使用带有Hadoop的沙箱。

根据理论,当文件被复制到HDFS文件系统时,它将被分成128 MB块。然后将每个块复制到不同的数据节点,然后复制到数据节点。

问题:

  1. 当我将数据文件(~500 MB)从本地文件系统复制到HDFS(put命令)时,整个文件仍然存在于HDFS(-ls命令)中。我期待看到128 MB块。我在这做错了什么?

  2. 如果想的话,我设法拆分&在HDFS中分发数据文件,有没有办法将原始文件组合并检索回本地文件系统?

1 个答案:

答案 0 :(得分:8)

  1. 您无法从-ls命令中看到各个块。这些是在Linux的ls或Windows资源管理器中未显示的硬盘驱动器上的块的逻辑等效物。您可以在hdfs fsck /user/me/someFile.avro -files -blocks -locations之类的命令行上执行此操作,也可以使用NameNode UI查看哪些主机具有文件块,以及每个块在哪些主机上进行复制。
  2. 不确定。您只需执行hdfs dfs -get /user/me/someFile.avro之类的操作,或使用HUE或NameNode UI下载文件。所有这些选项都会将适当的块流式传输给您,以便将逻辑文件重新组合在一起。