首页 > 编程语言 >Java实现对Hadoop HDFS的API操作

Java实现对Hadoop HDFS的API操作

时间:2023-12-10 16:40:14浏览次数:39  
标签:HDFS Java Hadoop throws import apache org log4j 客户端

1.配置Hadoop的Windows客户端

Hadoop 配置Windows 客户端

2.新建Maven项目[略]

3.添加依赖

        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.3.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-reload4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-reload4j</artifactId>
            <version>2.0.9</version>
        </dependency>

4.在项目的 src/main/resources目录下,新建日志配置文件,文件名为“log4j.properties”

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

5.新建测试类,用于在Hadoop中创建一个文件夹

package cn.coreqi.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

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

/**
 * 客户端代码步骤
 * 1.首先获取一个客户端对象
 * 2.执行相关的操作命令
 * 3.关闭资源
 */
public class HdfsClient {

    /**
     * 客户端对象
     */
    private FileSystem fs;

    /**
     * 初始化客户端对象
     * @throws IOException
     * @throws InterruptedException
     * @throws URISyntaxException
     */
    @Before
    public void init() throws IOException, InterruptedException, URISyntaxException {
        // 需要连接的Hadoop NameNode地址
        URI uri = new URI("hdfs://192.168.58.130:8020");
        // 创建一个配置文件
        Configuration configuration = new Configuration();
        // 用户
        String user = "root";
        // 获取客户端对象
        fs = FileSystem.get(uri, configuration,user);
    }

    /**
     * 释放客户端资源
     * @throws IOException
     */
    @After
    public void close() throws IOException {
        // 关闭资源
        fs.close();
    }

    @Test
    public void testMkdirs() throws IOException{
        // 创建一个文件夹
        fs.mkdirs(new Path("/coreqi"));
    }
}

标签:HDFS,Java,Hadoop,throws,import,apache,org,log4j,客户端
From: https://www.cnblogs.com/fanqisoft/p/17892815.html

相关文章

  • Java开发者的Python快速实战指南:探索向量数据库之文本搜索
    前言如果说Python是跟随我的步伐学习的话,我觉得我在日常开发方面已经没有太大的问题了。然而,由于我没有Python开发经验,我思考着应该写些什么内容。我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作M......
  • Java网络编程-深入理解BIO、NIO
    深入理解BIO与NIOBIOBIO为Blocked-IO(阻塞IO),在JDK1.4之前建立网络连接时,只能使用BIO使用BIO时,服务端会对客户端的每个请求都建立一个线程进行处理,客户端向服务端发送请求后,先咨询服务端是否有线程响应,如果没有就会等待或者被拒绝BIO基本使用代码:服务端:publicclassTCPServ......
  • 必知必会Java命令-jps
    你好,我是阿光。最近想着把工作中使用过的java命令都梳理一下,方便日后查阅。虽然这类文章很多,但自己梳理总结后,还是会有一些新的收获。这也是这篇笔记的由来。今天先聊聊jps命令。命令概述⭐jps命令是JDK提供的一个工具,用于查看目标系统上的Java进程基本信息(进程ID,启动类,启......
  • Hadoop 配置Windows 客户端
    1.根据Hadoop版本下载Windows依赖,并放置到非中文目录下https://github.com/cdarlint/winutils2.配置环境变量HADOOP_HOME->放置的目录地址PATH->追加%HADOOP_HOME%\bin3.测试环境双击winutils.exe,如出现运行错误,则需要安装相关的运行库解决。......
  • Java之反射(重要 · 下)
    创建对象Class类提供了一个实例方法newInstance(),通过该方法可以创建对象,使用起来比较简单。调用构造方法packagejava2023_08_10;importjava.lang.reflect.Constructor;publicclassConstructorReflect{ publicstaticvoidmain(String[]args){ //TODOAuto-genera......
  • java-打包编译常用命令
    java-打包编译常用命令 1.maven预编译(打包检查异常) 在上到测试环境或者生产环境之前,先在本地打包检查异常: mvncleaninstall-Dmaven.test.skip=true-X  2.maven打包 一般用IDEA上的maven工具按钮: 如果打包失败则可以用下面的命令: mvncleaninsta......
  • java-数据结构
    数据结构A:栈先进后出B:队列先进先出C:数组查询快,增删慢D:链表查询慢,增删快List的三个实现类(1)List的三个实现类特点A:ArrayList底层数据结构是数组,查询快,增删慢线程不安全,效率高B:Vector底层数据结构是数组,查询快,增删慢线程安全,效率低C:LinkedList底层数据结......
  • Java中<where>和<if>标签的组合使用
     在Java中,并没有<where>和<if>标签的组合使用。这两个标签不是Java编程语言或Java标准库的一部分,它们可能是你所使用的特定框架或库提供的自定义标签。如果你正在使用某个特定的Java框架或模板引擎(如MyBatis、Thymeleaf等),这些框架或引擎可能提供了自定义标签,使得在代码中使用......
  • Java入门项目--蚂蚁爱购
    简介这是一个靠谱的Java入门项目实战,名字叫蚂蚁爱购。从零开发项目,视频加文档,十天就能学会开发JavaWeb项目,教程路线是:搭建环境=>安装软件=>创建项目=>添加依赖和配置=>通过表生成代码=>编写Java代码=>代码自测=>前后端联调=>准备找工作。学完即可成为合格的Java开发,心里有......
  • Java基于云端的云HIS服务平台源码
    云HIS是针对中小医疗机构推出的一套基于云端的云HIS服务平台,借助云his,将医院业务流程化,大大提高医院的服务效率和服务质量,为客户提供医院一体化的信息解决方案。云his主要功能:包含门诊收费管理,住院收费管理,门诊医生工作站,住院医生工作站,住院护士工作站,辅助检查科室管理,药房药品管......