赞
踩
...........................................................................................................................................................
Java可以通过Hadoop提供的HDFS Java API来控制HDFS。通过HDFS Java API,可以实现对HDFS的文件操作,包括文件的创建、读取、写入、删除等操作。
...........................................................................................................................................................
..........................................................................................................................................................
具体来说,Java可以通过HDFS Java API来创建一个HDFS文件系统对象,然后使用该对象来进行文件的操作。例如,可以使用FileSystem类的create()方法来创建一个新的文件,使用open()方法来打开一个文件进行读取,使用write()方法来向文件中写入数据,使用delete()方法来删除一个文件等。
...........................................................................................................................................................
此外,Java还可以通过HDFS Java API来管理HDFS的元数据信息,包括文件的权限、所有者、修改时间等信息。通过FileSystem类的setPermission()、setOwner()、setTimes()等方法,可以对文件的元数据信息进行修改。
...........................................................................................................................................................
前提:
配置HADOOP_HOME环境变量
配置Path环境变量
Maven依赖成功导入
(这三个不会的评论区评论我发资料给你)
...........................................................................................................................................................
- package com.huangyongsheng.hdfs;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.URI;
- import java.net.URISyntaxException;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.fs.FileSystem;
- import org.apache.hadoop.fs.LocatedFileStatus;
- import org.apache.hadoop.fs.Path;
- import org.apache.hadoop.fs.RemoteIterator;
- import org.apache.hadoop.io.IOUtils;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
-
- /**
- * 客户端代码常用套路
- * 1,获取客户端对象
- * 2.执行操作
- * 3.关闭资源
- * HDFS zookeeper
- */
- public class HdfsClient {
- private FileSystem fs;
- @Before
- public void init() throws URISyntaxException, IOException, InterruptedException {
- URI uri = new URI("hdfs://hadoop102:8020");
- Configuration configuration = new Configuration();
- String user="huangyongsheng";
- fs = FileSystem.get(uri, configuration, user);
- }
- @After
- public void close() throws IOException {
- fs.close();
- }
- @Test
- //创建目录
- public void testmkdir() throws URISyntaxException, IOException, InterruptedException {
- fs.mkdirs(new Path("/xiyuo/huaguoshan2"));
- System.out.println("目录创建成功");
- }
- @Test
- //上传;是否删除原数据;是否覆盖;原数据路径;目的路径
- public void testPut() throws IOException {
- fs.copyFromLocalFile(false,false,new Path("D:\\sun_wu_kong.txt"),new Path("/xiyuo/huaguoshan"));
- }
- @Test
- //下载;是否删除原数据;hdfs文件路径;win路径;是否校验(不用)
- public void testGet() throws IOException {
- // fs.copyToLocalFile(false,new Path(""),new Path(""));
- InputStream in =fs.open(new Path("/dancijishu/wcinput/word1.txt"));
- IOUtils.copyBytes(in,System.out,4096,false);
- IOUtils.closeStream(in);
- }
- @Test
- //删除;删除文件,目录,非空目录(需要参数true)是否递归删除
- public void testRm() throws IOException {
- fs.delete(new Path(""),false);
- }
- @Test
- //文件的更名和移动
- public void testmv() throws IOException {
- fs.rename(new Path("/xiyuo/huaguoshan2"),new Path("/xiyuo/huaguoshan_namechanged"));
- // rename可以移动文件并改名 原文件路径(路径里的文件) 一个新的路径(路径里的文件)
- }
- @Test
- //获取文件详情
- public void fileDetail() throws IOException {
- //获取所有文件信息 迭代器
- RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"),true);
- while (listFiles.hasNext()){
- LocatedFileStatus fileStatus = listFiles.next();
- System.out.println("===================="+fileStatus.getPath()+"====================");
- System.out.println(fileStatus.getPermission());
- System.out.println(fileStatus.getOwner());
- System.out.println(fileStatus.getGroup());
- System.out.println(fileStatus.getLen());
- System.out.println(fileStatus.getModificationTime());
- System.out.println(fileStatus.getReplication());
- System.out.println(fileStatus.getPath().getName());
- }
- }
- }
...........................................................................................................................................................Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客
..........................................................................................................................................................
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。