广州网站制作电话,重庆中环建设有限公司网站,wordpress template,哈尔滨网站建设赚钱么Java可以通过Hadoop提供的HDFS Java API来控制HDFS。通过HDFS Java API#xff0c;可以实现对HDFS的文件操作#xff0c;包括文件的创建、读取、写入、删除等操作。 具体来说#xff0c;Java可以通过HDFS Java API来创建一个HDFS文件系统对象#xff0c;然后使用该对象来进…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;Beforepublic void init() throws URISyntaxException, IOException, InterruptedException {URI uri new URI(hdfs://hadoop102:8020);Configuration configuration new Configuration();String userhuangyongsheng;fs FileSystem.get(uri, configuration, user);}Afterpublic 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 {//获取所有文件信息 迭代器RemoteIteratorLocatedFileStatus 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());}}
}