上傳檔案到HDFS

2021-05-23 02:48:10 字數 1171 閱讀 8070

hadoop計算需要在hdfs檔案系統上進行,檔案上傳到hdfs上通常有三種方法:a hadoop自帶的dfs服務,put;b hadoop的api,writer物件可以實現這一功能;c 呼叫otl可執行程式,資料從資料庫直接進入hadoop

hadoop計算需要在hdfs檔案系統上進行,因此每次計算之前必須把需要用到的檔案(我們稱為原始檔案)都上傳到hdfs上。檔案上傳到hdfs上通常有三種方法:

a hadoop自帶的dfs服務,put;

b hadoop的api,writer物件可以實現這一功能;

c 呼叫otl可執行程式,資料從資料庫直接進入hadoop

由於存在etl層,因此第三種方案不予考慮

將a、b方案進行對比,如下:

1 空間:方案a在hdfs上占用空間同本地,因此假設只上傳日誌檔案,則儲存乙個月日誌檔案將消耗掉約10t空間,如果加上這期間的各種維表、事實表,將占用大約25t空間

方案b經測試,壓縮比大約為3~4:1,因此假設hdfs空間為100t,原來只能儲存約4個月的資料,現在可以儲存約1年

方案b的上傳時間,程式不做任何優化,大約是以上的4~6倍,但存在一定程度提公升速度的餘地

4 其它:未壓縮的資料還有乙個好處是可以直接在hdfs上檢視原始資料。壓縮資料想看原始資料只能用程式把它導到本地,或者利用本地備份資料

壓縮格式:按照hadoop api的介紹,壓縮格式分兩種:block和record,其中record是只對value進行壓縮,一般採用block進行壓縮。

對壓縮檔案進行計算,需要用sequencefileinputformat類來讀入壓縮檔案,以下是計算程式的典型配置**:

jobconf conf = new jobconf(getconf(), log.class);

conf.setjobname(」log」);

conf.setoutputkeyclass(text.class);//set the map output key type

conf.setoutputvalueclass(text.class);//set the map output value type

接下來的處理與非壓縮格式的處理一樣

本文出自:http://rdc.taobao.com/blog/dw/archives/207

上傳檔案到HDFS方式

hadoop計算需要在hdfs檔案系統上進行,因此每次計算之前必須把需要用到的檔案 我們稱為原始檔案 都上傳到hdfs上。檔案上傳到hdfs上通常有三種方法 1 hadoop自帶的dfs服務,put 2 hadoop的api,writer物件可以實現這一功能 3 呼叫otl可執行程式,資料從資料庫直...

Linux上傳本地檔案到HDFS

su hdfs 切換到hdfs使用者 cd home hdfs files 進入到伺服器中檔案所在目錄 ls 檢視此目錄下的檔案列表vim test.txt 若檔案存在可顯示檔案中的內容,若不存在則新建檔案 test.txt檔案中的內容 1 15673830092 aaa 2 15837287388...

上傳檔案到hdfs注意事項

我在mapreduceinput下建立cfitemset資料夾,下面有itemset.txt。我想上傳到cf下,然後想著hdfs上會顯示cf itemset.txt。hdfs dfs put itemset.txt cf 但是發現hdfs上只有cf檔案,注意並不是資料夾,好奇怪,只能先刪除 否則提示...