【简单易懂版】使用IDEA操作Hadoop(增删改查)

这篇具有很好参考价值的文章主要介绍了【简单易懂版】使用IDEA操作Hadoop(增删改查)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前提:服务器中已经配置好了hadoop
本人亲测,以下代码已经跑通,基础功能都可以完成!!!希望对大家有用!!!idea 运行hadoop程序,计算机学习实战案例,intellij-idea,hadoop,java

一、引入hdfs依赖

  1. 创建一个maven项目cn.et
  2. 本地maven配置阿里镜像,用于快速下载依赖(重启加载)
  3. pow文件中引入hadoop依赖
		<!--	hdfs依赖	-->
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>3.1.3</version>
		</dependency>

二、创建hdfs工具类

创建一个HdfsApiUtils 类,用于实现hdfs的增删改查:

  1. 获取hdfs的代码需要封装到静态代码块(先执行而且只执行一次)
  2. 创建文件或目录(mkdirs,建议写绝对路径hdfs://地址:9000/新目录
  3. 删除文件或目录(delete)
  4. 修改或移动文件或目录(rename)
  5. 查询当前路径下所有的文件或目录(显示时间和MB)
package com.example.springbootonline.utils;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.net.URI;
import java.util.List;


/**
 * Created with IntelliJ IDEA.
 *
 * @Author: Print
 * @Date: 2023/07/17/10:07
 * @Description:idea集成hdfs;地址hdfs://地址:9000
 */

@Component
public class HdfsApiUtils {
    private static String hdfsUrl = "hdfs://地址:9000";


    private static String hdfsUsername = "root";

    private static FileSystem hdfs;

    static {
        Configuration conf = new Configuration();
        // 上传到云服务器需要配置下面这个句话
        conf.set("dfs.client.use.datanode.hostname","true");
        try {
            hdfs = FileSystem.get(URI.create(hdfsUrl), conf, hdfsUsername);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 创建文件或目录
     */
    public boolean mkdir(String path) {
        boolean res = false;
        try {
            hdfs.mkdirs(new Path(path));
            res = true;
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return res;
    }

    /**
     * 删除文件或目录
     */
    public boolean delete(String path) {
        boolean res = false;
        try {
            res = hdfs.delete(new Path(path), true);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return res;
    }

    /**
     * 修改或移动文件或目录
     */
    public boolean rename(String oldFile, String newFlie) {
        boolean res = false;
        try {
            res = hdfs.rename(new Path(oldFile), new Path(newFlie));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return res;
    }

    /**
     * 查询当前路径下所有的文件或目录(只查当前目录下)
     */
    public FileStatus[] findCurrent(String path) {
        FileStatus[] res = null;
        try {
            res = hdfs.listStatus(new Path(path));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return res;
    }

    /**
     * 查询当前路径下所有的文件或目录(递归查下面所有)
     */
    public RemoteIterator<LocatedFileStatus> findAll(String path){
        RemoteIterator<LocatedFileStatus> iterator = null;
        try {
            iterator = hdfs.listFiles(new Path(path),true);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return iterator;
    }

    /**
     * 上传
     */
    public boolean upload(String localPath, String path) {
        boolean res = false;
        try {
            hdfs.copyFromLocalFile(new Path(localPath), new Path(path));
            res = true;
        } catch (IOException e) {
            res = false;
            throw new RuntimeException(e);
        }
        return res;
    }

    /**
     * 下载
     */
    public boolean download(String hdfsPath, String localPath) {
        boolean res = false;
        try {
            hdfs.copyToLocalFile(new Path(hdfsPath), new Path(localPath));
            res = true;
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return res;
    }
}

三、测试hdfs工具类

import com.example.springbootonline.utils.HdfsApiUtils;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.RemoteIterator;
import org.junit.jupiter.api.Test;
import org.springframework.stereotype.Component;

import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: Print
 * @Date: 2023/07/17/10:59
 * @Description:
 */
@Component
public class HdfsApiUtilsTest {
    HdfsApiUtils hdfsApiUtils = new HdfsApiUtils();

    @Test
    public void mkdir(){
        String newFile = "/file";
        System.out.println(hdfsApiUtils.mkdir(newFile));
    }

    @Test
    public void delete(){
        String path = "/aaa";
        System.out.println(hdfsApiUtils.delete(path));
    }

    @Test
    public void rename(){
        String oldFile = "/aaa",newFile = "/newAAA";
        System.out.println(hdfsApiUtils.rename(oldFile,newFile));
    }

    @Test
    public void upload(){
        String localPath = "F:\\Users\\HP\\Videos\\Captures\\demo.mp4",path = "/abc/aaa";
        System.out.println(hdfsApiUtils.upload(localPath,path));
    }

    @Test
    public void findCurrent(){
        String path = "/file";
        FileStatus[] fss = hdfsApiUtils.findCurrent(path);
        for (FileStatus fs:fss) {
            System.out.println(fs.toString()+"\n");
        }
        System.out.println();
    }

    @Test
    public void findAll() throws IOException {
        String path = "/file";
        RemoteIterator<LocatedFileStatus> iterator = hdfsApiUtils.findAll(path);
        while (iterator.hasNext()){
            System.out.println(iterator.next().toString());
        }
    }
}

反思

好像应该再写一个服务器如何配置hadoop,后面再看有没有时间吧idea 运行hadoop程序,计算机学习实战案例,intellij-idea,hadoop,java文章来源地址https://www.toymoban.com/news/detail-737213.html

到了这里,关于【简单易懂版】使用IDEA操作Hadoop(增删改查)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    本次hadoop的安装系统为Windows10、Hadoop版本为3.3.6、Maven版本为3.9.4、Java版本为17.0.2。本教程基于前篇教程Hadoop集群、Java安装均完成后的后续教程,如未完成安装请查看前置教程。Hadoop、java安装 ############################################################################################# 此外,大数

    2024年01月18日
    浏览(38)
  • Hadoop系统应用之HDFS相关操作 - - Java-API对HDFS的操作(IDEA版)

    通过Java API来操作HDFS文件系统HDFS,相关的操作有:文件上传、文件下载、新建文件夹、查看文件、删除文件。 1.Linux下安装好hadoop,这里使用hadoop2.7.3 2.window解压hadoop2.7.3的包 2.Windows下安装好jdk1.8  3.Windows下安装好IDEA,这里使用IDEA2022 4.Windows下安装好maven,这里使用Maven3.6.3

    2024年02月05日
    浏览(51)
  • idea运行spark项目报错:org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0

    使用idea运行spark项目wordcount出现此类错误:org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0 解决方法如下: 1.确保安装了hadoop。我使用的spark和hadoop版本都是3.3.2,配置环境变量HADOOP_HOME=D:hadoop-3.3.2,还要注意Path变量要加入%HADOOP_HOME%bin。 2.还要安装hadoop windows的winuti

    2024年02月12日
    浏览(36)
  • 在 IntelliJ IDEA 中使用 Hadoop

    前提 已经安装好Hadoop和IDEA jdk1.8 配置过程 打开 IDEA 开发环境,然后单击“File”菜单,选择“Settings”。 在弹出的对话框中,选择“Plugins”选项卡,在搜索框中输入“Hadoop”,找到并安装“Big Data Tools”插件。 安装完毕后,重启IDEA ,再次打开\\\"Settings\\\"。此时,在 工具 下方的

    2024年02月10日
    浏览(22)
  • Hadoop系统应用之MapReduce相关操作【IDEA版】---经典案例“倒排索引、数据去重、TopN”

      倒排索引是文档检索系统中最常用的数据结构,被广泛应用于全文搜索引擎。倒排索引主要用来存储某个单词(或词组)在一组文档中的存储位置的映射,提供了可以根据内容来查找文档的方式,而不是根据文档来确定内容,因此称为倒排索引(Inverted Index)。带有倒排索引

    2024年02月07日
    浏览(48)
  • 用vue实现列表的增删改查基本功能(简单易懂)

    目录 文章目录 前言 一、安装vue 二、使用vue 三、相关代码 四、效果图如下 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 vue开发文档参考

    2024年02月11日
    浏览(40)
  • IDEA 运行hql 出现FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTas

    启用的hiveserver2 的模拟用户功能 ,依赖于Hadoop 提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户身份访问 Hadoop集群。 因此,需要将hiverserver2 的启动用户设置为 Hadoop 的代理用户 修改hadoop 配置文件 core-site.xml 添加如下配置 重启Hadoop 以及Hive 再次运

    2024年02月11日
    浏览(45)
  • 使用 IntelliJ IDEA 运行 Java 前端

    IntelliJ IDEA 是一款功能强大的集成开发环境(IDE),它提供了丰富的功能和工具,方便开发人员编写、调试和运行代码。在本文中,我们将探讨如何使用 IntelliJ IDEA 运行 Java 前端应用程序。 安装 IntelliJ IDEA 首先,您需要下载并安装 IntelliJ IDEA。您可以从 JetBrains 官方网站(ht

    2024年02月04日
    浏览(58)
  • idea 打 jar 包以及运行使用

    1. 在 idea 右侧点击 maven 2. 点击Lifecycle——》clean 运行 3. 点击 Lifecycle——》compile 4. 点击 Lifecycle——》package 5. 打成的 jar 包可以在 target中找到 6. jar 包的名字和版本可以在 pom.xml文件中设置  7. 注意事项: 打 jar 包的时候 test 里的 test 类中不能有代码,如果有会报错,可以注

    2024年02月10日
    浏览(25)
  • IDEA的火焰图简单使用

    简单来说就是用来查看程序耗时的一张图 如何读懂火焰图? 找了一圈,原来idea原本就支持… 可以看到 ss 函数跑了接近219s 火焰图如下: 没想到还要点击火焰图上的➕ 现在可以看到 ss 函数的恐怖耗时了吧。也可以看到打印出来这个系统调用的耗时挺大。

    2024年02月16日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包