zoukankan      html  css  js  c++  java
  • Intellij IDEA 创建maven项目,利用API操作HDFS

    首先,新建Maven项目,添加相应的依赖,新建Java类:

    package com.young;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.util.Progressable;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import java.io.*;
    import java.net.URI;
    
    public class HDFSTest {
        Configuration configuration;
        FileSystem fileSystem;
        String HDFS_PATH = "hdfs://192.168.131.142:9000";
        @Before
        public void before() throws Exception{
            configuration = new Configuration();
            fileSystem=FileSystem.get(new URI(HDFS_PATH),configuration,"root");
    
        }
        @Test
        public void mkdir() throws Exception{//新建文件夹
            boolean result = fileSystem.mkdirs(new Path("/idea"));
            System.out.print(result);
        }
        @Test
        public void write() throws Exception {//新建文件
            FSDataOutputStream fsDataOutputStream = fileSystem.create(new Path("/idea/hello.txt"));
            fsDataOutputStream.writeBytes("hello IDEA!");
            fsDataOutputStream.close();
        }
        @Test
        public void read() throws Exception {//查看HDFS上的文件
            FSDataInputStream fsDataInputStream = fileSystem.open(new Path("/idea/hello.txt"));
            InputStreamReader isr = new InputStreamReader(fsDataInputStream);//创建输入流
            BufferedReader br = new BufferedReader(isr);//按行读取
            String str = br.readLine();
            while(str!=null)
            {
                System.out.println(str);
                str = br.readLine();
            }
            br.close();
            isr.close();
            fsDataInputStream.close();
        }
        @Test
        public void upload() throws Exception{//上传文件到HDFS
            fileSystem.copyFromLocalFile(new Path("D:/test/abc.txt"),new Path("/idea"));
            fileSystem.close();
        }
        @Test
        public void rename() throws Exception{//文件重命名
            fileSystem.rename(new Path("/idea/hello.txt"),new Path("/idea/h.txt"));
            fileSystem.close();
        }
        @Test
        public void download() throws Exception{//从HDFS下载文件
            fileSystem.copyToLocalFile(new Path("/idea/h.txt"),new Path("D:/test"));
            fileSystem.close();
        }
        @Test
        public void query() throws Exception{//查询某目录下所有文件
            FileStatus[] fileStatuses = fileSystem.listStatus(new Path("/"));
            for(int i=0;i<fileStatuses.length;i++)
            {
                System.out.println(fileStatuses[i].getPath().toString());
            }
            fileSystem.close();
        }
        @Test
        public void delete() throws Exception{//删除文件
            fileSystem.delete(new Path("/idea/h.txt"),true);
            fileSystem.close();
    
        }
        @After
        public void destroy(){
    
    
        }
    }
    

      

  • 相关阅读:
    菜鸟运维笔记:安装MySQL,PHP及phpMyAdmin
    在MyEclipse中统计项目行数
    工作已定,望悉
    经常使用算法之贪心
    leetcode
    程序猿的量化交易之路(20)--Cointrader之Assert实体(8)
    【MySQL】 查询某个数据库有多少张数据表
    【powerdesigner】将pdm或者cdm保存为普通图片格式
    【web maven】新建的项目 controller也有,从前台跳转后台 无法找到对应的controller
    【Java 新建项目】使用程序对新项目的各个实体 创建Dao、DaoImpl、Service、ServiceImpl层的文件
  • 原文地址:https://www.cnblogs.com/huyangyang/p/9321477.html
Copyright © 2011-2022 走看看