Version 5 (modified by jazz, 11 years ago) (diff) |
---|
◢ <實作九> | <回課程大綱> ▲ | <實作十一> ◣
實作十 Lab10
- 在上一個實作中,我們可以觀察 FsShell.java 是如何使用 Path、Configration、FileSystem 這幾個類別。
- 我們從模仿 hadoop fs -put 對應的函數 copyFromLocal(Path[] srcs, String dstf) 可以重新撰寫一個 Java Application 來學習 Hadoop FileSystem API
121 /** 122 * Add local files to the indicated FileSystem name. src is kept. 123 */ 124 void copyFromLocal(Path[] srcs, String dstf) throws IOException { 125 Path dstPath = new Path(dstf); 126 FileSystem dstFs = dstPath.getFileSystem(getConf()); 127 if (srcs.length == 1 && srcs[0].toString().equals("-")) 128 copyFromStdin(dstPath, dstFs); 129 else 130 dstFs.copyFromLocalFile(false, false, srcs, dstPath); 131 }
- 讓我們先來觀察程式運作的情形,請剪貼以下步驟,並嘗試思考觀察到的現象(特別是 hadoop fs -ls 列出的結果差異):
cd ~/hadoop_labs/lab004 ant hadoop fs -ls hadoop fs -rmr input hadoop jar copyFromLocal.jar doc input hadoop fs -ls touch test hadoop jar copyFromLocal.jar test file hadoop fs -ls export HADOOP_CONF_DIR=~/hadoop/conf.local/ hadoop fs -ls hadoop jar copyFromLocal.jar doc input hadoop fs -ls hadoop jar copyFromLocal.jar test file hadoop fs -ls unset HADOOP_CONF_DIR ant clean