Hadoop上傳檔案和下載檔案時候出現的問題
阿新 • • 發佈:2019-05-13
在Hadoop做上傳下載操作的時候,上傳的時候會出現一個超時的異常,在下載的時候回多出來crc的檔案
/** * 上傳程式碼 */ @Test public void putFileToHDFS() throws URISyntaxException, IOException, InterruptedException { //1.建立配置資訊 //F2可以快速的定位錯誤 Configuration conf = new Configuration(); //2.設定部分引數 conf.set("dfs.replication","2"); //3.找到HDFS的地址 FileSystem fileSystem = FileSystem.get(new URI("hdfs://bigdata111:9000"), conf, "root"); //4.上傳本地Windows檔案的路徑 Path src = new Path("D:\\data\\demo1.txt"); //Path src = new Path("D:\\tools\\null\\null.sys"); //Path src = new Path("D:\\tools\\Linux所用Jar包\\hadoop-2.7.2.rar"); //5.要上傳到HDFS的路徑 Path dst = new Path("hdfs://bigdata111:9000/"); //6.以拷貝的方式上傳從src到dst fileSystem.copyFromLocalFile(src,dst); //7.關閉 fileSystem.close(); System.out.print("Ok,上傳完成了"); }
@Test public void getFileFromHDFS() throws URISyntaxException, IOException, InterruptedException { //1.獲取配置 Configuration conf = new Configuration(); //2.獲取hdfs連線 FileSystem fs = FileSystem.get(new URI("hdfs://bigdata111:9000/"),conf,"root"); //3.檔案下載 // Path dst = new Path("D:\\tools\\demoFile\\null.sys"); // Path src = new Path("hdfs://bigdata111:9000/null.sys"); Path dst = new Path("D:\\tools\\demoFile\\hadoop-2.7.2.rar"); Path src = new Path("hdfs://bigdata111:9000/hadoop-2.7.2.rar"); fs.copyToLocalFile(src,dst); fs.close(); System.out.print("OK,下載完成"); }
上傳檔案到HDFS的時候報連線超時
解決辦法,新增如下程式碼:
fileSystem.setTimes(dst,0,3000);
下載的時候,下載對應的目錄回多餘crc檔案(目前還不知道原因,求大神指點):