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的相关操作


相关文章
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
1371 70
|
10月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
644 27
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
733 6
|
10月前
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
1215 18
|
12月前
|
IDE 程序员 开发工具
只用正版!教你5个方法,白嫖JetBrains家族的所有产品,包含:IntelliJ IDEA、PyCharm、WebStorm、CLion、Rider
程序员晚枫分享了5种官方认证的免费使用JetBrains家族产品的方法,包括内容创作者计划、开源项目支持、教育许可证、用户组支持和开发者认可计划。这些方法帮助个人开发者与小型团队合法获取强大开发工具,如IntelliJ IDEA、PyCharm等,降低开发成本,提升效率。同时提醒大家遵守使用规范,尊重知识产权。
2146 13
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
1375 0
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
1106 1
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
2269 1
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
5786 1
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
649 0

相关实验场景

更多