当前位置:   article > 正文

大数据之使用Java操作Hadoop的上传下载_java 链接链接hadoop集群 下载文件

java 链接链接hadoop集群 下载文件

准备工作

windows下eclipse的安装与配置

在上次Hadoop的介绍中,介绍了JDK的安装,在安装eclipse之前需要安装JDK,若未配置JDK中,可用参考如下链接
大数据底层生态之Hadoop

安装Eclipse

首先,去官网下载Eclipse安装包eclipse-inst-win64:https://www.eclipse.org/downloads/

运行安装包,选择Eclipse IDE for Java Developers,
在这里插入图片描述
开始安装,过程可能较慢。

等待一段时间后即可完成Eclipse的安装

eclipse配置maven环境

进入Maven官网
http://maven.apache.org/download.cgi
选择最近的镜像,选择Maven压缩包apache-maven-3.6.0-bin.tar.gz开始下载

解压Maven压缩包apache-maven-3.6.0-bin.tar.gz,解压后的文件夹\apache-maven-3.6.0,将其考入自定义路径,如D:\eclipse\apache-maven-3.6.0

配置Maven的环境变量,Path添加Maven的\bin的安装路径,cmd命令行运行mvn -v,查看是否成功安装配置

成功界面显示如下
在这里插入图片描述

配置Maven的installation和User Settings
【Preferences】→【Maven】→【Installations】配置Maven安装路径,【User Settings】配置settings.xml的路径

通过以下方式即可完成eclipse中Maven的配置
在这里插入图片描述

编写Java程序

项目结构如下图:
在这里插入图片描述

文件下载Java程序代码:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HDFSDownload {

	private static InputStream input;
	private static OutputStream output;
	
	public static void main(String[] args) throws IOException {
		
		//设置root权限
		System.setProperty("HADOOP_USER_NAME", "root");
		//创建HDFS连接对象client
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://izwz97mvztltnke7bj93idz:9000");
		FileSystem client=FileSystem.get(conf);
		
		output = new FileOutputStream("c:\\hdfs\\bbout.txt");
		//创建HDFS的输入流
		input=client.open((new Path("/bb.txt")));
		
		byte[] buffer= new byte[1024];
		int len=0;
		while ((len=input.read(buffer))!=-1) {
			
			
			output.write(buffer, 0, len);
			
		}
		
		
		output.flush();
		input.close();
		output.close();
		
		
		
		
	}
	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

文件上传Java程序代码:



import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;


public class HDFSUpload {

	private static InputStream input;
	private static OutputStream output;
	
	public static void main(String[] args) throws IOException {
		
		//设置root权限
		System.setProperty("HADOOP_USER_NAME", "root");
		//创建HDFS连接对象client
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://izwz97mvztltnke7bj93idz:9000");
		conf.set("dfs.client.use.datanode.hostname", "true");
		FileSystem client = FileSystem.get(conf);
		
		/*//要上传的资源路径
		String src = "C:/Users/Desktop/bcdf.txt";
		//要上传的hdfs路径
		String hdfsDst = "/aadir";
		
		client.copyFromLocalFile(new Path(src), new Path(hdfsDst));
		
		
		System.out.println("Success");*/
		
		//创建HDFS的输入流
		input = new FileInputStream("D:\\xx编程\\bcdf.txt");
		//创建HDFS的输出流
		output = client.create(new Path("/aadir/about.txt"));
		//写文件到HDFS
		byte[] buffer = new byte[1024];
		int len=0;
		while ((len=input.read(buffer))!=-1) {
			
			output.write(buffer, 0, len);
			
		}
		
		//防止输出数据不完整
		output.flush();
		//使用工具类IOUtils上传或下载
		input.close();
		output.close();
		
		
	}
	
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

文件创建程序代码




import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HDFSMKdir {

	public static void main(String[] args) throws IOException {
		
				//设置root权限
				System.setProperty("HADOOP_USER_NAME", "root");
				//创建HDFS连接对象client
				Configuration conf = new Configuration();
				conf.set("fs.defaultFS","hdfs://izwz97mvztltnke7bj93idz:9000");
				FileSystem client = FileSystem.get(conf);
				client.mkdirs(new Path("/aadir"));
				client.close();
				System.out.println("successfully!");
		
	}
	
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

文件是否存在程序代码:



import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HDFSFilelfExist {

	
	public static void main(String[] args) throws IOException {
		
		//设置root权限
		System.setProperty("HADOOP_USER_NAME", "root");
		//创建HDFS连接对象client
		Configuration conf = new Configuration();
		conf.set("fs.defaultFS", "hdfs://izwz97mvztltnke7bj93idz:9000");
		FileSystem client = FileSystem.get(conf);
		//声明对象文件
		String fileName="/bb.txt";
		if (client.exists(new Path(fileName))) {
			System.out.println("文件存在");
		}else {
			System.out.println("文件不存在");
		}
		
		
	}
	
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

通过以下命令可用查看到Hadoop的结果:

hdfs dfs -ls /  查看hdfs根目录下文件和目录
hdfs dfs -ls -R /      查看hdfs根目录下包括子目录在内的所有文件和目录
hdfs dfs -mkdir /aa/bb  在hdfs的/aa目录下新建/bb目录
hdfs dfs -rm -r /aa/bb   删除hdfs的/aa目录下的/bb目录
hdfs dfs -rm /aa/out.txt  删除hdfs的/aa目录下的out.txt文件
  • 1
  • 2
  • 3
  • 4
  • 5

通过hdfs命令也可将文件上传

hdfs dfs -put /root/mk.txt /aa        把本地文件上传到hdfs 
hdfs dfs -copyFromLocal a.txt /          把本地文件上传到hdfs
hdfs dfs -get /bb.txt bbcopy.txt          从hdfs下载文件到本地
hdfs dfs -copyToLocal /bb.txt bbcopy.txt   从hdfs下载文件到本地
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/721880
推荐阅读
相关标签
  

闽ICP备14008679号