1. 程式人生 > >一起學Hadoop——檔案的上傳、分發與打包

一起學Hadoop——檔案的上傳、分發與打包

如果我們想把檔案上傳到Hadoop叢集中,使用put命令即可。下面的語句是將本地檔案上傳到hadoop叢集的/目錄下。 hadoop fs -put fruit.txt / 下面介紹通過指令碼將檔案分發到Hadoop叢集的方法。因為Hadoop本身就帶有檔案自動分發的功能,我們只需在啟動hadoop作業的指令碼檔案中做相應的配置即可。可選的配置項有三個,每個適用的場景都不一樣: -file:將本地檔案分發到計算節點。 -cacheFile:將HDFS中已經存在的檔案傳送到需要使用該檔案的節點。 -cacheArchive:將HDFS中已經存在的壓縮檔案分發到相應的計算節點並解壓。 簡單介紹三個選項的用法。 -file用法:在指令碼檔案中新增程式碼:-file ./map_sort.py \。將當前目錄的map_sort.py檔案上傳到計算節點,\是換行符。 -cacheFile用法:在指令碼檔案中新增程式碼:-cacheFile "hdfs://hadoop-master:8020/fruit.txt#fruit"。“#”是給要分發的檔案起別名,在Mapreduce程式中直接使用該別名就可訪問該檔案。 -cacheArchive用法
:在指令碼檔案中新增程式碼:-cacheArchive “hdfs://hadoop-master:8020/fruit.tar.gz#fruit.gz”。將hdfs中的fruit.tar.gz壓縮檔案分發到計算節點。同-cacheFile的用法一樣,#也是給要分發的壓縮檔案起別名,然後在mapreduce中通過別名就可以訪問到該壓縮檔案。-cacheArchive會將fruit.tar.gz壓縮檔案解壓成一個fruit.tar.gz的目錄。 -file適合在檔案比較小(10M以內)的場景下使用。 -cacheFile和-cacheArchive適合在檔案比較大(檔案大小在G以上)的場景下使用。 關注本人的公眾號獲取大資料和機器學習的知識