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

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 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的相关操作


相关文章
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
553 34
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
405 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
240 3
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
326 2
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
309 1
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
503 1
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
779 0
|
存储 分布式计算 Hadoop
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
848 27
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
1785 18

相关实验场景

更多

推荐镜像

更多