千家信息网

HDFS基本常用命令有哪些

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,小编给大家分享一下HDFS基本常用命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一:查看HDFS文件的最后修改时
千家信息网最后更新 2025年01月24日HDFS基本常用命令有哪些

小编给大家分享一下HDFS基本常用命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一:查看HDFS文件的最后修改时间

public class Test6GetLTime {        /**         * 查看HDFS文件的最后修改时间          * */        public static void main(String[] args) {                try {                        Configuration conf = new Configuration();                        URI uri = new URI("hdfs://192.168.226.129:9000");                        FileSystem fs = FileSystem.get(uri, conf);                        Path dfs = new Path("hdfs://192.168.226.129:9000/");                        FileStatus fileStatus = fs.getFileStatus(dfs);                                                long modificationTime = fileStatus.getModificationTime();                        System.out.println( "Modefication time is: " + modificationTime );                } catch (IllegalArgumentException e) {                        e.printStackTrace();                } catch (URISyntaxException e) {                        e.printStackTrace();                } catch (IOException e) {                        e.printStackTrace();                }        }}

二:查找某个文件在HDFS集群的位置

public class Test7FileLocation {        /**         * 查找某个文件在HDFS集群的位置         * */        public static void main(String[] args) {                try {                        Configuration conf = new Configuration();                        URI uri = new URI("hdfs://192.168.226.129:9000");                        FileSystem fs = FileSystem.get(uri, conf);                        Path dfs = new Path("hdfs://192.168.226.129:9000/rootdir/ssh.txt");                        FileStatus fileStatus = fs.getFileStatus(dfs);                        BlockLocation[] blkLocations = fs.getFileBlockLocations(fileStatus,0, fileStatus.getLen() );                        int blockLen = blkLocations.length;                        System.out.println("blockLen of length : " +blockLen );                        for( int i=0;i

三: 获取HDFS集群上所有节点名称

public class Test8GetList {                /**         * 获取HDFS集群上所有节点名称:         * */        public static void main(String[] args) {                try {                        Configuration conf = new Configuration();                        URI uri = new URI("hdfs://192.168.226.129:9000");                        FileSystem fs = FileSystem.get(uri,conf);                        DistributedFileSystem hdfs = (DistributedFileSystem)fs;                        DatanodeInfo[] dataNodeStats = hdfs.getDataNodeStats();                        String[] names = new String[dataNodeStats.length];                        int dataNodeLen = dataNodeStats.length;                        for( int i=0; i

四: 上传一个视频文件至HDFS,( 非实时视频流)

public class UploadLive {        public static void main(String[] args) {                try {                        Configuration conf = new Configuration();                        URI uri = new URI("hdfs://192.168.226.129:9000");                        FileSystem fs = FileSystem.get(uri, conf);                        FileSystem local = FileSystem.getLocal(conf);                                                //确定需要上传视频流路径和接收视频流路径                        Path inputDir = new Path("F:\\AHadoopTestFile");                        Path hdfsFile = new Path("hdfs://192.168.226.129:9000/testhadoop/acceptLiveFile");                        System.out.println( inputDir.toString());                        //创建HDFS上  "acceptLiveFile" 目录  用来接收视频文件                        boolean isExist = fs.exists( hdfsFile );                        if( !isExist ){                                fs.mkdirs(hdfsFile);                                System.out.println(" 创建新的目录文件成功...");                        }                                                FileStatus[] inputFiles = local.listStatus(inputDir);                                                FSDataOutputStream out;                        //通过OutputStream.write()来将视频文件写入HDFS下的指定目录:                        int inputFileslen = inputFiles.length;                        for( int i=0;i0 ){                                        out.write(buffer,0,byteRead);                                }                                out.close();                                in.close();                                File file = new File( inputFiles[i].getPath().toString());                                file.delete();                        }                } catch (IllegalArgumentException e) {                        e.printStackTrace();                } catch (FileNotFoundException e) {                        e.printStackTrace();                } catch (URISyntaxException e) {                        e.printStackTrace();                } catch (IOException e) {                        e.printStackTrace();                }                        }}

以上是"HDFS基本常用命令有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0