网站替换图片怎么做,北京住房与建设部网站,招聘网站建设策划书,一个网站建设的流程文章目录 API文档环境配置API操作准备工作创建文件夹文件上传文件下载文件删除文件的更名和移动获取文件详细信息 API文档
HDFS API官方文档#xff1a;https://hadoop.apache.org/docs/r3.3.1/api/index.html
环境配置
将Hadoop的Jar包解压到非中文路径#xff08;例如D:… 文章目录 API文档环境配置API操作准备工作创建文件夹文件上传文件下载文件删除文件的更名和移动获取文件详细信息 API文档
HDFS API官方文档https://hadoop.apache.org/docs/r3.3.1/api/index.html
环境配置
将Hadoop的Jar包解压到非中文路径例如D:\hadoop\hadoop-2.7.2
配置HADOOP_HOME环境变量 配置Path环境变量 API操作
准备工作
创建一个[Maven]工程HdfsClientDemo
引入hadoop-client依赖
dependenciesdependencygrupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion2.7.2/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.30/version/dependency/dependencies创建HdfsClient 类
创建文件夹
public class HdfsClient {//创建目录Testpublic void testMkdir() throws URISyntaxException, IOException, InterruptedException {//连接的集群nn地址URI uri new URI(hdfs://node1:8020);//创建一个配置文件Configuration configuration new Configuration();//用户String user atguigu;//1、获取到了客户端对象FileSystem fileSystem FileSystem.get(uri, configuration, user);//2、创建一个文件夹fileSystem.mkdirs(new Path(/xiyou/huaguoshan));//3、关闭资源fileSystem.close();}
}上面这样写代码有点冗余我们通过AOP切面将初始化和关流的操作拆分出来后续只需要关注核心逻辑就可以了。 实际开发中这样设计也不太好建议搞个工厂类
public class HdfsClient {private FileSystem fs;Beforepublic void init() throws URISyntaxException, IOException, InterruptedException {// 连接的集群nn地址URI uri new URI(hdfs://node1:8020);// 创建一个配置文件Configuration configuration new Configuration();configuration.set(dfs.replication, 2);// 用户String user atguigu;// 1、获取到了客户端对象fs FileSystem.get(uri, configuration, user);}Testpublic void testMkdir() throws URISyntaxException, IOException, InterruptedException {//创建一个文件夹fs.mkdirs(new Path(/xiyou/huaguoshan2));}Afterpublic void close() throws IOException {// 3、关闭资源fs.close();}}
文件上传
Testpublic void testPut() throws IOException {// 参数解读参数1表示删除原数据、参数2是否允许覆盖、参数3原数据路径、参数4目的地路径fs.copyFromLocalFile(false, true, new Path(D:\\bigData\\file\\sunwukong.txt), new Path(hdfs://node1/xiyou/huaguoshan));}
文件下载 //文件下载Testpublic void testGet() throws IOException {//参数的解读参数一原文件是否删除、参数二原文件路径HDFS、参数三Windows目标地址路径、参数四crc校验
// fs.copyToLocalFile(false, new Path(hdfs://node1/xiyou/huaguoshan2/sunwukong.txt), new Path(D:\\bigData\\file\\download), false);fs.copyToLocalFile(false, new Path(hdfs://node1/xiyou/huaguoshan2/), new Path(D:\\bigData\\file\\download), false);
// fs.copyToLocalFile(false, new Path(hdfs://node1/a.txt), new Path(D:\\), false);}文件删除
//删除
Test
public void testRm() throws IOException {//参数解读参数1要删除的路径、参数2是否递归删除//删除文件//fs.delete(new Path(/jdk-8u212-linux-x64.tar.gz),false);//删除空目录//fs.delete(new Path(/xiyou), false);//删除非空目录fs.delete(new Path(/jinguo), true);
}文件的更名和移动
//文件的更名和移动
Test
public void testmv() throws IOException {//参数解读参数1原文件路径、参数2目标文件路径//对文件名称的修改fs.rename(new Path(/input/word.txt), new Path(/input/ss.txt));//文件的移动和更名fs.rename(new Path(/input/ss.txt), new Path(/cls.txt));//目录更名fs.rename(new Path(/input), new Path(/output));
}获取文件详细信息 //获取文件详细信息Testpublic 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.getBlockSize());System.out.println(fileStatus.getPath().getName());//获取块信息BlockLocation[] blockLocations fileStatus.getBlockLocations();System.out.println(Arrays.toString(blockLocations));}}