内容发布更新时间 : 2024/11/17 20:25:03星期一 下面是文章的全部内容请认真阅读。
(6) 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所
在目录不存在,则自动创建目录; Shell命令: if $(./hdfs dfs -test -d dir1/dir2); then $(./hdfs dfs -touchz dir1/dir2/); else $(./hdfs dfs -mkdir -p dir1/dir2 && hdfs dfs -touchz dir1/dir2/); fi 删除文件:./hdfs dfs -rm dir1/dir2/ Java代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import java.io.*; public class HDFSApi { /** * 判断路径是否存在 */ public static boolean test(Configuration conf, String path) throws IOException { fs = (conf); return fs.exists(new Path(path)); } /** * 创建目录 */ public static boolean mkdir(Configuration conf, String remoteDir) throws IOException { fs = (conf); Path dirPath = new Path(remoteDir); boolean result = fs.mkdirs(dirPath); fs.close(); return result; } /** * 创建文件 */ public static void touchz(Configuration conf, String remote) throws IOException { fs = (conf); Path remotePath = new Path(remote); FSDataOutputStream outputStream = fs.create(remotePath); outputStream.close(); fs.close(); } /** * 删除文件 */ public static boolean rm(Configuration conf, String remote) throws IOException { fs = (conf); Path remotePath = new Path(remote); boolean result = fs.delete(remotePath, false); fs.close(); return result; } /** * 主函数 */ public static void main(String[] args) { Configuration conf = new Configuration(); conf.set(\ String remote = \ // HDFS路径 String remoteDir = \ // HDFS路径对应的目录 try { /* 判断路径是否存在,存在则删除,否则进行创建 */ if ( HDFSApi.test(conf, remote) ) { HDFSApi.rm(conf, remote); // 删除 System.out.println(\删除路径: \ } else { if ( !HDFSApi.test(conf, remoteDir) ) { // 若目录不存在,则进行创建 HDFSApi.mkdir(conf, remoteDir); System.out.println(\创建文件夹: \ } HDFSApi.touchz(conf, remote); System.out.println(\创建路径: \ } } catch (Exception e) { e.printStackTrace(); } } }
(7) 提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,
如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录; Shell命令: 创建目录:./hdfs dfs -mkdir -p dir1/dir2 删除目录(如果目录非空则会提示not empty,不执行删除):./hdfs dfs -rmdir dir1/dir2 强制删除目录:./hdfs dfs -rm -R dir1/dir2 Java代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import java.io.*; public class HDFSApi { /** * 判断路径是否存在 */ public static boolean test(Configuration conf, String path) throws IOException { fs = (conf); return fs.exists(new Path(path)); } /** * 判断目录是否为空 * true: 空,false: 非空 */ public static boolean isDirEmpty(Configuration conf, String remoteDir) throws IOException { fs = (conf); Path dirPath = new Path(remoteDir); RemoteIterator