文章目录
一、实战概述
- 本实战项目主要利用
Hive
对多个文本文件中的IP地址进行整合并去除重复项。首先,在虚拟机上创建了三个包含IP地址列表的文本文件(ips01.txt
、ips02.txt
、ips03.txt
),并将这些文件上传至HDFS
上的/deduplicate/input
目录作为原始数据。 - 接着在
hive
中创建相对应的数据表ips,并将HDFS
中三个文本文件内容导入到数据表ips
中 - 最后通过查询实现去重
二、提出任务
三个包含IP地址列表的文本文件(ips01.txt、ips02.txt、ips03.txt)
ips01.txt
192.168.234.21
192.168.234.22
192.168.234.21
192.168.234.21
192.168.234.23
192.168.234.21
192.168.234.21
192.168.234.21
- ips02.txt
192.168.234.25
192.168.234.21
192.168.234.21
192.168.234.26
192.168.234.21
192.168.234.27
192.168.234.21
192.168.234.27
192.168.234.21
- ips03.txt
192.168.234.29
192.168.234.21
192.168.234.26
192.168.234.21
192.168.234.25
192.168.234.25
192.168.234.21
192.168.234.22
192.168.234.21
- 使用
Hive
,实现网址去重
三、完成任务
(一)准备数据
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/
- 执行上述命令
(二)实现步骤
1、 启动hadoop服务
2、启动Hive Metastore服务
- 执行命令:
hive --service metastore &
,在后台启动metastore
服务
3、启动Hive客户端
- 执行命令:
hive
,看到命令提示符hive>
4、创建IP表
- 执行命令:
create table ips( name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '';
5、 导入hdfs数据到hive数据表ips中
load data inpath '/deduplicate/input/ips01.txt' into table ips;
load data inpath '/deduplicate/input/ips02.txt' into table ips;
load data inpath '/deduplicate/input/ips03.txt' into table ips;
6、查询总数据,执行命令select * from ips;
- 能够查到三个文件合成的数据,但是有很多重复的
7、 使用查询去重,执行语句select distinct * from ips;