HDFS客户端及API操作:
一、准备条件:
1. 配置环境变量 HADOOP_HOME (路径要求非中文)
2. 验证环境变量,双击 winutils.exe ( 报错可能是缺少微软运行库 MSVCR120.dll )
3. 在 IDEA 中创建一个 Maven 工程并且导入相应的依赖
( hadoop-client、juint、slf4j-log4j12 )
4. 新建 HdfsClient 类:
1)客户端代码的三个步骤:获取一个客户端对象;执行相关的操作命令;关闭资源
2)新建初始化的类,在类前面加 @Before (获取客户端对象):
连接集群的 nn 地址 URI()
创建配置文件 Configuration()
用户名
获取客户端对象 FileSystem.get()
3)新建关流类,在类前面加 @After(关闭资源)
关流 close()
4)新建执行命令的类,在类前面加 @Test
二、API操作:
1.创建目录 mkdir()
2.文件上传 copyFromLocalFile()
参数一:删除原数据 参数二:是否允许覆盖
参数三:原数据路径 参数四:目的地路径
3.文件下载 copyToLocalFile()
参数一:原文件是否删除 参数二:原文件的路径
参数三:目标地址路径 参数四:是否开启本地校验(crc校验)
4.删除 delete()
删除文件;删除空目录;删除非空目录
参数一:要删除的路径 参数二:是否递归删除
5.文件的更名和移动 rename()
文件名称修改;文件的移动和更名;目录的更名
参数一:原文件路径 参数二:目标文件路径
6.获取文件详细信息
获取所有文件信息 listFiles()
遍历文件(获取名称需要 getPath().getName() )
获取块信息 fileStatus.getBlockLocations()
输出块信息 Arrays.toString(blockLocations)
7.区分文件和目录
获取路径下所有的文件和目录 listStatus()
区分文件 status.isFile()