HDFS编程 —— 用Java API 操作HDFS
使用Java操作HDFS,首先需要创建maven工程,创建maven工程的方法:https://www.cnblogs.com/ynqwer/p/14540108.html。
在新建的maven工程的src/main/java/目录下就可以写Java程序操作HDFS,为了方便管理,可以在此目录下创建一个包,然后在包里面新建一个类,写代码操作HDFS。使用Java来操作HDFS大概可以分为三个步骤:
- 获取客户端对象
- 调用相应的方法来操作HDFS
- 关闭资源
根据这三个步骤,写出代码
package com.qwer.hdfs;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/*
 * 使用Java操作HDFS的步骤:
 * 1、获取客户端对象
 * 2、调用相应的方法来操作HDFS
 * 3、关闭资源
 */
public class HdfsClient {
	public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
		// 集群通讯地址
		URI uri = new URI("hdfs://centos1:8020");
		// 集群配置
		Configuration conf = new Configuration();
		// 集群用户
		String user = "hadoop";
		// 获取客户端对象
		FileSystem fs = FileSystem.get(uri, conf, user);
		// 调用方法上传文件
		fs.copyFromLocalFile(false, false, new Path("F:\\hadoop\\input\\test.txt"),new Path( "/test1"));
		// 关闭资源
		fs.close();
		System.out.println("SUCESS!");
	};
}
运行上面的代码,可以看到在HDFS的根目录下创建了一个test1文件,数据副本数为3

在上面的代码中,可以用conf.set()来进行一些设置,例如:conf.set("dfs.replication", "2")来设置上传时候的数据副本数为2,代码如下
package com.qwer.hdfs;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/*
 * 使用Java操作HDFS的步骤:
 * 1、获取客户端对象
 * 2、调用相应的方法来操作HDFS
 * 3、关闭资源
 */
public class HdfsClient {
	public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
		// 集群通讯地址
		URI uri = new URI("hdfs://centos1:8020");
		// 集群配置
		Configuration conf = new Configuration();
                // 设置数据副本数为2
                conf.set("dfs.replication", "2");
		// 集群用户
		String user = "hadoop";
		// 获取客户端对象
		FileSystem fs = FileSystem.get(uri, conf, user);
		// 调用方法上传文件
		fs.copyFromLocalFile(false, false, new Path("F:\\hadoop\\input\\test.txt"),new Path( "/test2"));
		// 关闭资源
		fs.close();
		System.out.println("SUCESS!");
	};
}
执行上面代码,可以看到在HDFS的根目录下面创建了一个test2文件,数据副本数为2

HDFS编程 —— 用Java API 操作HDFS的更多相关文章
- 使用Java API操作HDFS文件系统
		使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ... 
- HDFS 05 - HDFS 常用的 Java API 操作
		目录 0 - 配置 Hadoop 环境(Windows系统) 1 - 导入 Maven 依赖 2 - 常用类介绍 3 - 常见 API 操作 3.1 获取文件系统(重要) 3.2 创建目录.写入文件 ... 
- 使用Java Api 操作HDFS
		如题 我就是一个标题党 就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux 首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包 速度慢,可以改变Ma ... 
- hadoop学习笔记(五):java api 操作hdfs
		HDFS的Java访问接口 1)org.apache.hadoop.fs.FileSystem 是一个通用的文件系统API,提供了不同文件系统的统一访问方式. 2)org.apache.hadoop. ... 
- HDFS基础和java api操作
		1. 概括 适合一次写入多次查询情况,不支持并发写情况 通过hadoop shell 上传的文件存放在DataNode的block中,通过linux shell只能看见block,看不见文件(HDFS ... 
- Hadoop Java API操作HDFS文件系统(Mac)
		1.下载Hadoop的压缩包 tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ... 
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
		一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ... 
- 使用java api操作HDFS文件
		实现的代码如下: import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import ... 
- Hadoop之HDFS(三)HDFS的JAVA API操作
		HDFS的JAVA API操作 HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS ... 
- JAVA API连接HDFS HA集群
		使用JAVA API连接HDFS时我们需要使用NameNode的地址,开启HA后,两个NameNode可能会主备切换,如果连接的那台主机NameNode挂掉了,连接就会失败. HDFS提供了names ... 
随机推荐
- go 的形参
			注意 记录一个 go 语言编程中,可能不小心忽略的一个点, 当函数的 出参 如果是 数组.结构体.字典 类型时,是不需要声明的,可以直接使用. 但是如果 出参 是 指针 类型,则必须要显示的声明. 代 ... 
- POD状态整理(持续更新)
			pendding Pod一直停留在Pending状态,可能表示,该Pod不能被调度到某一个节点上------我遇到的一个情况确实是这样的,因为我要mount的卷是在worker1上的,由于pod运行时 ... 
- dart的基本使用
			1.windows上环境搭建 (1) 在dart官网上下载对应的sdk安装即可.归档 | Dart (2) 使用vscode开发,安装dart插件和Code Runner插件即可. 2.Dart ... 
- ts的接口和泛型的基本语法
			一.接口 1.接口定义 接口是一种规范的定义,它定义行为和规范,在程序设计中接口起到限制和规范的作用. 2.接口的声明与使用 //声明对象类型接口 interface Person { name: ... 
- 正确处理iOS从下方滑出滚动视图
			本文提供 Demo下载 在iOS 11开始,从最早的地图应用到最近的捷径,陆续有系统应用使用从下方滑出列表的形式,这种系统提供的圆角风格视图用手势划出和隐藏时非常自然流畅.国内的一些应用也跟进了这种交 ... 
- 制作win10装机U盘
			第一步:准备一个8G容量以上的U盘 第二步:制作系统盘. 进入windows官网 官网win10下载地址:https://www.microsoft.com/zh-cn/software-downlo ... 
- Linux修改主机名hostname
			红帽系: [root@f112 ~]# vi /etc/sysconfig/network # Created by anaconda # 加上一行 HOSTNAME=f111 [root@f112 ... 
- String类对象的常用操作及方法
			在Java中,String类包含有50多个方法来实现字符串的各种操作,以下介绍一些我们需要经常使用的方法.1.字符串的连接public String concat(String str) 该方法的参数 ... 
- 关于什么时候用get请求和什么时候用post请求
			转载自:(19条消息) 关于什么时候用get请求和什么时候用post请求_火兰的博客-CSDN博客_什么时候用get什么时候用post get和post方法功能类似的,使用建议:1.get方式的安全性 ... 
- 排序算法 | JS
			1.冒泡排序 function bubbleSort(arr,order){ let len = arr.length-1,flag=true for(let i=0;(i<len)&& ... 
