java api shell_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 操作:

查看hdfs根目录:

Hdfs dfs -ls /

创建文件夹

Hdfs dfs -mkdir /test

移动文件夹

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

删除文件或文件夹

Hdfs dfs -rm -r /test1

本地文件上传到hdfs

方式一:

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

方式二:

Hdfs dfs -copyFromLocal SRC hdfsDST

hdfs上的文件上传到本地

方式一:

Hdfs dfs -get hdfsSRC LocalDST

方式二:

Hdfs dfs -copyToLocal hdfsSRC LocalDST

文件复制

Hdfs dfs -cp SRC DST

文件内容输出

Hdfs dfs -cat URI

改变文件权限

Hdfs dfs -chmod xxx

改变文件所有者

Hdfs dfs -chown xxx

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

Hdfs dfs -du [args]

上传测试:

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

下载文件

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();

}

}

上传文件

删除文件

查看文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值