内容发布更新时间 : 2024/12/25 10:28:37星期一 下面是文章的全部内容请认真阅读。
(3) 将HDFS中指定文件的内容输出到终端中; Shell命令: ./hdfs dfs -cat text.txt Java代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import java.io.*; public class HDFSApi { /** * 读取文件内容 */ public static void cat(Configuration conf, String remote) throws IOException { fs = (conf); Path remotePath = new Path(remote); FSDataInputStream in = fs.open(remotePath); BufferedReader d = new BufferedReader(new InputStreamReader(in)); String line = null; while ( (line = d.readLine()) != null ) { System.out.println(line); } d.close(); in.close(); fs.close(); } /** * 主函数 */ public static void main(String[] args) { Configuration conf = new Configuration(); conf.set(\ String remote = \ // HDFS路径 try { System.out.println(\读取文件: \ HDFSApi.cat(conf, remote); System.out.println(\读取完成\ } catch (Exception e) { e.printStackTrace(); } } }
(4) 显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息; Shell命令: ./hdfs dfs -ls -h text.txt Java代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import java.io.*; import java.text.SimpleDateFormat; public class HDFSApi { /** * 显示指定文件的信息 */ public static void ls(Configuration conf, String remote) throws IOException { fs = (conf); Path remotePath = new Path(remote); [] = fs.listStatus(remotePath); for ( s : ) { System.out.println(\路径: \ System.out.println(\权限: \ System.out.println(\大小: \ /* 返回的是时间戳,转化为时间日期格式 */ Long timeStamp = s.getModificationTime(); SimpleDateFormat format = new SimpleDateFormat(\ String date = format.format(timeStamp); System.out.println(\时间: \ } fs.close(); } /** * 主函数 */ public static void main(String[] args) { Configuration conf = new Configuration(); conf.set(\ String remote = \ // HDFS路径 try { System.out.println(\读取文件信息: \ HDFSApi.ls(conf, remote); System.out.println(\读取完成\ } catch (Exception e) { e.printStackTrace(); } } }
(5) 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建
时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息; Shell命令: ./hdfs dfs -ls -R -h /user/hadoop Java代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import java.io.*; import java.text.SimpleDateFormat; public class HDFSApi { /** * 显示指定文件夹下所有文件的信息(递归) */ public static void lsDir(Configuration conf, String remoteDir) throws IOException { fs = (conf); Path dirPath = new Path(remoteDir); /* 递归获取目录下的所有文件 */ RemoteIterator