• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
AGENTFITZ
博客园    首页    新随笔    联系   管理    订阅  订阅
HDFS shell操作及HDFS Java API编程

HDFS shell操作及HDFS Java API编程

 

1.熟悉Hadoop文件结构。

2.进行HDFS shell操作。

3.掌握通过Hadoop Java API对HDFS操作。

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

 

1.查看HDFS的NameNode和DataNode目录结构。

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. 查看文件

 

 

posted on 2018-06-19 18:18  agentfitz  阅读(708)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3