Hive实战:实现数据去重

这篇具有很好参考价值的文章主要介绍了Hive实战:实现数据去重。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实战概述

  • 在本次实战任务中,我们利用Hive大数据处理框架对三个文本文件(ips01.txt、ips02.txt、ips03.txt)中的IP地址进行了整合与去重。首先,在虚拟机上创建了这三个文本文件,并将它们上传至HDFS的/deduplicate/input目录下作为原始数据源。接着,启动了Hive Metastore服务和客户端,以管理和访问元数据信息。
  • 通过Hive SQL语句创建了一个外部表unique_ips,该表的每一行存储一个IP地址,字段间采用换行符\n进行分隔,这样便能正确读取到HDFS上的原始IP列表数据。为了实现去重目标,进一步创建了新的内部表deduplicated_ips,并使用DISTINCT关键字从unique_ips表中提取出不重复的IP地址记录。
  • 最后,执行SQL查询语句查看deduplicated_ips表的内容,如果输出结果中不存在重复IP,则表示去重过程顺利完成。整个过程展示了Hive在处理大规模文本数据时,能够高效地进行数据加载、表结构定义、数据清洗以及数据去重等操作,充分体现了其在大数据处理领域的强大功能与便捷性。

二、提出任务

  • ips01.txt
192.168.1.1
172.16.0.1
10.0.0.1
192.168.1.2
192.168.1.3
172.16.0.2
10.0.0.2
192.168.1.1
172.16.0.1
10.0.0.3

Hive实战:实现数据去重,hive

  • ips02.txt
192.168.1.4
172.16.0.3
10.0.0.4
192.168.1.5
192.168.2.1
172.16.0.4
10.0.1.1
192.168.1.1
172.16.0.1 
10.0.0.1 

Hive实战:实现数据去重,hive

  • ips03.txt
192.168.1.6
172.16.1.1
10.0.2.1
192.168.1.7
192.168.3.1
172.16.0.5
10.0.0.5
192.168.1.1
172.16.0.1
10.0.0.3

Hive实战:实现数据去重,hive

  • 目标是将这三个文本文件中的IP地址整合并去除重复项,最终得到一个仅包含唯一IP地址的结果集。

192.168.1.1
172.16.0.1
10.0.0.1
192.168.1.2
192.168.1.3
172.16.0.2
10.0.0.2
192.168.1.4
172.16.0.3
10.0.0.3
192.168.1.5
192.168.2.1
172.16.0.4
10.0.1.1
192.168.1.6
172.16.1.1
10.0.2.1
192.168.1.7
192.168.3.1
172.16.0.5
10.0.0.5

三、完成任务

(一)准备数据

1、在虚拟机上创建文本文件

  • 在master虚拟机上使用文本编辑器创建三个文件:ips01.txt, ips02.txt, ips03.txt,并确保每个文件内存储的是纯文本格式的IP地址列表。

2、上传文件到HDFS指定目录

  • 在master虚拟机上创建HDFS上的/deduplicate/input目录,用于存放待处理的原始数据文件。
  • 执行命令:
    hdfs dfs -mkdir -p /deduplicate/input
  • 将本地创建的三个文本文件上传至HDFS的/deduplicate/input目录
  • 执行命令:
    hdfs dfs -put ips01.txt /deduplicate/input/
    hdfs dfs -put ips02.txt /deduplicate/input/
    hdfs dfs -put ips03.txt /deduplicate/input/
    Hive实战:实现数据去重,hive

(二)实现步骤

1、启动Hive Metastore服务

  • 启动Hive Metastore服务,确保Hive可以正确管理和访问元数据信息
  • 执行命令:hive --service metastore &
    Hive实战:实现数据去重,hive

2、启动Hive客户端

  • 打开Hive客户端连接到Hive服务

3、基于HDFS数据文件创建Hive外部表

  • 基于HDFS数据文件创建Hive外部表,执行语句
CREATE EXTERNAL TABLE unique_ips (ip string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\n'
LOCATION '/deduplicate/input';

Hive实战:实现数据去重,hive

  • 这里创建了一个名为unique_ips的外部表,字段为单列ip,每一行代表一个IP地址。由于我们的数据文件中每个IP地址占一行,所以字段间用换行符\n分隔。

4、利用Hive SQL实现去重

CREATE TABLE deduplicated_ips AS
SELECT DISTINCT ip FROM unique_ips;

Hive实战:实现数据去重,hive
通过上述SQL语句,我们在Hive内部创建了一个新的表deduplicated_ips,其中存储了从unique_ips表中提取的所有不重复的IP地址。

5、检查是否实现去重

  • 最后,检查deduplicated_ips表的内容以确认去重是否成功执行

  • 执行命令:SELECT * FROM deduplicated_ips;
    Hive实战:实现数据去重,hive

  • 若输出结果中没有重复的IP地址,则说明去重任务已经顺利完成。

  • 通过以上步骤,我们成功地利用Hive框架完成了对多个文本文件中的IP地址进行去重的任务,展示了Hive在大数据处理中的强大能力和便捷性。文章来源地址https://www.toymoban.com/news/detail-792167.html

到了这里,关于Hive实战:实现数据去重的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Hive实战练习(包含数据集)

    数据集直链下载(100MB): https://www.123pan.com/s/T1n0Vv-mTc3d 1.创建数据库 2.切换到数据库 3.创建原始数据表:gulivideo,gulivideo_user 4.上传数据到hdfs 3.1统计视频观看数 Top10 3.2统计视频类别热度 Top10 (1)即统计每个类别有多少个视频,显示出包含视频最多的前 10 个类别。 (2)我

    2024年02月16日
    浏览(38)
  • 大数据开发——Hive实战案例

    由于使用的是orc方式进行存储,所以我们需要建立一个临时表,通过查询插入的方式将数据插入到最终表中。 创建临时视频表 创建临时用户表 加载原数据到临时表 创建视频表 创建用户表 由于初始表和最终表他们两者中的结构都是一样的,所以对其中一种进行解读 对于用户

    2023年04月09日
    浏览(32)
  • Hive实战 —— 电商数据分析(全流程详解 真实数据)

    该实战项目的目的在于通过基于 小型数据的Hive数仓构建 进行的业务分析来做到 以小见大 ,熟悉实际生产情况下构建Hive数仓解决实际问题的场景。本文内容较多,包含了从前期准备到数据分析的方案,代码,问题,解决方法等等, 分析的数据文件 和 Zeppelin中的源文件 都已

    2024年02月21日
    浏览(44)
  • 大数据开发之Hive(详细版,最后有实战训练)

    1.1.1 Hive产生背景 HDFS来存储海量的数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量的数据和负责的业务逻辑,开发人员要编写MR对数据进行统计分析难度极大,所以就产生了Hive这个数仓工具。Hive可以帮助开发人员将SQL语句转化

    2024年01月18日
    浏览(49)
  • 【大数据hive】hive 拉链表设计与实现

    目录 一、前言 二、拉链表业务背景 2.1 数据同步引发的问题 2.1.1 解决方案1

    2024年02月09日
    浏览(35)
  • [实战-10]FlinkSql 如何实现数据去重?

    很多时候flink消费上游kafka的数据是有重复的,因此有时候我们想数据在落盘之前进行去重,这在实际开发中具有广泛的应用场景,此处不说详细代码,只粘贴相应的flinksql

    2024年02月03日
    浏览(37)
  • flink sql 实战实例 及延伸问题:聚合/数据倾斜/DAU/Hive流批一体 等

    ⭐ 需求:上游是一个 kafka 数据源,数据内容是用户 QQ 等级变化明细数据(time,uid,level)。需要你求出当前每个等级的用户数。 ⭐ 需求:数据源:用户心跳日志(uid,time,type)。计算分 Android,iOS 的 DAU,最晚一分钟输出一次当日零点累计到当前的结果。 经过测试 在fl

    2024年02月22日
    浏览(49)
  • 大数据 Hive - 实现SQL执行

    MapReduce的出现大大简化了大数据编程的难度,使得大数据计算不再是高不可攀的技术圣殿,普通工程师也能使用MapReduce开发大数据程序。 但是对于经常需要进行大数据计算的人,比如从事研究商业智能(BI)的数据分析师来说,他们通常使用SQL进行大数据分析和统计,MapRed

    2024年02月02日
    浏览(43)
  • 【Flink-Kafka-To-Hive】使用 Flink 实现 Kafka 数据写入 Hive

    需求描述: 1、数据从 Kafka 写入 Hive。 2、相关配置存放于 Mysql 中,通过 Mysql 进行动态读取。 3、此案例中的 Kafka 是进行了 Kerberos 安全认证的,如果不需要自行修改。 4、Flink 集成 Kafka 写入 Hive 需要进行 checkpoint 才能落盘至 HDFS。 5、先在 Hive 中创建表然后动态获取 Hive 的表

    2024年02月03日
    浏览(53)
  • 【Hive实战】Hive 物化视图

    始于Hive3.0.0 传统上,用于加速数据仓库查询处理的最强大的技术之一是预先计算相关的摘要或物化视图。 在Apache Hive 3.0.0中,主要是在项目中引入物化视图和基于这些物化的自动查询重写。特别是,物化视图可以原生存储在Hive中,也可以使用自定义存储处理程序存储在其他

    2024年02月12日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包