您好,欢迎来到九壹网。
搜索
您的当前位置:首页HDFSshell操作及HDFSJavaAPI编程

HDFSshell操作及HDFSJavaAPI编程

来源:九壹网
HDFSshell操作及HDFSJavaAPI编程

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 /test11. 本地⽂件上传到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 xxx1. 改变⽂件所有者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. 查看⽂件

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务