c语言sscanf函数的用法是什么
270
2022-11-26
HDFS的Java API操作(笔记)
注意:需要获取哪个打开main函数中的哪个
package com.hadoop.test;
import java.net.URI;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileStatus;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.FileUtil;import org.apache.hadoop.fs.Path;import org.apache.hadoop.hdfs.DistributedFileSystem;import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
public class HDFSAPITest {
/*1 、获取HDFS文件系统*/// 获取文件系统public static FileSystem getFileSystem() throws Exception {// 读取配置文件Configuration conf = new Configuration();// 返回默认文件系统,如果在Hadoop集群下运行,使用此种方法可直接获取默认文件系统// FileSystem fs = FileSystem.get(conf);// 指定的文件系统地址URI uri = new URI("hdfs://master:9000");// 返回指定的文件系统,如果在本地测试,需要使用此种方法获取文件系统FileSystem fs = FileSystem.get(uri, conf);return fs;}
/*2 、文件/目录的创建与删除*/// 创建文件目录public static void mkdir() throws Exception {// 获取文件系统FileSystem fs = getFileSystem();// 创建文件目录fs.mkdirs(new Path("hdfs://master:9000/20191021/test"));// 释放资源fs.close();}
// 删除文件或者文件目录public static void rmdir() throws Exception {// 返回FileSystem对象FileSystem fs = getFileSystem();// 删除文件或者文件目录fs.delete(new Path("hdfs://master:9000/20191021/test"),true);// 释放资源fs.close();}
/*3、 获取文件*/// 获取目录下的所有文件public static void ListAllFile() throws Exception {// 返回FileSystem对象FileSystem fs = getFileSystem();// 列出目录内容FileStatus[] status = fs.listStatus(new Path("hdfs://master:9000/"));// 获取目录下的所有文件路径Path[] listedPaths = FileUtil.stat2Paths(status);// 循环读取每个文件for(Path p : listedPaths) {System.out.println(p);}// 释放资源fs.close();}
/*4 、上传/下载文件*/// 文件上传至HDFSpublic static void copyToHDFS() throws Exception {// 返回FileSystem对象FileSystem fs = getFileSystem();// 源文件路径是Linux下的路径,如果在Windows下测试,需要改写为Windows下的路径,比如E://Hadoop/weibo.txt//Path srcPath = new Path("/home/hadoop/weibo.txt");Path srcPath = new Path("E://Hadoop/weibo.txt");// 目的路径Path dstPath = new Path("hdfs://master:9000/20191021/test");// 实现文件上传fs.copyFromLocalFile(srcPath, dstPath);// 释放资源fs.close();}
// 从HDFS下载文件public static void getFile() throws Exception {// 返回FileSystem对象FileSystem fs = getFileSystem();// 源文件路径Path srcPath = new Path("hdfs://master:9000/20191021/test/test.txt");// 目的路径是Linux下的路径,如果在Windows下测试,需要改写为Windows下的路径,比如E://hadoop/djt///Path dstPath = new Path("/home/hadoop/");Path dstPath = new Path("E://hadoop/djt/");// 下载hdfs上的文件fs.copyToLocalFile(srcPath, dstPath);// 释放资源fs.close();}
/*5、 获取HDFS集群节点信息*/// 获取HDFS集群节点信息public static void getHDFSNodes() throws Exception {// 返回FileSystem对象FileSystem fs = getFileSystem();// 获取分布式文件系统DistributedFileSystem hdfs = (DistributedFileSystem)fs;// 获取所有节点DatanodeInfo[] DataNodeStats = hdfs.getDataNodeStats();// 循环打印所有节点for(int i=0;i
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~