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处理大规模文本数据的高效能与便捷性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/329615.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL用户管理】

目录: 前言用户管理创建用户删除用户修改用户密码修改用户密码安全检测设置 用户权限添加权限回收权限 总结 前言 剑指offer:一年又13天 用户管理 mysql> show databases; -------------------- | Database | -------------------- | inf…

R304S 指纹识别模块功能实现示例

1 基本通信流程 1.1 UART 命令包的处理过程 1.2 UART 数据包的发送过程 UART 传输数据包前,首先要接收到传输数据包的指令包,做好传输准备后发送成功应答包,最后才开始传输数据包。数据包主要包括:包头、设备地址、包标识、包长…

Java:结束本机端口被占用进程

前言 在实际开发当中我们,往往在idea中将某个服务的启动给关闭了,但是在nacos的某个服务上,我们却可以看到本地别名服务还是在上面挂载着本地再次启动的时候就提示【端口被占用】,今天就说一下如何解决这个问题 操作 点击即可预…

嵌入式(七)看门狗 | 看门狗工作模式 寄存器 时钟系统

文章目录 1 看门狗原理2 功能3 看门狗工作模式4 看门狗控制寄存器5 时钟系统 及其寄存器 1 看门狗原理 看门狗(Watch Dog Timer, WDT)是一种专门用于监测单片机程序运行状态的芯片组件。其实质是一个计数器,一般给看门狗初始一个比较大的数,…

【数据结构—排序—交换排序】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、排序的概念及其运用 1、排序的概念 2、排序运用 3、 常见的排序算法 二、交换排序 1、冒泡排序 1.1算法讲解 1.2冒泡排序的实现: 1.2.1头文件的…

超声波模块的驱动(STM32、51单片机等)

一、前言 本文旨在分享单片机对超声波模块的驱动,测量距离和显示 二、超声波的驱动 1、超声波模块 2、模块性能 (1)TCT40-16T/R1 压电陶瓷超声传感器(通用型) 3、接口定义 Vcc、 Trig(控制端&#xff09…

thinkphp学习02-目录结构、控制器、路由、配置文件

目录结构 www WEB部署目录(或者子目录) ├─app 应用目录 │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─ ... 更多类库目录 │ │ │ ├─common.php 公共函数文件 │ └─event.ph…

聊天Demo

文章目录 参考链接使用前端界面消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 参考链接 vue.js实现带表情评论功能前后端实现(仿B站评论) vue.js实现带表情评论仿bilibili(滚动加载效果) vue.js支持表情输入 vue.js表…

【AI视野·今日Sound 声学论文速览 第四十期】Wed, 3 Jan 2024

AI视野今日CS.Sound 声学论文速览 Wed, 3 Jan 2024 Totally 4 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Auffusion: Leveraging the Power of Diffusion and Large Language Models for Text-to-Audio Generation Authors Jinlong Xue, Yayue De…

学习笔记——C++一维数组

1,一维数组的定义方式 三种定义方式 1,数据类型 数组名[ 数组长度 ]; 2,数据类型 数组名[ 数组长度 ]{值1,值2,值3 ……};//未说明的元素用0填补 3,数据类型 数组名[ ]{值1&…

短视频矩阵系统源码--源头技术独立自研框架开发(正规代发布)

一、批量剪辑(采用php语言,数学建模) 短视频合成批量剪辑的算法主要有以下几种: 1. 帧间插值算法:通过对多个视频的帧进行插帧处理,从而合成一段平滑的短视频。 2. 特征提取算法:提取多个视频…

链表

目录 单链表 双链表 单链表 题目如下&#xff1a;模拟一个单链表&#xff0c;实现插入删除操作 解题代码 #include <iostream>using namespace std;const int N 100010;// head 表示头结点的下标 // e[i] 表示节点i的值 // ne[i] 表示节点i的next指针是多少 // idx …