【大数据处理技术】实验3

article/2025/10/3 13:39:25

一、安装Eclipse

1.下载Eclipse(我使用Xftp传输的,大家可以直接在虚拟机中下载)

下载链接:https://www.eclipse.org/downloads/package

2.解压Eclipse

3.桌面显示Eclipse图标

在终端输入:cd /usr/share/applications/

在终端输入:ls

查看有无:eclipse.desktop文件,若没有,在终端输入:cp xxx.desktop eclipse.desktop,有就跳过这一步;命令行必须在进入cd /usr/share/applications/后输入,xxx是文件名,任意找一个存在的文件进行复制

在终端输入:sudo gedit eclipse.desktop,打开eclipse.desktop文件

在打开的eclipse.desktop文件中,进行修改,修改后的内容如下:

[Desktop Entry]

Encoding=UTF-8

Name=Eclipse

Comment=Eclipse

Exec=/usr/local/SoftWare/Eclipse/eclipse/eclipse 

Icon=/usr/local/SoftWare/Eclipse/eclipse/icon.xpm

Terminal=false

StartupNotify=true

Type=Application

Categories=Application;Development;

原文链接:https://blog.csdn.net/weixin_44941350/article/details/122380269

4.配置Eclipse(JDK)

新建JavaProject

二、生成文件

1.打开HDFS 

利用Shell命令与HDFS进行交互

Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。实际上有三种shell命令方式。
1. hadoop fs : 适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
2. hadoop dfs : 只能适用于HDFS文件系统
3. hdfs dfs : 只能适用于HDFS文件系统

我们可以在终端输入如下命令,查看fs总共支持了哪些命令

2.创建目录

3.创建文件

记得在文件里写入内容(vim)

4.将文件上传到hdfs://localhost:9000/user/liuhao

三、编写Java代码

(此处使用IDEA编写,因为界面好看^_^)

1.注意导入jar包!

2.编写Java代码

import java.io.IOException;

import java.io.PrintStream;

import java.net.URI;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.*;

/**过滤掉文件名满足特定条件的文件 */

class MyPathFilter implements PathFilter {

     String reg = null;

     MyPathFilter(String reg) {

          this.reg = reg;

     }

     public boolean accept(Path path) {

if (!(path.toString().matches(reg)))

return true;

return false;

}

}

/** 利用FSDataOutputStream和FSDataInputStream合并HDFS中的文件 */

public class MergeFile {

Path inputPath = null; //待合并的文件所在的目录的路径

Path outputPath = null; //输出文件的路径

public MergeFile(String input, String output) {

this.inputPath = new Path(input);

this.outputPath = new Path(output);

}

public void doMerge() throws IOException {

Configuration conf = new Configuration();

conf.set("fs.defaultFS","hdfs://localhost:9000");

          conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");

FileSystem fsSource = FileSystem.get(URI.create(inputPath.toString()), conf);

FileSystem fsDst = FileSystem.get(URI.create(outputPath.toString()), conf);

//下面过滤掉输入目录中后缀为.doc的文件

FileStatus[] sourceStatus = fsSource.listStatus(inputPath,

new MyPathFilter(".*\\.doc"));

FSDataOutputStream fsdos = fsDst.create(outputPath);

PrintStream ps = new PrintStream(System.out);

//下面分别读取过滤之后的每个文件的内容,并输出到同一个文件中

for (FileStatus sta : sourceStatus) {

//下面打印后缀不为.abc的文件的路径、文件大小

System.out.print("路径:" + sta.getPath() + "    文件大小:" + sta.getLen()

+ "   权限:" + sta.getPermission() + "   内容:");

FSDataInputStream fsdis = fsSource.open(sta.getPath());

byte[] data = new byte[1024];

int read = -1;

while ((read = fsdis.read(data)) > 0) {

ps.write(data, 0, read);

fsdos.write(data, 0, read);

}

fsdis.close();

}

ps.close();

fsdos.close();

}

public static void main(String[] args) throws IOException {

MergeFile merge = new MergeFile(

"hdfs://localhost:9000/user/liuhao/",

"hdfs://localhost:9000/user/liuhao/file123.txt");

merge.doMerge();

}

}

【注意:把liuhao改成自己的名字!】

3.运行结果


http://chatgpt.dhexx.cn/article/cEKSSyd1.shtml

相关文章

处理大数据需要哪些技术

大数据之所以能够从概念走向落地,说到底还是因为大数据处理技术的成熟,面对海量的数据,在有限的硬件条件下,以低成本满足大数据处理的各种实际需求。那么具体处理大数据需要哪些技术,今天我们来简单介绍一下大数据核心…

干货 | 大数据处理技术的总结与分析

一 、数据分析处理需求分类 1、事务型处理 在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。 这类系统数据处理特点包括以下几点: 一是事…

大数据技术介绍

为了方便大家梳理清楚大数据学习路线,本文从以下四个方面来介绍大数据技术: 大数据技术栈 大数据发展史 大数据应用 大数据开发岗位 一、大数据技术栈 之前有同事问我怎么转大数据开发,他在网上搜了一堆大数据相关的技术,但是不…

大数据时代:大数据处理技术及采集方法

在大数据时代,传统的大数据处理技术还管用吗? 大数据处理环节下的需求 大数据环节下的数据来源是非常多,而且类型也很多花样,存储和数据处理的需求量很大,对于数据展现也非常的高,并且很看重数据处理的高效性和可用…

大数据处理的关键技术有哪些?

数据关键技术涵盖数据存储、处理、应用等多方面的技术,根据大数据的处理过程,可将其分为大数据采集、大数据预处理、大数据存储及管理、大数据处理、大数据分析及挖掘、大数据展示等。 1、大数据采集技术 大数据采集技术是指通过 RFID 数据、传感器数据…

大数据处理关键技术主要有五种,具体指的是什么?

大数据技术 ,就是从各种类型的数据中快速获得有价值信息的技术。 大数据 领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用…

数据分析|SQL面试题集锦

https://zhuanlan.zhihu.com/p/136619982 https://www.cnblogs.com/diffrent/p/8854995.html 1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王…

Sql面试50题 详解 持续更新

Sql面试50题 前言:此文章是根据【数据分析】- SQL面试50题 - 跟我一起打怪升级 一起成为数据科学家 学习整理而来,仅供复习参考。 建表与插入数据 --建立学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT , s_bi…

大厂SQL面试题,连续时间问题

今天分享一个非常常考,同时也不太容易的sql题目类型,求连续时间问题。 这类题的核心是:分组排序,用时间减去排序,如果连续的话他们的差会是相同值 记住下面的表,按照提供的三步思路理清楚里面的数据逻辑&a…

经典Hive-SQL面试题及答案

目录 第一题 求分区累加值 第二题 UV和每个店铺访问量top3信息 Hive sql解答 第一题 求分区累加值 我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/…

吊打面试官之SQL面试题30问及答案

经典SQL30问一: 编写查询,查找表中的行总数。编写查询,消除表结果中的重复记录。编写查询,获取t_employee表中designation字段前3个字符。查询t_employee表,合并输出Designation和Department两个字段的内容。如果使用union和union all合并4条SQL子查询,union会有多少次被用来去…

pl sql面试题_PL SQL面试问答

pl sql面试题 If you have worked on Oracle database and going for an interview, you should go through PL SQL interview questions and answers. 如果您曾经在Oracle数据库上工作过并且要进行面试,则应该阅读PL SQL面试问题和答案。 PLSQL stands for Procedural Langu…

常见的sql面试题

本章是SQL面试题的汇总,之后还会不断更新,文章的思维导图如下: 1.SQL初级查询 单表查询 -- 查询学生表中有几名学生的信息.显示学号 select distinct 学号 from student;查询条件 -- 查询学生表中性别为女的学生所有信息 SELECT * FROM student WHERE 性别女;结果排序 -- …

美团/得物sql面试题

解题思路: 1.找出uid不同的但是买过pro_id相同的商品的用户 [自连接] selecta.uid,b.pro_id fromtb_order ajoin tb_order bon a.pro_id b.pro_id where a.uid <> b.uid -- 找出uid不同的但是pro_id相同的商品2.对uid和pro_id进行分组 selecta.uid,a.pro_id fromtb…

Spark SQL面试题

1.RDD DataFrame DataSet的区别 &#xff08;1&#xff09; 三者之间的关系 DataFrame是特殊的RDD(它相当于RDDschema&#xff0c;即RDD表信息)&#xff0c;可以将他看成数据库中的一张数据表&#xff0c;但是只知道这个"表"中的各个字段&#xff0c;不知道各个字段…

SQL常见面试题

SQL常见面试题关系型数据库&#xff08;SQL&#xff09;非关系型数据库&#xff08;NoSQL&#xff09;数据库三大范式主键与外键CHAR与VRCHAR数据类型临时表数据库函数、触发过程与存储器 SQL语句SQL语言分类DROP、TRUNCATE、DELETE的区别sum、count(\*)、count(1)、count(colu…

常见的SQL面试题:经典50例

SQL基础知识整理 select 查询结果&#xff0c;如: [学号,平均成绩&#xff1a;组函数avg(成绩)] from 从哪张表中查找数据&#xff0c;如:[涉及到成绩&#xff1a;成绩表score] where 查询条件&#xff0c;如:[b.课程号0003 and b.成绩>80] group by 分组&#xff0c;如:…

5个必考的大厂SQL面试题

学Python的同学&#xff0c;SQL也一定要学习&#xff0c;SQL几乎是每个数据岗的必备题目&#xff0c;下面分享几个常见的大厂SQL习题。 &#xff08;1&#xff09;找出连续7天登陆&#xff0c;连续30天登陆的用户&#xff08;小红书笔试&#xff0c;电信云面试&#xff09;&am…

7 大开源数据库利弊全对比

1、CUBRID CUBRID 是一个很好的免费开源选择&#xff0c;专门针对 Web 应用程序进行优化&#xff0c;当复杂的 Web 服务需要处理大量数据并生成巨大的并发请求时&#xff0c;CUBRID 非常有用。这个解决方案是用 C 写的。 优点&#xff1a; 多粒度锁定 在线备份 用于开发语言…

还在用Navicat?这款开源的数据库管理工具界面更炫酷!

数据库管理工具&#xff0c;是后端程序员使用频率非常高的的工具。Navicat、DataGrip虽然很好用&#xff0c;但都是收费的。最近在逛Github的时候&#xff0c;无意间发现了一款开源的数据库管理工具Beekeeper Studio&#xff0c;界面非常炫酷推荐给大家&#xff01; Beekeeper…