网站统计开放平台,新型塑料建筑模板图片,长春网站制作哪里好,郑州网站建设制作费用本次实战涉及使用Java操作Hadoop HDFS#xff0c;包括创建文件、判断文件存在性及异常处理。通过手动添加依赖、启动HDFS服务#xff0c;成功在HDFS上创建和检查文件。进一步探索了文件操作的最佳实践#xff0c;如检查文件存在性以避免重复创建#xff0c;以及处理HDFS安全…本次实战涉及使用Java操作Hadoop HDFS包括创建文件、判断文件存在性及异常处理。通过手动添加依赖、启动HDFS服务成功在HDFS上创建和检查文件。进一步探索了文件操作的最佳实践如检查文件存在性以避免重复创建以及处理HDFS安全模式下的异常情况。整个过程加深了对Hadoop文件系统操作的理解并提高了解决实际问题的能力。 用Maven项目比用Java项目更方便在pom.xml添加2个依赖即可
项目对象模型文件 - pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdnet.huawei/groupIdartifactIdTest/artifactIdversion1.0-SNAPSHOT/versionnameTest/namedependencies!--hadoop客户端--dependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion3.3.4/version/dependency!--单元测试框架--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/version/dependency/dependencies/project日志属性文件 - log4j.properties
log4j.rootLoggerstdout, logfile
log4j.appender.stdoutorg.apache.log4j.ConsoleAppender
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern%d %p [%c] - %m%n
log4j.appender.logfileorg.apache.log4j.FileAppender
log4j.appender.logfile.Filetarget/hdfs.log
log4j.appender.logfile.layoutorg.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern%d %p [%c] - %m%n创建文件类 - CreateFileOnHDFS
package net.huawei.hdfs;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;import java.net.URI;/*** 功能在HDFS上创建文件* 作者华卫* 日期2024年11月15日*/
public class CreateFileOnHDFS {Testpublic void create1() throws Exception {// 创建配置对象Configuration conf new Configuration();// 创建统一资源标识符String uri hdfs://master:9000;// 创建HDFS文件系统对象FileSystem fs FileSystem.get(new URI(uri), conf);// 创建路径对象指向文件Path file new Path(uri /ied02/hadoop.txt);// 基于路径对象创建文件boolean result fs.createNewFile(file);// 判断文件是否创建成功if (result) {System.out.println(恭喜文件[ file ]创建成功~);} else {System.out.println(遗憾文件[ file ]创建失败~);}}Testpublic void create2() throws Exception {// 创建配置对象Configuration conf new Configuration();// 创建统一资源标识符String uri hdfs://master:9000;// 创建HDFS文件系统对象FileSystem fs FileSystem.get(new URI(uri), conf);// 创建路径对象指向文件Path file new Path(uri /ied02/hadoop.txt);// 判断文件是否存在if (fs.exists(file)) {System.out.println(文件[ file ]已经存在~);} else {try {// 基于路径对象创建文件boolean result fs.createNewFile(file);// 判断文件是否创建成功if (result) {System.out.println(恭喜文件[ file ]创建成功~);} else {System.out.println(遗憾文件[ file ]创建失败~);}} catch (Exception e) {System.err.println(异常信息 e.getMessage());}}}
}删除文件执行命令hdfs dfs -rm /ied02/hadoop.txt 运行create1()方法查看结果 此时文件已经创建了再次运行create1()方法提示文件创建失败 运行create2()方法提示文件已经存在