HDFS的API操作-获取FileSystem方式
HDFS 的 API 操作
导入 Maven 依赖
<repositories><repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url></repository>
</repositories>
<dependencies><dependency><groupId>jdk.tools</groupId><artifactId>jdk.tools</artifactId><version>1.8</version><scope>system</scope><systemPath>${JAVA_HOME}/lib/tools.jar</systemPath></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>3.0.0</version><scope>provided</scope></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>3.0.0</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs-client</artifactId><version>3.0.0</version><scope>provided</scope></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.0.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>
</dependencies>
概述
在 Java 中操作 HDFS, 主要涉及以下 Class:
Configuration
- 该类的对象封转了客户端或者服务器的配置
FileSystem
该类的对象是一个文件系统对象, 可以用该对象的一些方法来对文件进行操作, 通过 FileSystem 的静态方法 get 获得该对象
FileSystem fs = FileSystem.get(conf)
get
方法从conf
中的一个参数fs.defaultFS
的配置值判断具体是什么类型的文件系统- 如果我们的代码中没有指定
fs.defaultFS
, 并且工程 ClassPath 下也没有给定相应的配置,conf
中的默认值就来自于 Hadoop 的 Jar 包中的core-default.xml
- 默认值为
file:///
, 则获取的不是一个 DistributedFileSystem 的实例, 而是一个本地文件系统的客户端对象
获取 FileSystem 的几种方式
第一种方式
@Test
public void getFileSystem() throws URISyntaxException, IOException {Configuration configuration = new Configuration();FileSystem fileSystem = FileSystem.get(new URI("hdfs://192.168.52.250:8020"), configuration);System.out.println(fileSystem.toString());
}
第二种方式
@Test
public void getFileSystem2() throws URISyntaxException, IOException {Configuration configuration = new Configuration();configuration.set("fs.defaultFS","hdfs://192.168.52.250:8020");FileSystem fileSystem = FileSystem.get(new URI("/"), configuration);System.out.println(fileSystem.toString());
}
第三种方式
@Test
public void getFileSystem3() throws URISyntaxException, IOException {Configuration configuration = new Configuration();FileSystem fileSystem = FileSystem.newInstance(new URI("hdfs://192.168.52.250:8020"),
configuration);System.out.println(fileSystem.toString());
}
第四种方式
@Test
public void getFileSystem4() throws Exception{Configuration configuration = new Configuration();configuration.set("fs.defaultFS","hdfs://192.168.52.250:8020");FileSystem fileSystem = FileSystem.newInstance(configuration);System.out.println(fileSystem.toString());
}
HDFS的API操作-获取FileSystem方式相关推荐
- HDFS的API操作-获取文件列表信息
遍历 HDFS 中所有文件 递归遍历 @Test public void listFile() throws Exception{FileSystem fileSystem = FileSystem. ...
- 2021年大数据Hadoop(十二):HDFS的API操作
2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的API操作 ...
- 实验二 HDFS的Shell命令操作,和HDFS的API操作
文章目录 实验目的 一. 实验原理 二.实验准备 实验内容 步骤 项目1 HDFS常见命令练习 列出HDFS当前用户家目录下的文件及文件夹: 列出HDFS文件下名为directory的文件夹中的文件: ...
- HDFS Java API 操作
文章目录 HDFS Java API操作 零.启动hadoop 一.HDFS常见类接口与方法 1.hdfs 常见类与接口 2.FileSystem 的常用方法 二.Java 创建Hadoop项目 1. ...
- HDFS java API操作
HDFS的javaAPI操作 目标:掌握如何使用API对HDFS上的目录和数据进行增.删.改.查操作. 1.idea创建maven工程 2.修改pom.xml文件如下: (需要下载jar包,时间可能稍 ...
- 分布式文件系统—HDFS—Java API操作
原文作者:jiangw-Tony 原文地址:HDFS基础使用 hdfs 在生产应用中主要是客户端的开发,其核心步骤是从 hdfs 提供的 api 中构造一个 HDFS的访问客户端对象,然后通过该客户端 ...
- HDFS的API操作
准备工作:IDEA > HDFS客户端准备 目录 文件上传 文件下载 文件夹删除 修改文件名称 查看文件详情 文件和文件夹的判断 完整代码 文件上传 注意conf.set("dfs.r ...
- 大数据之-Hadoop之HDFS的API操作_文件上传---大数据之hadoop工作笔记0056
然后我们HDFS的java的api操作. 比如我们有个需求从mysql中把数据上传到完全分布式的集群中的,hdfs中 比如这里首先我们演示,把e盘下的banzhang.txt文件上传到完全分布式集群h ...
- HDFS的API操作-小文件的合并
小文件合并 由于 Hadoop 擅长存储大文件,因为大文件的元数据信息比较少,如果 Hadoop 集群当中有大量的小文件,那么每个小文件都需要维护一份元数据信息,会大大的增加集群管理元数据的内存压力, ...
最新文章
- JMS(二):简单的JMS入门实例
- php_sapi常量,PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测
- 套接字设置为(非)阻塞模式
- 1006 换个格式输出整数 (15 分)
- Android学习之布局管理器嵌套
- linux网卡备份还原,CentOS6.x双网卡采用主-备份策略绑定(bond)
- 2017乌鲁木齐ICPC: I. A Possible Tree(带权并查集)
- Java7 一些新特性及脚本语言支持API--笔记
- 专注于分享,米狗网!
- 有关Oracle cvu和cvuqdisk
- 自己动手搭建免费VoIP服务器
- Netmeeting使用方法
- Android WideVine
- 自然语言处理技术的工作原理与应用
- 关于php的梗儿_抖音上的梗,你知道哪些?
- 基于单片机的超市储物柜设计_基于单片机的超市储物柜控制系统设计.docx
- 微信小程序微信原生小程序如何通过后端返回的二进制流导出excel文件并保存和转发
- git 国外镜像下载慢的解决方案
- 献给初学者的Java学习方法完整版(附教程)
- 申报职称要满足的条件
热门文章
- Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.3.xsd).
- 算法竞赛入门经典_6数据结构基础
- servlet web.xml学习笔记
- PHPSTORM下安装XDEBUG
- Linux System Account SSH Weak Password Detection Automatic By System API
- GCJ 2015-Qualification-B Infinite House of Pancakes 枚举,思路,误区 难度:3
- 注释 —— 《clean code》读后感
- 【log4j】—日志记录log4j的Logger和commons.logging的Log的区别
- 20 个有用的 Go 语言微服务开发框架
- 2.27linux和windows互传文件