大数据之Hadoop中HDFS客户端操作(第四篇)

7 篇文章 0 订阅
6 篇文章 0 订阅

HDFS客户端操作

继上篇Hadoop入门第三篇后,我们今天来说一下HDFS客户端的操作。
准备工作:
这里我们先用伪分布式来说一下,所以我们要先有一个伪分布式。

1、HDFS客户端环境准备
1)根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:C:\Study\tools)。

在这里插入图片描述
在这里插入图片描述
2)配置环境变量

  • 1)配置系统环境变量

1.2.1.1 配置jdk的环境变量

一般学java的我们都会配好JDK的环境变量所以这里就不细说。

1.2.1.2 配置hadoop的环境变量

首先这里要创建HADOOP_HOME变量名和变量值

在这里插入图片描述
然后编辑系统变量中的Path
在这里插入图片描述
对Path进行编辑
在这里插入图片描述
添加变量%HADOOP_HOME%\bin
以上步骤就把我们环境变量配置好了。然后我们开始进行配置eclipse环境

  • 2)配置eclipse环境
  • 1.2.2.1 在eclipse启动之前,先将hadoop-eclipse-plugin-2.6.0.jar复制到eclipse的安装目录下的plugins
  • 1.2.2.2 启动eclipse

eclipse启动后,首先打开window——Show View——Other
在这里插入图片描述

在这里插入图片描述
进入到这个视图之后我们开始配置的端口号,此处的端口号是我们在伪分布式搭建成功后登陆50070后跳转页面上显示的接口号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这要我们就有了我们小象的视图了

然后在我们的虚拟机中先上传个文件,以便我们之后查看我们的文件。
我们先创建一个目录

[root@node01 ~]# hdfs dfs -mkdir -p /user/root

然后上传我们要上传的文件

[root@node01 ~]# hdfs dfs -put /etc/profile /user/root

/etc/profile 为我要上传的文件
/user/root 为我创建的目录
在这里插入图片描述
然后在我们eclipse中的左侧的小象刷新就可以显示我们已经上传到HDFS的文件了
在这里插入图片描述

2、创建项目
1)window——perferences
Hadoop Map/Reduce ——放置hadoop-2.6.5
java—build Path-----User Libraries—Add External然后把lib下的所有jar包导入进来

在这里插入图片描述

2)创建一个Java Project 项目
然后在我们的项目里右击----Build Path,导入我们所需要的User library—lib包
以及Junit包
创建conf文件夹,利用Xftp6这个软件把我们Linux中的配置文件拖出来。然后将这两个配置文件放入conf文件夹中,右击build,将它转化为资源包生效文件。

3、HDFS的API操作

3.1 创建一个类在其中编写我们的代码

//首先引入配置文件
	Configuration conf=null;
	//创建文件流
	FileSystem fs=null;
	@Before
	public void conn() throws IOException {
		//设置是否读取配置信息
		conf=new Configuration(true);
		fs=FileSystem.get(conf);
	}
	@After
	public void close() throws IOException {
		fs.close();
	}
	

创建一个文件夹和判断是否存在以及删除文件夹

//创建删除重命名判断是否存在
	@Test
	public void mkdir() throws IOException {
	//
		Path f=new Path("/aaa");
		//判断是否存在
		if (fs.exists(f)) {
		//删除文件夹
			fs.delete(f);
		}
		fs.mkdirs(f);
	}
//重命名
	@Test
	public void rn() throws IOException {
		Path p1 = new Path("/user/root/profile");
		Path p2 = new Path("/user/root/haha.txt");
		boolean rename = fs.rename(p1, p2);
		System.out.println(rename);
	}
	//上传文件
	@Test
	public void upload() throws IOException {
		//输入位置  C:\\Users\\***\\Desktop\笔记.doc
		//输出位置  /user/root
		Path inputFile = new Path("/user/root/笔记.txt");
		//文件内容输出
		FSDataOutputStream output = fs.create(inputFile);
		//输入
		InputStream input=new BufferedInputStream(new FileInputStream(new File("C:\\\\Users\\\\吕宏达\\\\Desktop\\笔记.doc")));
		IOUtils.copyBytes(input, output, conf, true);
	}
	//下载文件
	@Test
	public void download() throws IOException {
		//从linux中上传到hdfs
		//输入位置
		Path src = new Path("/user/root/笔记.txt");
		FSDataInputStream input = fs.open(src);
		//输出位置
		FileOutputStream output = new FileOutputStream("c:\\123\\笔记.txt");
		IOUtils.copyBytes(input, output, conf, true);
	}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值