hadoop shell 操作複製

來源:互聯網
上載者:User

標籤:blog   http   使用   os   檔案   資料   ar   file   

hadoop fs
 列出所有的命令
hadoop fs -help ls
 列出某個命令的詳細資料
hadoop dfs -mkdir /data/weblogs
hadoop dfs -mkdir /data/dir1 /data/dir2 ...
 建立檔案夾,可以遞迴建立,可同時建立多個目錄
echo "Hello world" > weblog_entries.txt
 建立新的本地檔案(無則建立)
hadoop fs -copyFromLocal weblog_entries.txt /data/weblogs
hadoop fs -put weblog_entries.txt /data/weblogs,put可以對整個檔案夾進行複製(1.0版之後)
 從本地檔案系統複製資料到hdfs上
hadoop dfs -ls /data/weblogs
 列出檔案夾下的檔案資訊
hadoop dfs -cat /data/weblogs/*
hadoop dfs -cat /data/weblogs/* | head -1
hadoop dfs -cat /data/weblogs/* | tail -1
 查看檔案內容
hadoop dfs -copyToLocal /data/weblogs/* /
hadoop dfs -get /data/weblogs/* /
hadoop dfs -getmerge /data/weblogs/* /合并後的檔案名稱 (可將多個檔案合并成一個檔案下載到本地,其中合并後的檔案名稱需要指定)
hadoop dfs -get -ignorecrc .....       複製到本地時不進行資料校正(CRC),一般是在資料損毀時複製損壞的資料到本地才使用的
hadoop dfs -get -crc ....複製資料,同時複製crc校正檔案
 從hdfs複製檔案到本地
 需保證本地檔案系統空間可用,和網路傳輸速度
 幾十個TB的資料,傳輸速率為1Gbit,消耗23個小時
 get無法完成對整個檔案夾的複製,put在1.0之後可以完成
-----
原理:
fs FileSystem,各個命令對應這個類的不同方法
預設系統為core-site.xml配置的fs.default.name這個屬性,如hdfs://hostname:9000即預設使用hdfs系統,也就是hadoop fs和hadoop dfs是一樣的。

 mapreduce輸出檔案的個數,是由mapred.reduce.tasks的值決定的,可在編程時通過job.setNumReduceTasks(int num)來進行設定,這是用戶端參數,非叢集參數,對不同的job設定不同的reduce個數。
 預設值為1
 推薦兩個數:
 0.95*叢集中datanode個數*mapred.tasktracker.reduce.tasks.maximum(配置每個jobtracker可使用的reduce的插槽最大個數)
 或者
 1.75*叢集中jobtracker個數*mapred.taskreacker.reduce.tasks.maximum
 原因:
 0.95可保證在map結束後可立即啟用所有的reduce進行map結果的處理,只需要一波就可以完成作業。
 1.75 使得運行快的reduce能夠再次執行第二波的reduce,保證兩撥reduce就能完作業,使作業整體的負載平衡。
 
 
--使用pig示範getmerge
首先建立檔案test,內容為
1 hello
2 world
3 url
4 test
5 haha
上傳到hdfs的/data/weblogs目錄下

test.pig指令碼內容
weblogs = load ‘/data/weblogs/*‘ as
(
        md5:chararray,
        url:chararray
);#預設分割方式為tab
md5_grp = group weblogs by md5 parallel 4;#依據md5進行分組,同時設定reduce個數為4
store md5_grp into ‘/data/weblogs/md5_group.bcp‘; #設定reduce的輸出目錄,此目錄下將包含4個reduce輸出檔案

-----
使用getmerge命令合并reduce的四個輸出檔案,下載到本地
hadoop dfs -getmerge /data/weblogs/md5_group.bcp 本機檔案名稱(一定要指定檔案名稱)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.