zoukankan      html  css  js  c++  java
  • HDFS shell操作及HDFS Java API编程

    HDFS shell操作及HDFS Java API编程

    1.熟悉Hadoop文件结构。

    2.进行HDFS shell操作。

    3.掌握通过Hadoop Java APIHDFS操作。

    4.了解Hadoop文件操作原理。

    1.查看HDFSNameNodeDataNode目录结构。

    2.通过HDFS shell进行文件上传,目录创建等操作。

    3.通过Java API进行文件增删查改操作。

    Hdfs shell 操作:

    1. 查看hdfs根目录:

    Hdfs dfs -ls /

    1. 创建文件夹

    Hdfs dfs -mkdir /test

    1. 移动文件夹

    Hdfs dfs -mv /test/test.txt /test1

    1. 删除文件或文件夹

    Hdfs dfs -rm -r /test1

    1. 本地文件上传到hdfs

    方式一:

    Hdfs dfs -put /home/test.txt /puttest

    方式二:

    Hdfs dfs -copyFromLocal SRC hdfsDST

    1. hdfs上的文件上传到本地

    方式一:

    Hdfs dfs -get hdfsSRC LocalDST

    方式二:

    Hdfs dfs -copyToLocal hdfsSRC LocalDST

    1. 文件复制

    Hdfs dfs -cp SRC DST

    1. 文件内容输出

    Hdfs dfs -cat URI

    1. 改变文件权限

    Hdfs dfs -chmod xxx

    1. 改变文件所有者

    Hdfs dfs -chown xxx

    1. 显示文件或目录所有内容大小

    Hdfs dfs -du [args]

    上传测试:

     

    通过Java API进行文件增删查改操作。

     

    1. 下载文件

    package putfile;

    import java.io.ByteArrayOutputStream;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;  

    import java.io.IOException;  

    import java.io.InputStream;  

    import java.io.OutputStream;  

    import java.net.URI;  

    import java.net.URISyntaxException;  

      

    import org.apache.hadoop.conf.Configuration;

    import org.apache.hadoop.fs.FSDataInputStream;

    import org.apache.hadoop.fs.FileSystem;  

    import org.apache.hadoop.fs.Path;  

    import org.apache.hadoop.io.IOUtils;

    public class HdfsTest {

    public static void downFileFormHDFS() throws IOException, URISyntaxException{

            // 获得FileSystem对象  

            FileSystem fileSystem = FileSystem.get(new URI("hdfs://10.49.23.127:9000"), new Configuration());  

            // 调用open方法进行下载,参数HDFS路径

            InputStream in = fileSystem.open(new Path("/testdata/data.tsv"));  

            // 创建输出流,参数指定文件输出地址  

            OutputStream out = new FileOutputStream("F://data.tsv");  

            // 使用Hadoop提供的IOUtils,将in的内容copy到out,设置buffSize大小,是否关闭流设置true  

            IOUtils.copyBytes(in, out, 4096, true);  

    }

    public static void upToHDFS() throws IOException, InterruptedException, URISyntaxException{

     // 获得FileSystem对象,指定使用root用户上传  

           FileSystem fileSystem = FileSystem.get(new URI("hdfs://10.49.23.127:9000"), new Configuration(), "root");  

           // 创建输入流,参数指定文件输出地址  

           InputStream in = new FileInputStream("F:\data.tsv");  

           // 调用create方法指定文件上传,参数HDFS上传路径  

           OutputStream out = fileSystem.create(new Path("/putfile"));  

           // 使用Hadoop提供的IOUtils,将in的内容copy到out,设置buffSize大小,是否关闭流设置true  

           IOUtils.copyBytes(in, out, 4096, true);  

    }

    public static void deleteFileFromHDFS() throws IOException, InterruptedException, URISyntaxException{

      // 获得FileSystem对象  

          FileSystem fileSystem = FileSystem.get(new URI("hdfs://10.49.23.127:9000"), new Configuration(), "root");  

          // 调用delete方法,删除指定的文件。参数:false:表示是否递归删除  

          boolean flag = fileSystem.delete(new Path("/putfile"), false);  

          // 执行结果:true  

          System.out.println(flag);  

    }

    public static void CatFile() throws IOException, InterruptedException, URISyntaxException{

    FileSystem fileSystem = FileSystem.get(new URI("hdfs://10.49.23.127:9000"), new Configuration(), "root");

            Path path = new Path("/putfile");

           

            FSDataInputStream fsdis = null;

      

            OutputStream baos = new ByteArrayOutputStream();

            String str = null;

            try {

                fsdis = fileSystem.open(path);

                IOUtils.copyBytes(fsdis, baos, 4096, false);

                str = baos.toString();

            } finally {

                IOUtils.closeStream(fsdis);

                fileSystem.close();

            }

            System.out.println(str);

    }

    public static void main(String[] args) throws IOException, URISyntaxException, InterruptedException {

    downFileFormHDFS();

    upToHDFS();

    // deleteFileFromHDFS();

    CatFile();

    }

    }

     

    1. 上传文件

     

     

    1. 删除文件

     

    1. 查看文件

     

     

  • 相关阅读:
    001.Kubernetes简介
    DOCKER学习_018:Docker-Compose文件简介
    DOCKER学习_017:Docker-Compose介绍
    DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理
    DOCKER学习_015:Docker网络补充
    接口漏洞
    Shodan搜索引擎在信息搜集中的应用
    Google在情报搜集中的基础技巧
    数据抓包分析基础
    文件上传之图片木马的学习
  • 原文地址:https://www.cnblogs.com/mzc1997/p/9200532.html
Copyright © 2011-2022 走看看