IntelliJ IDEA实现Hadoop读写HDFS文件(非Maven、离线版)

简介: IntelliJ IDEA实现Hadoop读写HDFS文件(非Maven、离线版)

0x00 教程内容


  1. 新建Java项目
  2. 编写HDFS读写代码
  3. 打包到服务器执行

实验前提:


a. 安装好了JDK


0x01 新建Java项目



1. 新建Java项目

a. 新建一个Java项目,配置好Project SDK,然后NextNext,起个有意义的项目名hadoop-project


image.png


b. 如果有提示,可以随便选一个


image.png


2. 项目配置

a. 右击src,建一个包,比如:com.shaonaiyi


image.png


b. 然后编辑项目结构,确保我们的SDKS已经配置上了我们的JDK(找到我们win本地的JDK主目录即可):


image.png


导入之后点击OK

c. 导入我们的HDFS依赖的jar包,一个是公共包,一个是HDFS的依赖包(然后OK):


image.png


0x02 编写HDFS代码


1. 编写写HDFS代码

a. 新建一个WriteFile

b. 编写WriteFile类代码:


package com.shaonaiyi;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;
public class WriteFile {
    public static void main(String[] args) throws IOException {
        String content = "Hello,shaonaiyi!\n";
        String dest = "hdfs://master:9999/test.txt";
        Configuration configuration = new Configuration();
        FileSystem fileSystem = FileSystem.get(URI.create(dest), configuration);
        FSDataOutputStream out = fileSystem.create(new Path(dest));
        out.write(content.getBytes("UTF-8"));
        out.close();
    }
}


2. 编写读HDFS代码

a. 新建一个ReadFile

b. 编写ReadFile类代码:

package com.shaonaiyi;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.*;
import java.net.URI;
public class ReadFile {
    public static void main(String[] args) throws IOException {
        String dest = "hdfs://master:9999/test.txt";
        Configuration configuration = new Configuration();
        FileSystem fileSystem = FileSystem.get(URI.create(dest), configuration);
        FSDataInputStream in = fileSystem.open(new Path(dest));
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
        in.close();
    }
}


0x03 打包到服务器执行


1. 设置打包工程

a. 选择一种类型的包


image.png


b. 因为我们有几个main方法,所以我们可以不选择main方法,直接点击OK


image.png


c. 排除我们服务器上有的包,即服务器已经有的jar包就不用也把他们打包上去了。


image.png


然后一直ok,执行完,稍等一会可以看到src同级目录下多了个out文件夹。

2. 打包操作

a. 打包


image.png


b. 执行完可以看到out目录有jar包了


image.png


3. 上传服务器并执行

a. 使用XFtp等工具上传jar包和项目下的即可(此处直接上传到~路径)

hadoop-project.jar

~路径下

b. 启动hdfs

$HADOOP_HOME/sbin/start-dfs.sh


0x04 执行结果展示


c. 执行(在jar包当前路径下):

先执行写HDFS的代码(如HDFS上已有/test.txt文件会报错,请先删除或者换名字):

hadoop jar hadoop-project.jar com.shaonaiyi.WriteFile

查看是否写内容进去:

hadoop fs -cat /test.txt


image.png


执行读HDFS的代码:

hadoop jar hadoop-project.jar com.shaonaiyi.ReadFile

可以看到展示的效果:


image.png


0xFF 总结


本教程不用联网也可以执行HDFS的读写操作,此外,一样也可以执行Spark、机器学习等案例。

本教程非常关键,因为网络不好或者是简单的项目,这种传统的方式也是非常简单方便的。

关于HDFS的其他相关操作(Maven版本),请查看教程:Java API实现HDFS的相关操作


相关文章
|
1月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
29天前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
72 1
|
1月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
1月前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
66 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
1月前
|
Java Maven
intellij idea如何查看项目maven依赖关系图
这篇文章介绍了如何在IntelliJ IDEA中查看项目的Maven依赖关系图,包括使用Maven工具栏和相关操作来展示和查看依赖细节。
|
1月前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
31 1
|
1月前
|
Java Maven Spring
Maven重打包问题之maven-shade-plugin插件对于重复的class文件会如何处理
Maven重打包问题之maven-shade-plugin插件对于重复的class文件会如何处理
|
1月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
32 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
1月前
|
Java Maven
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
这篇文章提供了在IntelliJ IDEA中设置新项目的Maven配置的详细步骤,包括如何通过菜单路径进入设置,选择Maven配置,以及展示设置后的效果,还提供了Maven的安装教程和解决导入项目时jar包下载问题的方案。
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
|
1月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)

推荐镜像

更多