java操作hdfs的方法示例代码

 更新时间:2024年10月10日 10:24:37   作者:java操作hdfs  
这篇文章主要介绍了java操作hdfs的相关资料,在本地配置Hadoop和Maven的环境变量,首先需从官网下载与服务器相同版本的Hadoop安装包,配置环境变量后,引入Maven的配置文件,以便管理项目依赖,最后,编写代码实现对HDFS的连接和操作,完成数据的读写,需要的朋友可以参考下

在本地配置环境变量

  • 在官网下载一个与服务器上的hadoop同样的版本包(或许可以不是同一个版本)
  • 配置环境变量

导入maven配置文件

	<dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.1.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.30</version>
        </dependency>

连接hdfs

public class JavaToHDFS {
    //定义类变量:文件系统,用来连接hdfs
    FileSystem fs=null;

    //预处理,连接hdfs
    public void init() throws Exception{
        Configuration conf = new Configuration();
        fs = FileSystem.get(new URI("本机ip地址"),conf,"root");
    }
}

hdfs代码

HDFSDemo.java
package cn.itcast.hadoop.hdfs;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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;
import org.apache.hadoop.io.IOUtils;
import org.junit.Before;
import org.junit.Test;

public class HDFSDemo {

	FileSystem fs = null;
	
	@Before
	public void init() throws Exception{
		fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration(), "root");
	}
	
	@Test
	public void testUpload() throws Exception{
		InputStream in = new FileInputStream("/root/install.log");
		OutputStream out = fs.create(new Path("/log123.log"));
		IOUtils.copyBytes(in, out, 1024, true);
	}
	
	@Test
	public void testMkdir() throws IllegalArgumentException, IOException{
		boolean  flag = fs.mkdirs(new Path("/a/aa"));
		System.out.println(flag);
	}
	
	@Test
	public void testDel() throws IllegalArgumentException, IOException{
		boolean flag = fs.delete(new Path("/a"), true);
		System.out.println(flag);
	}
	
	public static void main(String[] args) throws Exception {
		FileSystem fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration());
		InputStream in = fs.open(new Path("/jdk"));
		OutputStream out = new FileOutputStream("/home/jdk1.7.tar.gz");
		IOUtils.copyBytes(in, out, 4096, true);
		
	}
}

总结 

到此这篇关于java操作hdfs的文章就介绍到这了,更多相关java操作hdfs内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 贪心算法原理及在Java中的使用

    贪心算法原理及在Java中的使用

    我们可能在好多地方都会听到贪心算法这一概念,并且它的算法思想也比较简单就是说算法只保证局部最优,进而达到全局最优。但我们实际编程的过程中用的并不是很多,究其原因可能是贪心算法使用的条件比较苛刻,所要解决的问题必须满足贪心选择性质
    2021-05-05
  • Java实现Ip地址获取的示例代码

    Java实现Ip地址获取的示例代码

    这篇文章主要为大家详细介绍了Java实现Ip地址获取的两种方式,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2023-09-09
  • java连接Mysql数据库的工具类

    java连接Mysql数据库的工具类

    这篇文章主要介绍了java连接Mysql数据库的工具类,非常的实用,推荐给大家,需要的朋友可以参考下
    2015-03-03
  • Springcloud seata分布式事务实现代码解析

    Springcloud seata分布式事务实现代码解析

    这篇文章主要介绍了Springcloud seata分布式事务实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound

    Intellij IDEA 与maven 版本不符 Unable to import maven project See

    这篇文章主要介绍了Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound,本文通过图文给大家分享解决方案,需要的朋友可以参考下
    2020-08-08
  • Java关于MyBatis缓存详解

    Java关于MyBatis缓存详解

    缓存的重要性是不言而喻的,使用缓存,我们可以避免频繁的与数据库进行交互,尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。本文将给大家详细的介绍,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • Spring的事件和监听器-同步与异步详解

    Spring的事件和监听器-同步与异步详解

    这篇文章主要介绍了Spring的事件和监听器-同步与异步详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • JAVA基础之基本数据类型全面解析

    JAVA基础之基本数据类型全面解析

    下面小编就为大家带来一篇JAVA基础之基本数据类型全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Springboot如何统一处理Filter异常

    Springboot如何统一处理Filter异常

    这篇文章主要介绍了Springboot如何统一处理Filter异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 关于IO密集型服务提升性能的三种方式

    关于IO密集型服务提升性能的三种方式

    这篇文章主要介绍了关于IO密集型服务提升性能的三种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论