Hadoop—HDFS的Java客户端编程

java 连接hadoop_Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群 前言上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令:hdfs dfs -ls xxxhdfs dfs-mkdir -p /xxx/xxxhdfs dfs-cat xxxhdfs dfs-put local clusterhdfs dfs-getcluster localhdfs dfs-cp /xxx/xxx /xxx/xxxhdfs dfs-chmod -R 777 /... 阅读详情

    可以使用HDFS Shell命令来完成对HDFS的操作,当然也可以使用Java编程语言来对HDFS实现操作。以下是一些Unit测试代码

package cn.nuc.hadoop.hdfs;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.commons.compress.utils.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.junit.Before;
import org.junit.Test;

public class HdfsUtil {

	FileSystem fs = null;

	@Before
	public void init() throws IOException, InterruptedException,
			URISyntaxException {
		Configuration conf = new Configuration();// 读取配置文件

		// 设置fs.defaultFS参数,如果没有设置,会出现java.lang.IllegalArgumentException:
		// Wrong FS:hdfs://master:9000/user,expected: file:///
		// 当然了,也可以将hadoop集群中的core-site.xml配置文件拷贝到该工程项目下,这样,在读取配置文件时就能够识别hdfs文件系统
		conf.set("fs.defaultFS", "hdfs://master:9000/");

		fs = FileSystem.get(new URI("hdfs://master:9000/"), conf, "hadoop");// 获取hdfs实例
	}

	// upload a loacl file to HDFS
	@Test
	public void upload() throws IOException {

		Path dest = new Path("hdfs://master:9000/user/artifacts.xml");

		FSDataOutputStream fsOut = fs.create(dest);

		FileInputStream localIn = new FileInputStream(
				"D:\\eclipse\\artifacts.xml");

		IOUtils.copy(localIn, fsOut);
	}

	@Test
	public void upload2() throws IllegalArgumentException, IOException {
		fs.copyFromLocalFile(new Path("D:\\eclipse\\artifacts.xml"), new Path(
				"hdfs://master:9000/user/artifacts2.xml"));
	}

	// download a file to local file
	@Test
	public void download() throws IllegalArgumentException, IOException {
		fs.copyToLocalFile(new Path("hdfs://master:9000/user/artifacts2.xml"),
				new Path("D:\\a.xml"));
	}

	// list HDFS file
	@Test
	public void listFiles() throws FileNotFoundException, IllegalArgumentException, IOException {
		// listFiles列出的是文件信息,而且提供递归遍历
		RemoteIterator<LocatedFileStatus> files = fs.listFiles(new Path("/"),
				true);

		while (files.hasNext()) {

			LocatedFileStatus file = files.next();
			Path filePath = file.getPath();
			String fileName = filePath.getName();
			System.out.println(fileName);

		}

		System.out.println("---------------------------------");

		// listStatus 可以列出文件和文件夹的信息,但是不提供自带的递归遍历
		FileStatus[] listStatus = fs.listStatus(new Path("/"));
		for (FileStatus status : listStatus) {

			String name = status.getPath().getName();
			System.out.println(name
					+ (status.isDirectory() ? " is dir" : " is file"));

		}
	}

	// create HDFS folder
	@Test
	public void mkdir() throws IllegalArgumentException, IOException {
		fs.mkdirs(new Path("hdfs://master:9000/aaa/bbb/ccc"));
	}

	// remove HDFS folder or file
	@Test
	public void remove() throws IllegalArgumentException, IOException {
		fs.delete(new Path("hdfs://master:9000/aaa"), true);
	}
}



java实现将hdfs上的文件下载到本地系统上 阅读详情

相关推荐

Java与Hadoop集群交互源码详解

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,以高可靠性、高性能、高可扩展性著称。它提供了一套完整的工具,使得开发者可以轻松地在分布式系统中实现数据存储与大规模数据处理。Hadoop的核心组件包括::一组支持其他Hadoop模块的库和实用程序。HDFS:Hadoop Distributed File System,一个高度容错性的系统,设计用来部署在廉价硬件上。YARN:一个资源管理平台,负责管理计算资源,并在之上运行应用程序。MapReduce。

weixin_27645199的博客 1083

大数据--hdfs--java编程

Linux idea社区版2023。hadoop相关依赖。

qq_64005599的博客 853

NIDS——suricata(一)

NIDS——suricata环境安装和规则编写

weixin_58666006的博客 1273

大数据开源框架之HDFS编程实践

新建一个文件系统对象,利用静态方法get,得到路径和访问配置项对象获得对应文件系统。新建一个文件系统对象,利用静态方法get,得到路径和访问配置项对象获得对应文件系统。新建一个文件系统对象,利用静态方法get,得到路径和访问配置项对象获得对应文件系统。新建一个文件系统对象,利用静态方法get,得到路径和访问配置项对象获得对应文件系统。新建一个文件系统对象,利用静态方法get,得到路径和访问配置项对象获得对应文件系统。新建一个文件系统对象,利用静态方法get,得到路径和访问配置项对象获得对应文件系统。

木子一个Lee的博客 2232

openEuler 欧拉 安装Oracle19c数据库RPM包安装

欧拉系统安装部署oracle 19c rpm方式

陈苏漾的IT生涯 6891

嵌入式Linux开发:手把手教你调试OV9281摄像头Sensor(基于全志平台DTS配置)

本文详细解析了嵌入式Linux开发中OV9281摄像头Sensor的调试全流程,重点介绍了基于全志平台的DTS配置指南。从硬件信号检测到软件驱动配置,包括设备树关键参数设置、内核驱动适配实战及图像质量调优技巧,为开发者提供了一套完整的调试方案,助力工业视觉和边缘计算设备的开发。

weixin_28716769的博客 371

HDFS基础编程--JavaApi

HDFS基础编程--JavaApi

qq_46439199的博客 2455

QuickFix Java 实战(一)协议解析、环境搭建与首个应用

本文是QuickFix Java实战系列的第一篇,详细介绍了FIX协议的核心原理与QuickFix/J引擎的实战应用。内容涵盖FIX协议的标签化通信机制、QuickFix/J库的两种下载方法、协议定义文件解析,并通过一个完整的模拟订单发送示例,指导读者快速搭建首个FIX应用环境,实现消息生成与会话通信。

dog123的博客 495

HDFSAPI应用

1. 配置windows下hadoop环境 第一步:将hadoop2.7.5文件夹拷贝到一个没有中文没有空格的路径下面 第二步:在windows上面配置hadoop的环境变量: HADOOP_HOME,并将%HADOOP_HOME%\bin添加到path中 第三步:把hadoop2.7.5文件夹中bin目录下的hadoop.dll文件放到系统盘: C:\Windows\System32 目录 第...

冥更的博客 352

基于YOLO26深度学习框架的文档表格识别系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的文档表格识别系统实现方法。系统采用YOLO26网络架构,通过数据预处理、模型训练、检测推理和表格分析四个模块实现高效表格识别。研究详细阐述了数据归一化、增强等技术处理,以及采用迁移学习策略优化模型训练过程。实验表明,该系统能有效识别多种表格结构并生成结构化数据,为文档自动化处理提供了可靠解决方案。

一键难忘的博客 970

第七篇:A133 Android 10 触摸提示音过大

描述: 开启触摸提示音功能之后,客户反馈触摸提示音过大,需要改小。 解决方案: 看代码注释,在framework下搜索方法即可。 /** @see AudioManager#playSoundEffect(int) */ public void playSoundEffect(int effectType) { playSoundEffectVolume(effectType, -1.0f); } /** @see AudioManager#playSoundEff

qq_33088619的博客 1696

分布式文件系统HDFS(三)

7、HDFS的文件写入过程 详细步骤解析: 1、 client发起文件上传请求,通过RPC与NameNode建立通讯,NameNode检查目标文件是否已存在,父目录是否存在,返回是否可以上传; 2、 client请求第一个block该传输到哪些DataNode服务器上; 3、 NameNode根据配置文件中指定的备份数量及机架感知原理进行文件分配,返回可用的DataNode的地址如:...

heima201907的博客 353

小波变换(深入浅出)

小波变换

weixin_46713695的博客 3万+

hadoop(四)HDFS的Java客户端编程

  Hadoop都是运行在Linux系统下的,在windows下eclipse中运行mapreduce程序,要首先安装Windows下运行的支持插件(我的是hadoop2.6-common-bin.zip) &lt;dependency&gt; &lt;groupId&gt;org.apache.hadoop&lt;/groupId&gt; &lt;artifactId&gt;...

~ 728

Axure RP9.0 教程:左侧菜单列表导航 ( 点击父级菜单,子菜单自动收缩或展开)【响应式的菜单导航】

1. 设置目标原件时,选择切换,这样就可以实现,当原件展示时,点击自动隐藏,隐藏时自动显示; 2. 展开/收起原件(推动/拉动原件)设置为方向**向下**

专注于计算机研发知识和资讯分享 1377

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hadoop(五)HDFS的RPC Java客户端编程

RPC远程调用  public interface LoginServiceInterface { public static final long versionID=1L; public String login(String username,String password); } public class LoginServiceImpl implements Logi...

~ 220

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

03_HADOOP_06_HDFS和MR客户端java编程

创建一个maven工程 pom.xml引入如下依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.9.2</version> <...

weixin_42486134的博客 231

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDFS-java编程&java-api编程

这是我们老师给的一个比较全的教程 HDFS-java编程 里面包括了 hadoop shell 指令介绍 windows部署hadoop环境 Jetbrains-idea 安装 hadoop 可视化插件 创建客户端java项目,实现以下功能 ①通过api 连接 hdfs; 熟悉不同的连接方式以及优先级 ② 创建目录(可递归创建目录) ③ 文件上传(普通和io流方式) ④ 遍历文件(迭代和分迭代) ⑤ 文件下载(普通和io流方式) ...

a18307096730的博客 1825

Hadoop -- HDFS

hadoop中有3个核心组件:分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源。

Cool_Pepsi的博客 554

疯狂Hadoop之HDFS应用开发(四)

HDFS基本原理 Namenode概述 namenode是HDFS核心 namenode也称为master namenode仅存储HDFS的元数据,文件系统中所有文件的目录树,并跟踪整个集群中的文件 namenode不存储实际数据或数据集。数据本身实际存储在datanode中 namenode知道HDFS中任何给定文件的块列表及其位置,使用此信息namenode知道如何从块中构建文件 namenode并不持久化存储每个文件中各个块所在的Datanode的位置信息,这些信息会在系统启动时从数据节

qianfeng_dashuju的博客 579

hadoop之HDFS学习笔记(一)

主要内容:hdfs的整体运行机制,DATANODE存储文件块的观察,hdfs集群的搭建与配置,hdfs命令行客户端常见命令;业务系统中日志生成机制,HDFS的java客户端api基本使用。 1、什么是大数据 基本概念 《数据处理》 在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经无法胜任,需求催生...

weixin_30386713的博客 389

Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群

阅读目录(Content) 一、Hadoop客户端配置 二、Java访问HDFS集群 2.1、HDFS的Java访问接口  2.2、Java访问HDFS主要编程步骤  2.3、使用FileSystem API读取数据文件 三、实战Java访问HDFS集群 3.1、环境介绍 3.2、查询HDFS集群文件系统的一个文件将它文件内容打印出来 3.3、我们在IEDA中执行...

weixin_33774615的博客 143

HDFS架构+shell操作+客户端操作+读写流程

文章目录1、章HDFS概述1.1 HDFS产出背景及定义1.1 HDFS产生背景1.2 HDFS定义1.2 HDFS优缺点1.2.1优点1.2.2缺点1.3 HDFS组成架构1.4 HDFS文件块大小(面试重点)2、 HDFS的Shell操作(开发重点)3、 HDFS客户端操作(开发重点)3.1 HDFS客户端环境准备1.根据自己电脑的操作系统安装对应的编译后的hadoop jar包到非中文路径2.配置HADOOP_HOME环境变量(win10)3. 配置Path环境变量,4.创建一个Maven工程Hdfs

weixin_45793065的博客 810

使用java API 操作HDFS

使用java API 操作HDFS

Bianch_ZhiLi的博客 2863

大数据学习之路-hdfs

1、什么是hadoop hadoop中有3个核心组件: 分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上 分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算 分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源 2、hdfs整体运行机制 hdfs:分布式文件系统 hdfs有着文件系统共同...

abzs30820的博客 185

Windwos安装Hadoop 并在IDEA中利用Maven实现HDFS API操作

(详细教程)在Windwos安装Hadoop 并在IDEA中利用Maven实现HDFS API操作

zxc872202364的博客 2169
上一篇: Hadoop—FS Shell
下一篇: Java注解
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值