hdfs文件操作操作示例,包括上传文件到HDFS上、从HDFS上下载文件和删除HDFS上的文件,大家参考使用吧

复制代码代码如下:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;

import java.io.File;
import java.io.IOException;
public class HadoopFile {
    private Configuration conf =null;

public HadoopFile(){
        conf =new Configuration();
        conf.addResource(new Path("/hadoop/etc/hadoop/core-site.xml"));
    }

public HadoopFile(Configuration conf){
        this.conf =conf;
    }

public boolean sendFile(String path,String localfile){
        File file=new File(localfile);
        if (!file.isFile()) {
            System.out.println(file.getName());
            return false;
        }
        try {
            FileSystem localFS =FileSystem.getLocal(conf);
            FileSystem hadoopFS =FileSystem.get(conf);
            Path hadPath=new Path(path);

FSDataOutputStream fsOut=hadoopFS.create(new Path(path+"/"+file.getName()));
            FSDataInputStream fsIn=localFS.open(new Path(localfile));
            byte[] buf =new byte[1024];
            int readbytes=0;
            while ((readbytes=fsIn.read(buf))>0){
                fsOut.write(buf,0,readbytes);
            }
            fsIn.close();
            fsOut.close();

FileStatus[] hadfiles= hadoopFS.listStatus(hadPath);
            for(FileStatus fs :hadfiles){
                System.out.println(fs.toString());
            }
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

public boolean delFile(String hadfile){
        try {

FileSystem hadoopFS =FileSystem.get(conf);
            Path hadPath=new Path(hadfile);
            Path p=hadPath.getParent();
            boolean rtnval= hadoopFS.delete(hadPath, true);

FileStatus[] hadfiles= hadoopFS.listStatus(p);
            for(FileStatus fs :hadfiles){
                System.out.println(fs.toString());
            }
            return rtnval;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

public boolean downloadFile(String hadfile,String localPath){

try {
            FileSystem localFS =FileSystem.getLocal(conf);
            FileSystem hadoopFS =FileSystem.get(conf);
            Path hadPath=new Path(hadfile);

FSDataOutputStream fsOut=localFS.create(new Path(localPath+"/"+hadPath.getName()));
            FSDataInputStream fsIn=hadoopFS.open(hadPath);
            byte[] buf =new byte[1024];
            int readbytes=0;
            while ((readbytes=fsIn.read(buf))>0){
                fsOut.write(buf,0,readbytes);
            }
            fsIn.close();
            fsOut.close();

return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }
}

hadoop的hdfs文件操作实现上传文件到hdfs相关推荐

  1. php文件操作(上传文件)1

    表单部分: <html> <head> <meta http-equiv="content-type" content="text/html ...

  2. python操作谷歌浏览器上传文件封装

    在谷歌浏览器打开某个页面(举个例子,chrom浏览器版的百度网盘上传文件),点击上传文件时,会出现上面的弹框,因为这个弹框是属于"操作系统的行为",selenium是不能定位到的, ...

  3. Confluence wiki上传文件时报“不能上传文件至Confluence中,服务器可能已失效”

    Confluence wiki 上传文件时报"不能上传文件至Confluence中,服务器可能已失效"的解决方法. 一. 后台管理修改配置 首先用管理员登陆Confluence后台 ...

  4. vue+elementui 同时有上传文件和批量上传文件功能,上传文件或批量上传文件后必须刷新才能再次上传文件

    报错描述: 使用element-ui的上传文件组件写一个批量上传和上传文件,但是发现每次上传文件后或者批量上传文件后,不能再次上传文件或者批量上传文件.只有进入页面第一次点击上传文件或者批量上传文件才 ...

  5. linux上传文件命令ftp put,Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...

    介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户pe ...

  6. linux get与put,科技常识:Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...

    今天小编跟大家讲解下有关Linux ftp 命令行中下载文件get与上传文件put的命令应用详解 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Linux ftp 命令行中下载文件get与 ...

  7. linux上传文件put,详解Linux ftp 命令行中下载文件get与上传文件put的操作方法

    尽管现在有许多好的FTP应用程序,但服务器命令行ftp命令的应用程序仍然很多,下面就让电脑乐园小编带你一起来学习详解Linux ftp 命令行中下载文件get与上传文件put的操作方法. 介绍:从本地 ...

  8. 用JAVA API实现HDFS常用shell命令的功能(新建文件夹,上传文件,下载文件,判断文件是否存在)

    新建文件夹 package hdfs.files;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Fi ...

  9. java的springboot项目操作阿里云OSS下载文件、查看文件内容、上传文件,自定义工具类

    因为要从oss下载.查看.上传工具类,所以对这几个方法做了一个封装,已经经过测试,可以直接使用 1.yml添加上阿里云配置.添加maven配置 注意这里的objectName: xxx/xxx/,前面 ...

最新文章

  1. 系统架构性能问题诊断及优化思路,纯干货!
  2. navicat - Transaction numbers are only allowed on a replica set member or mongos
  3. 源码解析 Netty Channel接口及其实现类
  4. TMS320F28335之定时器
  5. JPA和CMT –为什么捕获持久性异常不够?
  6. 02. Creating a Web Forms User Interface
  7. 记录拷贝:centos安装jdk
  8. Java垃圾回收jconsole分析
  9. windows上安装Metasploit Framework 4.0
  10. AWS 技术峰会真的50%都是技术
  11. 离散数学及其应用(第七版黑书)笔记
  12. 封面型网页html,网站设计常用网页版式
  13. 中图分类法----Q 生物科学
  14. 数据库查询 - 选课系统
  15. 2022 IDEA全家桶使用最新主题(免申请)
  16. 力扣347:前k个高频元素---leetcode347:Top K Frequent Elements
  17. 同学用javascript写好了论坛自动灌水机。
  18. 复旦大学软件工程硕士博士学位点被撤销!整理20年被撤销计算机相关的学位点名单...
  19. golang日志库zerolog使用记录
  20. Android官方实现的层次状态机Hierarchical State Machine源代码

热门文章

  1. 【错误记录】PyCharm 运行 Python 程序报错 ( UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in positio )
  2. 【错误记录】TabLayout 升级支持库版本后报错 ( support:design 支持库升级到 28.0.0 后源码发生变更 )
  3. 【错误记录】Android 低版本使用分区存储错误 ( 低版本存储不得使用 MediaStore )
  4. 【MATLAB】图像导出 ( 导出绘制的图像 | 图像设置 )
  5. BinaryTreeTraversal(二叉树遍历)
  6. 数字变化滚动到指定数字的文字特效
  7. 【BZOJ4004】装备购买(线性基)
  8. 3组现代软件工程第三次作业
  9. 再谈 Promise
  10. 20145228《Java程序设计》课程总结