1. 程式人生 > >Hadoop上傳檔案和下載檔案時候出現的問題

Hadoop上傳檔案和下載檔案時候出現的問題

在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檔案(目前還不知道原因,求大神指點):