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

2、启动Hive客户端
- 执行命令:
hive,看到命令提示符hive>

3、基于HDFS数据文件创建Hive外部表
- 基于HDFS数据文件创建Hive外部表,执行语句
CREATE EXTERNAL TABLE ips (ip STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\n' LOCATION '/deduplicate/input'; - 这里创建了一个名为
ips的外部表,字段为单列ip,每一行代表一个IP地址。由于我们的数据文件中每个IP地址占一行,所以字段间用换行符\n分隔。

4、利用Hive SQL实现去重
- 基于查询结果创建新表
CREATE TABLE deduplicated_ips AS SELECT DISTINCT ip FROM ips; - 通过上述SQL语句,我们在Hive内部创建了一个新的表
deduplicated_ips,其中存储了从unique_ips表中提取的所有不重复的IP地址。

5、检查是否实现去重
- 最后,检查
deduplicated_ips表的内容以确认去重是否成功执行 - 执行语句:
SELECT * FROM deduplicated_ips;

- 若输出结果中没有重复的IP地址,则说明去重任务已经顺利完成。
四、实战总结
- 本实战通过Hive对三个文本文件中的IP地址数据进行整合去重。首先在虚拟机创建并上传文本至HDFS,接着启动Hive服务与客户端,创建外部表加载数据,并用DISTINCT从原始表中提取不重复IP至新内部表,最终成功实现去重目标,展示了Hive处理大规模文本数据的高效能与便捷性。
相关文章:
Hive实战:网址去重
文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 (二)实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS数据文件创建Hive外部表4、利用Hive SQL实…...
206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-最大N个数与最小N个数的和二.解题思路三.题解代…...
【刷题日记】青少年CTF-Misc(一)
靶场链接 青少年CTF Markdown 题目难度:★ 题目描述:s0ng师傅发现M0x1n师傅特别喜欢用这个写文档,你知道M0x1n这次把FLAG放到哪里了吗?flag格式为:qsnctf{xxx}。 下载附件,打开即可看到flag flag qsnc…...
《未知星途:自我掌握命运》
最近在追一部叫《吞噬星空》的国产动漫,由此引发了我对于人类命运的思考。 在宇宙的无边黑暗中,我们仰望星空,对于外星生命的想象如同星云般浩渺。外星生命,或许是以我们无法想象的形态存在着,可能是以光辉的气体、晶莹…...
一个简单的KNN实现方法
对于许多离散问题,经过神经网络解决再通过softmax之后每一个值在[0,1]之间的连续变量,想要将其离散化,即离散化到每个元素都是 binary-variable,即 0-1 ,这时可以用KNN方法,其实就是找到与这个向量的方差最…...
Vue实现加减法验证码
引入Vue.js 在HTML文件的<head>标签中引入Vue.js的CDN链接: <script src"https://cdn.jsdelivr.net/npm/vue2.6.11/dist/vue.min.js"></script>创建Vue实例 接下来,我们要创建一个Vue实例,并将其挂载到HTML文…...
PDF最强处理工具-StirlingPDF
Stirling-PDF 一个功能强大的本地托管的基于 Web 的 PDF 操作工具,这个软件最初是使用 ChatGPT 制作的,持续的版本迭代更新,支持对 PDF 文件执行各种操作,例如拆分合并、转换、重组、添加图像、旋转、压缩等。完全开源免费&#x…...
SpringCloud系列篇:入门讲解Spring Cloud是什么
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Spring Cloud是什么 二.Spring …...
GEE:随机数
作者:CSDN _养乐多_ 本文将介绍在 Google Earth Engine(GEE)上生成随机数的 API,可以指定随机数的生成范围、类型(整型、浮点型)、分布方式(均匀分布、正态分布)。 文章目录 一、随…...
H266/VVC率失真优化与速率控制概述
率失真优化技术 率失真优化: 视频编码的主要目的是在保证一定视频质量的条件下尽量降低视频的编码比特率,或者在一定编码比特率限制条件下尽量地减小编码失真。在固定的编码框架下,为了应对不同的视频内容,往往有多种候选的编码方…...
thinkphp6入门(14)-- 多关联模型查询
背景: 有3个数据表,一个User表,一个Cloth表,一个Shoe表。 Cloth表和Shoe表分别和User表通过user_id关联。 thinkphp 6中如何通过模型查询所有用户,其中包括每个用户的cloth和shoe。 多关联模型查询: 1.…...
MT8766安卓核心板规格参数_MTK8766核心板模块方案定制
MT8766安卓核心板:高性能、稳定可靠、集成度高的一体化解决方案 MT8766安卓核心板采用联发科MTK8766四核4G模块方案,是一款高度集成的安卓一体板。四核芯片架构,主频可达到2.0GHz,支持国内4G全网通。12nm制程工艺,支持…...
k8s的声明式资源管理(yaml文件)
1、声明式管理的特点 (1)适合对资源的修改操作 (2)声明式管理依赖于yaml文件,所有的内容都在yaml文件当中 (3)编辑好的yaml文件,还是要依靠陈述式的命令发布到k8s集群当中 kubect…...
Qt中图片旋转缩放操作
在我们开发过程中,难免会遇到加载图片的问题,在上一个开发项目里我就遇到了图片缩放的问题,所以,我决定将这一部分好好研究,记录下来,希望对大家有帮助哟~ 在讲解之前,我们先看一看具体的展示效…...
LeetCode 2125. 银行中的激光束数量【数组,遍历】1280
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
关于图像分割任务中按照比例将数据集随机划分成训练集和测试集
1. 前言 之前写了分类和检测任务划分数据集的脚本,三大任务实现了俩,基于强迫症,也实现一下图像分割的划分脚本 分类划分数据:关于图像分类任务中划分数据集,并且生成分类类别的josn字典文件 检测划分数据ÿ…...
回文链表【链表】
Problem: 234. 回文链表 文章目录 思路 & 解题方法复杂度Code 思路 & 解题方法 先转成列表。 复杂度 时间复杂度: 添加时间复杂度, 示例: O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例: O ( n ) O(n) O(n) Code # Definition for si…...
Linux Perf 介绍
文章目录 前言 二、安装Perf三、二级命令3.1 perf list3.2 perf record/report3.3 perf stat3.4 perf top 四、使用火焰图进行性能分析4.1 下载火焰图可视化生成器4.2 使用perf采集数据4.3 生成火焰图参考资料 前言 perf是一款Linux性能分析工具,内置在Linux内核的…...
【论文阅读】Variational Graph Auto-Encoder
0、基本信息 会议:2016-NIPS作者:Thomas N. Kipf,Max Welling文章链接:Variational Graph Auto-Encoder代码链接:Variational Graph Auto-Encoder 1、介绍 本文提出一个变分图自编码器,一个基于变分自编…...
如何把电脑中的项目快速传进Github中?
一、打开GitHub网站:https:github.com 登录自己的个人账号 1.新建一个项目 2.用鼠标直接拖拽电脑中的项目文件夹与文件到新创建的项目中点击保存即可。...
帧差法实战避坑:为什么你的运动检测总是有‘鬼影’?三帧差法参数调优全解析
帧差法实战避坑:为什么你的运动检测总是有‘鬼影’?三帧差法参数调优全解析 当你第一次尝试用帧差法实现运动检测时,那种兴奋感可能很快就会被现实浇灭——屏幕上那些模糊的拖影、闪烁的噪点,还有那些明明没有物体移动却不断跳动的…...
FDS火灾动力学模拟器完整指南:从入门到精通建筑消防安全分析
FDS火灾动力学模拟器完整指南:从入门到精通建筑消防安全分析 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 想要准确预测火灾中的烟雾扩散路径?需要科学评估建筑物的人员疏散时间?F…...
SpringBoot项目整合Redisson实战:从连接池报错到Redis集群健康检查的完整避坑指南
SpringBoot整合Redisson深度实践:连接池优化与集群健康监控全解析 Redis作为分布式系统的核心组件,其Java客户端Redisson的高阶用法一直是开发者关注的焦点。去年某电商平台大促期间,因Redis集群节点闪断导致的分布式锁失效事故,让…...
wpa_supplicant与eloop机制:如何用C语言实现高效事件驱动框架
wpa_supplicant与eloop机制:如何用C语言实现高效事件驱动框架 在当今高并发的网络编程领域,事件驱动模型因其高效的资源利用率和出色的响应能力,已成为构建高性能系统的首选架构。wpa_supplicant作为Linux平台下广泛使用的无线认证客户端&am…...
.NET校招真实面经:手写代码、项目深挖、算法到底考什么
文章目录写在前面:校招面试就像相亲,你得先过了"眼缘"这一关第一部分:手写代码——别做"嘴强王者",要做"手速达人"1.1 面试官为啥非要你手写代码?1.2 .NET校招手写代码到底考啥…...
别再写重复代码了!用WPF Behavior封装一个可复用的鼠标拖拽缩放控件(附完整源码)
用WPF Behavior打造高复用鼠标拖拽缩放控件:从原理到实战封装 在WPF企业级应用开发中,交互控件的重复开发是效率杀手。想象一下:当产品经理要求为项目中的图表、图片预览器和自定义控件都添加相似的拖拽缩放功能时,你是选择在每个…...
Joy-Con Toolkit:突破官方限制的任天堂手柄全能控制工具
Joy-Con Toolkit:突破官方限制的任天堂手柄全能控制工具 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit 重新定义手柄控制:从消费级到开发级的跨越 Joy-Con控制器作为任天堂Switch的核心…...
如何将闲置Globe键重构为效率引擎?Karabiner-Elements自定义修饰键全指南
如何将闲置Globe键重构为效率引擎?Karabiner-Elements自定义修饰键全指南 【免费下载链接】Karabiner-Elements Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later. 项目地址: https://gitcode.com/gh_mirr…...
ENVI 5.3 vs 5.6 处理GF-6/GF-7数据实测:版本差异、流程对比与效率优化心得
ENVI 5.3与5.6处理GF-6/GF-7数据深度评测:从版本差异到实战优化 当高分卫星数据成为遥感分析的主流选择,ENVI作为行业标杆软件,其版本迭代对数据处理效率的影响往往被低估。本文将基于真实项目经验,拆解ENVI 5.3与5.6在处理GF-6/G…...
麒麟V10 x86_64系统下Qt 5.12.7安装全攻略(附常见报错解决方案)
麒麟V10 x86_64系统Qt 5.12.7深度安装指南与疑难攻坚 国产操作系统生态的崛起让越来越多的开发者开始关注麒麟平台。作为一款基于Linux的国产操作系统,麒麟V10在x86_64架构下的表现尤为出色。本文将带你全面掌握Qt 5.12.7在麒麟V10 x86_64系统上的安装与配置技巧&am…...
