Apache Hive:基于Hadoop的分布式数据仓库
Apache Hive 是一个基于 Apache Hadoop 构建的开源分布式数据仓库系统,支持使用 SQL 执行 PB 级大规模数据分析与查询。
主要功能
Apache Hive 提供的主要功能如下。
HiveServer2
HiveServer2 服务用于支持接收客户端连接和查询请求。
HiveServer2 支持多客户端并发和身份验证,基于 Thrift RPC 实现,允许客户端使用 JDBC、ODBC 等连接方式。以下是一个使用 Beeline 客户端工具连接 Apache Hive 的示例:
beeline -u "jdbc:hive2://host:10001/default"
Connected to: Apache Hivejdbc:hive2://host:10001/>select count(*) from test_t1;
HiveServer2 服务同时还包含了一个基于 Jetty 的网站服务,用于提供 Web 浏览器访问方式。
Hive Metastore
Hive Metastore(HMS)提供了一个管理元数据的集中式资料库,并且通过 API 服务提供客户端查询。
Hive Metastore 已经成为了构建数据湖的核心基础模块,这些数据湖充分融合了包括 Apache Spark 和 Presto 在内的多样化开源生态系统。
ACID
对于 Apache ORC 格式的数据表,Apache Hive 提供了完整的 ACID 事务支持;对其他所有数据格式,仅支持追加(Insert-Only)操作。
数据压缩
Apache Hive 的数据压缩(Data Compaction)是针对支持 ACID 事务的表(通常是 ORC 格式表)的优化机制,用于提高查询性能并减少存储开销。例如:
jdbc:hive2://> alter table test_t1 compact "MAJOR";
Done!jdbc:hive2://> alter table test_t1 compact "MINOR";
Done!jdbc:hive2://> show compactions;
Iceberg集成
Apache Hive 提供了 Apache Iceberg 数据表的原生支持,用户可以直接通过 Hive 的 SQL 接口创建、管理和查询 Iceberg 表,而无需依赖外部工具或复杂配置。
低延迟分析处理
Apache Hive 通过低延迟分析处理(LLAP,Low Latency Analytical Processing)实现交互式与亚秒级 SQL 查询。
Apache Hive LLAP 通过持久化服务与智能缓存填补了传统 Hive 在实时分析场景的短板,使其能够兼顾高吞吐批处理与低延迟交互查询。
查询优化
Apache Hive 利用 Apache Calcite 框架提供的基于成本优化(CBO)方式实现 SQL 查询的性能优化。
以下是一个使用 EXPLAIN 命令获取执行计划的示例:
jdbc:hive2://> explain cbo select ss.ss_net_profit, sr.sr_net_loss from store_sales ss join store_returns sr on (ss.ss_item_sk=sr.sr_item_sk) limit 5 ;
+---------------------------------------------+Explain
+---------------------------------------------+CBO PLAN:HiveSortLimit(fetch=[5])HiveProject(ss_net_profit=[$1], sr_net_loss=[$3])HiveJoin(condition=[=($0, $2)], joinType=[inner])HiveProject(ss_item_sk=[$2], ss_net_profit=[$22])HiveFilter(condition=[IS NOT NULL($2)])HiveTableScan(table=[[tpcds_text_10, store_sales]], table:alias=[ss])HiveProject(sr_item_sk=[$2], sr_net_loss=[$19])HiveFilter(condition=[IS NOT NULL($2)])HiveTableScan(table=[[tpcds_text_10, store_returns]], table:alias=[sr])
+---------------------------------------------+
数据复制
Apache Hive 的引导式复制(Bootstrap Replication)和增量复制(Incremental Replication)实现了高效数据备份与恢复。
jdbc:hive2://> repl dump src with (
. . .> 'hive.repl.dump.version'= '2',
. . .> 'hive.repl.rootdir'= 'hdfs://<host>:<port>/user/replDir/d1'
. . .> );
Done!jdbc:hive2://> repl load src into tgt with (
. . .> 'hive.repl.rootdir'= 'hdfs://<host>:<port>/user/replDir/d1'
. . .> );
Done!
快速试用
接下来我们使用 Docker 快速体验 Apache Hive。
首先,获取最新的镜像:
docker pull apache/hive:4.0.1
然后设置版本变量:
export HIVE_VERSION=4.0.1
启动 HiveServer2 服务,使用嵌入式 Derby 数据库作为元数据存储:
docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 --name hive4 apache/hive:${HIVE_VERSION}
注意,这种方式在服务关闭时会丢弃所有的数据;如果想要持久存储数据表,可以使用外部数据库和存储。
接下来利用 Beeline 客户端连接数据库:
docker exec -it hive4 beeline -u 'jdbc:hive2://localhost:10000/'
或者也可以通过浏览器进行访问:http://localhost:10002/
在 Beeline 客户端中执行以下 SQL 语句:
show tables;
create table hive_example(a string, b int) partitioned by(c int);
alter table hive_example add partition(c=1);
insert into hive_example partition(c=1) values('a', 1), ('a', 2),('b',3);
select count(distinct a) from hive_example;
select sum(b) from hive_example;
相关文章:
Apache Hive:基于Hadoop的分布式数据仓库
Apache Hive 是一个基于 Apache Hadoop 构建的开源分布式数据仓库系统,支持使用 SQL 执行 PB 级大规模数据分析与查询。 主要功能 Apache Hive 提供的主要功能如下。 HiveServer2 HiveServer2 服务用于支持接收客户端连接和查询请求。 HiveServer2 支持多客户端…...
langgraph简单Demo3(画一个简单的图)
文章目录 画图简单解析再贴结果图 画图 from langgraph.graph import StateGraph, END from typing import TypedDict# 定义状态结构 # (刚入门可能不理解这是什么,可以理解为一个自定义的变量库,你的所有的入参出参都可以定义在这里) # 如下࿱…...
LCR 187. 破冰游戏(python3解法)
难度:简单 社团共有 num 位成员参与破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数…...
10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?
文章目录 一、引言云计算平台概览ToDesk云电脑:随时随地用上高性能电脑 二 .云电脑初体验DeekSeek介绍版本参数与特点任务类型表现 1、ToDesk云电脑2、顺网云电脑3、海马云电脑 三、DeekSeek本地化实操和AIGC应用1. ToDesk云电脑2. 海马云电脑3、顺网云电脑 四、结语…...
解决 Element UI 嵌套弹窗显示灰色的问题!!!
解决 Element UI 嵌套弹窗显示灰色的问题 🔍 问题描述 ❌ 在使用 Element UI 开发 Vue 项目时,遇到了一个棘手的问题:当在一个弹窗(el-dialog)内部再次打开另一个弹窗时,第二个弹窗会显示为灰色,影响用户体验。 问题…...
【大模型】DeepSeek攻击原理和效果解析
前几天看到群友提到一个现象,在试图询问知识库中某个人信息时,意外触发了DeepSeek的隐私保护机制,使模型拒绝回答该问题。另有群友提到,Ollama上有人发布过DeepSeek移除模型内置审查机制的版本。于是顺着这条线索,对相…...
AI对软件工程(software engineering)的影响在哪些方面?
AI对软件工程(software engineering)的影响是全方位且深远的,它不仅改变了传统开发流程,还重新定义了工程师的角色和软件系统的构建方式。以下是AI影响软件工程的核心维度: 一、开发流程的智能化重构 需求工程革命 • …...
K8S学习之基础四十五:k8s中部署elasticsearch
k8s中部署elasticsearch 安装并启动nfs服务yum install nfs-utils -y systemctl start nfs systemctl enable nfs.service mkdir /data/v1 -p echo /data/v1 *(rw,no_root_squash) >> /etc/exports exports -arv systemctl restart nfs创建运行nfs-provisioner需要的sa账…...
部署高可用PostgreSQL14集群
目录 基础依赖包安装 consul配置 patroni配置 vip-manager配置 pgbouncer配置 haproxy配置 验证 本文将介绍如何使用Patroni、Consul、vip-manager、Pgbouncer、HaProxy组件来部署一个3节点的高可用、高吞吐、负载均衡的PostgresSQL集群(14版本)&…...
爬虫案例-爬取某站视频
文章目录 1、下载FFmpeg2、爬取代码3、效果图 1、下载FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 点击下载: ffmpeg 安装并配置 FFmpeg 步骤: 1.下载 FFmpeg: 2.访问 FFmpeg 官网。 3.选择 Wi…...
PV操作指南
🔥《PV操作真香指南——看完就会的祖传攻略》🍵 一、灵魂三问❓ Q1:PV是个啥? • 💡 操作系统界的红绿灯:控制进程"何时走/何时停"的神器 • 🧱 同步工具人:解决多进程&q…...
计算机考研复试机试-考前速记
考前速记 知识点 1. 链表篇 1. 循环链表报数3,输出最后一个报数编号 #include <iostream> using namespace std;typedef struct Node {int no;struct Node* next; }Node, *NodeList;void createNodeListTail(NodeList&L, int n) {L (Node*)malloc(siz…...
【漏洞复现】Next.js中间件权限绕过漏洞 CVE-2025-29927
什么是Next.js? Next.js 是由 Vercel 开发的基于 React 的现代 Web 应用框架,具备前后端一体的开发能力,广泛用于开发 Server-side Rendering (SSR) 和静态站点生成(SSG)项目。Next.js 支持传统的 Node.js 模式和基于边…...
路由选型终极对决:直连/静态/动态三大类型+华为华三思科配置差异,一张表彻底讲透!
路由选型终极对决:直连/静态/动态三大类型华为华三思科配置差异,一张表彻底讲透! 一、路由:互联网世界的导航系统二、路由类型深度解析三者的本质区别 三、 解密路由表——网络设备的GPS华为(Huawei)华三&a…...
【AI】知识蒸馏-简单易懂版
1 缘起 最近要准备升级材料,里面有一骨碌是介绍LLM相关技术的,知识蒸馏就是其中一个点, 不过,只分享了蒸馏过程,没有讲述来龙去脉,比如没有讲解Softmax为什么引入T、损失函数为什么使用KL散度,…...
uniapp运行到支付宝开发者工具
使用uniapp编写专有钉钉和浙政钉出现的样式问题 在支付宝开发者工具中启用2.0构建的时候,在开发工具中页面样式正常 但是在真机调试和线上的时候不正常 页面没问题,所有组件样式丢失 解决 在manifest.json mp-alipay中加入 "styleIsolation&qu…...
STM32学习笔记之keil使用记录
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
卷积神经网络 - 参数学习
本文我们通过两个简化的例子,展示如何从前向传播、损失计算,到反向传播推导梯度,再到参数更新,完整地描述卷积层的参数学习过程。 一、例子一 我们构造一个非常简单的卷积神经网络,其结构仅包含一个卷积层和一个输出…...
【加密社】币圈合约交易量监控,含TG推送
首先需要在币安的开发者中心去申请自己的BINANCE_API_KEY和BINANCE_API_SECRET 有了这个后,接着去申请一个TG的机器人token和对话chatid 如果不需要绑定tg推送的话,可以忽略这步 接下来直接上代码 引用部分 from os import system from binance.c…...
大模型概述
大模型属于Foundation Model(基础模型)[插图],是一种神经网络模型,具有参数量大、训练数据量大、计算能力要求高、泛化能力强、应用广泛等特点。与传统人工智能模型相比,大模型在参数规模上涵盖十亿级、百亿级、千亿级…...
【CSS3】完整修仙功法
目录 CSS 基本概念CSS 的定义CSS 的作用CSS 语法 CSS 引入方式内部样式表外部样式表行内样式表 选择器基础选择器标签选择器类选择器id 选择器通配符选择器 画盒子文字控制属性字体大小字体粗细字体倾斜行高字体族font 复合属性文本缩进文本对齐文本修饰线文字颜色 复合选择器后…...
C++ 的 if-constexpr
1 if-constexpr 语法 1.1 基本语法 if-constexpr 语法是 C 17 引入的新语法特性,也被称为常量 if 表达式或静态 if(static if)。引入这个语言特性的目的是将 C 在编译期计算和求值的能力进一步扩展,更方便地实现编译期的分支…...
【电气设计】接地/浮地设计
在工作的过程中,遇到了需要测量接地阻抗的情况,组内讨论提到了保护接地和功能接地的相关需求。此文章用来记录这个过程的学习和感悟。 人体触电的原理: 可以看到我们形成了电流回路,导致触电。因此我们需要针对设备做一些保护设计…...
Gone v2 配置管理3:连接 Nacos 配置中心
🚀 发现 gone-io/gone:一个优雅的 Go 依赖注入框架!💻 它让您的代码更简洁、更易测试。🔍 框架轻量却功能强大,完美平衡了灵活性与易用性。⭐ 如果您喜欢这个项目,请给我们点个星!&a…...
深度强化学习中的深度神经网络优化策略:挑战与解决方案
I. 引言 深度强化学习(Deep Reinforcement Learning,DRL)结合了强化学习(Reinforcement Learning,RL)和深度学习(Deep Learning)的优点,使得智能体能够在复杂的环境中学…...
浅拷贝与深拷贝
浅拷贝和深拷贝是对象复制中的两种常见方式,它们在处理对象的属性时有本质的区别。 一. 浅拷贝(Shallow Copy) 浅拷贝是指创建一个新对象,然后将当前对象的非静态字段复制到新对象中。如果字段是值类型的,那么将复制字…...
macOS 安装 Miniconda
macOS 安装 Miniconda 1. Quickstart install instructions2. 执行3. shell 上初始化 conda4. 关闭 终端登录用户名前的 base参考 1. Quickstart install instructions mkdir -p ~/miniconda3 curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o…...
分布式限流方案:基于 Redis 的令牌桶算法实现
分布式限流方案:基于 Redis 的令牌桶算法实现 前言一、原理介绍:令牌桶算法二、分布式限流的设计思路三、代码实现四、方案优缺点五、 适用场景总结 前言 在分布式场景下,接口限流变得更加复杂。传统的单机限流方式难以满足跨节点的限流需求…...
OpenHarmony子系统开发 - 电池管理(二)
OpenHarmony子系统开发 - 电池管理(二) 五、充电限流限压定制开发指导 概述 简介 OpenHarmony默认提供了充电限流限压的特性。在对终端设备进行充电时,由于环境影响,可能会导致电池温度过高,因此需要对充电电流或电…...
Cocos Creator版本发布时间线
官网找不到,DeepSeek给的答案,这里做个记录。 Cocos Creator 1.x 系列 发布时间:2016 年 - 2018 年 1.0(2016 年 3 月): 首个正式版本,基于 Cocos2d-x 的 2D 游戏开发工具链,集成可…...
修形还是需要再研究一下
最近有不少小伙伴问到修形和蜗杆砂轮的问题,之前虽然研究过一段时间,但是由于时间问题放下了,最近想再捡起来。 之前计算的砂轮齿形是一整段的,但是似乎这种对于有些小伙伴来说不太容易接受,希望按照修形的区域进行分…...
Java面试黄金宝典11
1. 什么是 JMM 内存模型 定义 JMM(Java Memory Model)即 Java 内存模型,它并非真实的物理内存结构,而是一种抽象的概念。其主要作用是规范 Java 虚拟机与计算机主内存(Main Memory)之间的交互方式&#x…...
华为p10 plus 鸿蒙2.0降级emui9.1.0.228
需要用到的工具 HiSuite Proxy V3 华为手机助手11.0.0.530_ove或者11.0.0.630_ove应该都可以。 官方的通道已关闭,所以要用代理,127.0.0.1端口7777 https://www.firmfinder.ml/ https://professorjtj.github.io/v2/ https://hisubway.online/articl…...
高速开源镜像站网址列表2503
高速开源镜像站网址列表 以下是国内常用的高速开源镜像站网址列表,涵盖企业和教育机构的主要站点,适用于快速下载开源软件和系统镜像: 一、企业镜像站 阿里云镜像站 地址:https://mirrors.aliyun.com/ 特点:覆盖广泛…...
Python----计算机视觉处理(Opencv:绘制图像轮廓:寻找轮廓,findContours()函数)
一、轮廓 轮廓是图像中目标物体或区域的外部边界线或边界区域,由一系列相连的像素构成封闭形状,代表了物体的基本外形。与边缘不同,轮廓是连续的,而边缘则不一定是连续的。 轮廓与边缘的区别: 轮廓是一组连续的点或线…...
python --face_recognition(人脸识别,检测,特征提取,绘制鼻子,眼睛,嘴巴,眉毛)/活体检测
dlib 安装方法 之前博文 https://blog.csdn.net/weixin_44634704/article/details/141332644 环境: python==3.8 opencv-python==4.11.0.86 face_recognition==1.3.0 dlib==19.24.6人脸检测 import cv2 import face_recognition# 读取人脸图片 img = cv2.imread(r"C:\U…...
【测试工具】如何使用 burp pro 自定义一个拦截器插件
在 Burp Suite 中,你可以使用 Burp Extender 编写自定义拦截器插件,以拦截并修改 HTTP 请求或响应。Burp Suite 支持 Java 和 Python (Jython) 作为扩展开发语言。以下是一个完整的流程,介绍如何创建一个 Burp 插件来拦截请求并进行自定义处理…...
51单片机和STM32 入门分析
51单片机和STM32是嵌入式开发中两种主流的微控制器,它们在架构、性能、应用场景等方面存在显著差异。以下是两者的对比分析及选择建议: 1. 51单片机与STM32的定义与特点 51单片机 定义:基于Intel 8051内核的8位微控制器,结构简单…...
python暴力破解html表单
import requests import time# 目标URL url "http://192.168.3.101/pikachu/vul/burteforce/bf_form.php" # 请替换为实际的目标URL# 已知的用户名 username "admin"# 密码字典文件路径 password_file "passwords.txt"# 伪造请求头ÿ…...
DeepSeek+RAG局域网部署
已经有很多平台集成RAG模式,dify,cherrystudio等,这里通过AI辅助,用DS的API实现一个简单的RAG部署。框架主要技术栈是Chroma,langchain,streamlit,答案流式输出,并且对答案加上索引。支持doc,docx,pdf,txt。…...
流影---开源网络流量分析平台(一)(小白超详细)
目录 流影介绍 一、技术架构与核心技术 二、核心功能与特性 流影部署 流影介绍 一、技术架构与核心技术 模块化引擎设计 流影采用四层模块化架构:流量探针(数据采集)、网络行为分析引擎(特征提取)、威胁检测引擎&…...
在IDEA中快速注释所有console.log
在IDEA中快速注释所有console.log 在前端IDEA中,快速注释所有console.log语句可以通过以下步骤实现2: 打开要修改的文件。使用快捷键CtrlF打开搜索框。点击打开使用正则搜索的开关或者通过AltR快捷键来打开。在搜索框输入[]*console.log[]*,…...
python全栈-前端
python全栈-前端 文章目录 HTML标签段落p、换行br、水平线hr图片img路径src超文本链接a超链接之锚点href#id文本有序列表ol无序列表ul自定义列表表格table表格属性单元格合并 表单Forminput标签HTML5新增type属性HTML5新增常用属性 实体字符块元素与行内元素/内联元素容器元素d…...
基于PySide6与pycatia的CATIA绘图文本批量处理工具开发实践
引言 在CAD软件二次开发领域,CATIA的自动化处理一直存在开发门槛高、接口复杂等痛点。本文基于Python生态,结合PySide6 GUI框架与pycatia接口库,实现了一套高效的绘图文本批量处理工具。该工具支持背景视图文本批量处理和交互式文本选择处理…...
Jenkins 集成 SonarQube 代码静态检查使用说明
环境准备 Jenkins 服务器 确保 Jenkins 已安装并运行(推荐 LTS 版本)。安装插件: SonarQube Scanner for Jenkins(用于集成 SonarQube 扫描)NodeJS Plugin(可选,用于 JavaScript 项目࿰…...
pytorch构建线性回归模型
仅仅用于自己记录pytorch学习记录 线性回归模型 (1)准备数据集 数据:三个数据x[x1,x2,x3] y[y1,y2,y3] import torch #线性回归,我们使用三组数据,分别是(1,2),(2,4&a…...
本地部署 LangManus
本地部署 LangManus 0. 引言1. 部署 LangManus2. 部署 LangManus Web UI 0. 引言 LangManus 是一个社区驱动的 AI 自动化框架,它建立在开源社区的卓越工作基础之上。我们的目标是将语言模型与专业工具(如网络搜索、爬虫和 Python 代码执行)相…...
skynet网络包库(lua-netpack.c)的作用解析
目录 网络包库(lua-netpack.c)的作用解析1. 数据包的分片与重组2. 网络事件处理3. 内存管理4. 数据打包与解包 动态库(.so)在 Lua 中的使用1. 编译为动态库2. Lua 中加载与调用(1) 加载模块(2) 核心方法(3) 使用示例 3. 注意事项 …...
XXL-Job 二次分片是怎么做的?有什么问题?怎么去优化的?
XXL-JOB二次分片机制及优化策略 二次分片实现原理 XXL-JOB的二次分片是在分片广播策略的基础上,由开发者自行实现的更细粒度数据拆分。核心流程如下: 初次分片:调度中心根据执行器实例数量(总分片数n)分配分片索引i&…...
零基础本地部署 ComfyUI+Flux.1 模型!5 分钟搭建远程 AI 绘图服务器(保姆级教程)
文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在如今这 AI 技术一路火花带闪电、疯狂往前冲的时代,图像生成模型那可不再是…...