HDFS的JavaAPI详情
Posted 意由
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS的JavaAPI详情相关的知识,希望对你有一定的参考价值。
一、在windows下安装配置Hadoop
<1>、安装
目录
1.下载并解压Hadoop-2.4.1安装包
2.将文件hadoop.dll和文件winytils.exe放入hadoop-2.4.1解压后文件夹中bin目录下
<二>、配置对应的环境变量
1.在系统变量中新建环境变量
变量名为: HADOOP_HOME
变量值为: hadoop-2.4.1文件夹的绝对路劲
2.在系统变量中path中新建变量%HADOOP_HOME%\\bin
二、HDFS的JavaAPI操作
1.常用类
(1)Configuration:该类的对象封装了客户端或服务器的配置
(2)FileSystem:该类的对象是一个文件系统对象,通过该对象调用一些它的方法,从而实现对文件的操作
mkdirs(Path f) | 目录操作 |
---|---|
copyFromLocalFile(Path src,Path fdt) | 从本地磁盘复制文件到HDFS |
copyToLocalFile(Path src,Path dst) | 从HDFS复制文件到本地磁盘 |
delete(Path f) | 删除指定文件,第二个参数为true表示递归删除 |
Rename(Path src,Path dst) | 重命名文件夹或文件 |
2.HDFS中API的操作步骤
(1)在Hdfs上创建文件夹
a.设置客户端身份,添加权限
System.setProperty("HADOOP_USER_NAME","root");
b.与hdfs建立连接
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.16.135:9000");
c.创建FielSystem对象
FileSystem fs=FileSystem.get(conf);
d.判断文件abc是否存在,如果文件不存在,则创建
if (!fs.exists(new Path("/abc"))){
fs.mkdirs(new Path("/abc"));
}
(2)在Hdfs上传文件
public static void main(String[] args) throws IOException {
System.setProperty("HADOOP_USER_NAME","root");
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.26.135:9000");
FileSystem fs=FileSystem.get(conf);
Path src=new Path("需要上传的文件路径");
Path dst=new Path("/abc");
fs.copyFromLocalFile(src,dst);
fs.close();
}
(3)从Hdfs上下载文件
public static void main(String[] args) throws IOException {
System.setProperty("HADOOP_USER_NAME","root");
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.26.135:9000");
FileSystem fs=FileSystem.get(conf);
Path src=new Path("Hadoop的文件路径");
Path dst=new Path("文件下载后存放的路径");
fs.copyFromLocalFile(src,dst);
fs.close();
}
(4)重命名文件夹
public static void main(String[] args) throws IOException {
System.setProperty("HADOOP_USER_NAME","root");
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.26.135:9000");
FileSystem fs=FileSystem.get(conf);
fs.copyFromLocalFile(src,dst);
fs.rename(new Path("文件名称"),new Path("文件新名称"))
fs.delete(new Path("/abcd"),true);
fs.close();
}
(5)删除文件
public static void main(String[] args) throws IOException {
System.setProperty("HADOOP_USER_NAME","root");
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.26.135:9000");
FileSystem fs=FileSystem.get(conf);
fs.delete(new Path("需要删除的文件名称"),true);
fs.close();
}
以上是关于HDFS的JavaAPI详情的主要内容,如果未能解决你的问题,请参考以下文章