Hive实战:实现数据去重

一、实战概述

  • 在本次实战任务中,我们利用Hive处理大数据场景,针对三个文本文件中的IP地址数据进行整合与去重。
  • 首先将文本文件上传至HDFS的指定目录作为输入源,随后通过启动Hive服务搭建元数据管理环境。创建了外部表unique_ips以加载并列存储文本数据中的IP地址,每行一个IP且用换行符分隔。
  • 为达到去重目的,进一步创建内部表deduplicated_ips,并运用DISTINCT关键词从unique_ips中筛选出不重复IP记录。
  • 最后,通过查询deduplicated_ips表验证去重结果的有效性。整个过程展示了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
  • 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 
  • 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
  • 目标是将这三个文本文件中的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 dfs -put ips01.txt /deduplicate/input/
hdfs dfs -put ips02.txt /deduplicate/input/
hdfs dfs -put ips03.txt /deduplicate/input/

(二)实现步骤

1、启动Hive Metastore服务

  • 启动Hive Metastore服务,确保Hive可以正确管理和访问元数据信息
  • hive --service metastore &

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';

在这里插入图片描述

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

4、利用Hive SQL实现去重

在Hive内部创建了一个新的表deduplicated_ips,其中存储了从unique_ips表中提取的所有不重复的IP地址。

CREATE TABLE deduplicated_ips AS
SELECT DISTINCT ip FROM unique_ips;

在这里插入图片描述

5、检查是否实现去重

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

在这里插入图片描述

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

  • 通过以上步骤,我们成功地利用Hive框架完成了对多个文本文件中的IP地址进行去重的任务,展示了Hive在大数据处理中的强大能力和便捷性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值