Hadoop上传文件和下载文件时候出现的问题

本文详细介绍了使用Hadoop进行文件上传和下载的操作方法,并针对上传过程中的连接超时问题提出了有效的解决方案。同时,文章还探讨了下载时出现多余crc文件的现象,邀请读者共同讨论可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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的时候报连接超时

70ea4b7e643ceda393fa7fee955e56137fb.jpg

解决办法,添加如下代码:

fileSystem.setTimes(dst,0,3000); 

 

下载的时候,下载对应的目录回多余crc文件(目前还不知道原因,求大神指点):

04726390b3cba60b17e16327c82297c4c86.jpg

 

 

转载于:https://my.oschina.net/u/3425573/blog/3048624

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值