HDFS文件存储
理論上HDFS中存儲一個文件時會被分成多個Block,這些block應該會存放在不同的節點中。例如我們HDFS中有一個文件hdfs dfs -put flink-1.8.2-bin-scala_2.11.tgz /
 
 這個文件被分成了三個Block,分別是Block0、Block1、Block2:
 
 這三個Block的大小加起來總共就是283.81MB。
 其中Block0的id為:1073741846、Block1的id為1073741847、Block2的id為1073741848。
 我們在hadoop數據目錄下查看(在hdfs-site.xml文件中配置hadoop.tmp.dir),在路徑/home/duandingyang/tmp/hadoop-tmp/dfs/data/current/BP-840844130-127.0.1.1-1570955999745/current/finalized/subdir0/subdir0下看到了這幾個block:
 
 當我們要get這個文件時,在NameNode中查找這個文件對應的元數據信息(文件被拆成了多少block,這些block的id是多少,存在哪個DataNode中等等)
 如果我們如果把這三個文件手動合并會怎么樣?
 將這三個block文件添加到一個壓縮文件:
然后可以使用tar -xvf ~/flink.tgz命令可以解壓這個文件,
 說明HDFS只是幫我們做了個文件切分。
總結
 
                            
                        - 上一篇: HDFS上传文件报错java.lang.
- 下一篇: Flink异步io应用场景之流表join
