1.下载hadoop安装包
2.解压hadoop安装包放到一个文件夹中
3.将文件hadoop.dll和文件winytils.exe 放到hadoop.2.4.1/bin文件夹下、
新建环境变量HADOOP_HOME
在环境变量path中添加变量%HADOOP_HOME%\bin
之前我们都是用hdfs shell 来操作hdfs上的文件,现在我们通过编程的形式操作hdfs,主要是用hdfs中提供的javaAPI构造一个反问客户端的对象,然后通过客户端对象对hdfs上的文件进行操作(新建、上传、下载、删除等)。
(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) | 重命名文件夹或文件 |
a. 设置客户端身份,已具备权限在hdfs上进行操作
System.setProperty("HADOOP_USER_NAME","root");
b.与hdfs建立连接
<1>创建配置对象实例
<2>设置操作文件系统是hdfs并指定hdfs的操作地址
Configuration conf=new Configuration(); //创建配置对象实例
conf.set("fs.defaultFS","hdfs://192.168.95.132:9000"); //hdfs://192.168.95.132:9000写成自己的虚拟机的ip地址+:9000 //设置操作文件系统是hdfs并指定hdfs的操作地址
<3>创建FielSystem对象
FileSystem fs=FileSystem.get(conf);
c.判断要创建的目录是否存在,不存在则创建
exists是判断文件是否存在
if (!fs.exists(new Path("/abc"))){
fs.mkdirs(new Path("/abc"));
}
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.95.132:9000"); //hdfs://192.168.95.132:9000写成自己的虚拟机的ip地址+:9000
FileSystem fs=FileSystem.get(conf);
Path src=new Path("C:\\Users\\lenovo\\Desktop\\技能大赛\\python数据采集\\xinfadi.csv");
Path dst=new Path("/abc");
fs.copyFromLocalFile(src,dst);
fs.close();
}
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.95.132:9000"); //hdfs://192.168.95.132:9000写成自己的虚拟机的ip地址+:9000
FileSystem fs=FileSystem.get(conf);
Path src=new Path("/abc/xinfadi.csv");
Path dst=new Path("G\\abc");
fs.copyFromLocalFile(src,dst);
fs.close();
}
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.95.132:9000"); //hdfs://192.168.95.132:9000写成自己的虚拟机的ip地址+:9000
FileSystem fs=FileSystem.get(conf);
fs.copyFromLocalFile(src,dst);
fs.rename(new Path("/abc"),new Path("abcd")) //将abc重命名为abcd
fs.delete(new Path("/abcd"),true);
fs.close();
}
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.95.132:9000"); //hdfs://192.168.95.132:9000写成自己的虚拟机的ip地址+:9000
FileSystem fs=FileSystem.get(conf);
fs.delete(new Path("/abcd"),true);
fs.close();
}