我的hadoop知识已经4周了。我正在使用一个带有hadoop的沙盒。
根据这个理论,当一个文件被复制到hdfs文件系统时,它将被分割成128mb的块。然后,每个块将被复制到不同的数据节点,然后复制到数据节点。
问题:
当我将一个数据文件(约500 mb)从本地文件系统复制到hdfs(put命令)中时,整个文件仍然存在于hdfs(-ls命令)中。我本来希望看到128MB的数据块。我做错什么了?
如果假设,我在hdfs中成功地分割和分发了数据文件,那么有没有方法将原始文件合并并检索回本地文件系统?
1条答案
按热度按时间2wnc66cl1#
你将看不到从
-ls
命令。这在逻辑上相当于一个硬盘上的块在linux中没有出现ls
或windows资源管理器。你可以在命令行上这样做hdfs fsck /user/me/someFile.avro -files -blocks -locations
,或者可以使用namenode ui查看哪些主机具有文件的块,以及在哪些主机上复制每个块。当然。你只要做些
hdfs dfs -get /user/me/someFile.avro
或者使用hue或namenodeui下载文件。所有这些选项都会将适当的块流式传输给您,以便将逻辑文件重新组合在一起。