天天看點

Hadoop--學習筆記 在Eclipse中操作遠端hdfs檔案

       最近在學習Hadoop,總結兩點:

       1.在運作Mapreduce程式時,設定程式操作hdfs目錄而不是本地目錄

       2.在運作Mapreduce程式時,每次運作程式前都要删除輸出目錄下檔案名相同的檔案,不然就會提示“Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:8020/output/heyu1 already exists”的錯誤,在網上找了半天也沒找到好的解決辦法,最後在看《Hadoop實戰》時發現源程式裡有個類FileSystem,于是嘗試了一下果然成功了。

        添加代碼如下

//設定操作檔案位址為 hdfs 的位址
FileSystem.setDefaultUri(conf, "hdfs://localhost:8020");
FileSystem fs = FileSystem.get(conf);
//如果輸出目錄存在則删除
fs.delete(new Path("/output/heyu1"), true);
FileOutputFormat.setOutputPath(conf, new Path("/output/heyu1"));
           

繼續閱讀