当前位置: 首页 > news >正文

从MySQL快速上手大数据Hive

从MySQL快速上手大数据Hive

Hive简介

​ hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式(DML)来分析存储在Hadoop分布式文件系统中的数据: 可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉mapreduce的用户可以很方便地利用SQL语言查询、汇总和分析数据。
​ hive不适合用于联机(online)事务处理,也不提供实时查询功能。
它最适合应用在基于大量不可变数据的批处理作业。

​ 下图展示了大数据中数据查询的整个过程
在这里插入图片描述

MapReduce原理

Map就是映射,负责数据过滤分割,将原始数据转化为键值对;Reduce是合并,将具有相同key值的value进行处理后再输出新的键值对,最后存储到HDFS。为了让Reduce可以并行处理Map的结果,必须对Map的输出进行一定的排序与分割,然后再交给对应的Reduce,而这个将Map输出进行进一步整理并交给Reduce的过程就是Shuffle。整个MR的大致过程如下:

在这里插入图片描述

Hive使用

Hive表类型

内表:建表时不需要指定location。删除内表时,对应的HDFS文件一并删除。非分区表所有文件放在表location下,非压缩表。

外表:外表用EXTERNAL关键字来创建。外表需要指定location。删除外表时,不删除对应的HDFS文件。数据以ORC文件存储,用SNAPPY算法压缩

在这里插入图片描述

在这里插入图片描述

Hive常见数据类型

与Mysql基本保持一致。
在这里插入图片描述

使用CAST函数进行类型转换。

# sku_id是varchar 
# 但需要转成INT为了方便后面做数值运算 
# 此时就需要使用到CAST函数
SELECT CAST(sku id AS INT) FROM sku sale list

Hive常用函数

主要跟Mysql中常用函数一致
在这里插入图片描述

SYSDATE()函数是自研函数,用法如下

sysdate() 
# 获取当天数据
SELECT sysdate() 
-- 结果:2025-03-02# 获取昨天数据
SELECT sysdate(-1) 
-- 结果:2025-03-01# 获取明天数据
SELECT sysdate(1) 
-- 结果:2025-03-03

其他函数举例如下,都跟Mysql中用法一致

round()
SELECT round(6.28); -- 结果:6
SELECT round(6.58); -- 结果:7
SELECT round(6.58410834,2); -- 结果:6.58
SELECT round(6.58470834,3); -- 结果:6.585
SELECT round(6.5,3); -- 结果:6.500
substr() 字符串截取
SELECT substr('字符串'从哪开始截[,截几个])
SELECT substr('abcdefghijk',3); --结果:cdefghijk
SELECT substr('abcdefghijk',3,2); -- 结果:cd
SELECT substr('abcdefghijk',-3); -- 结果:ijk
SELECT substr('abcdefghijk',-3,2); --结果:ij
split() 字符串切割
SELECTsplit('中国,美国,英国,法国',',') name #以,来切割'中国,美国,英国,法国'字符串
FROM test3;
-- 结果:[中国"'美国’'英国''法国']SELECTsplit('中国,美国,英国,法国'',')[0]name
FROM test3;
-- 结果:中国SELECTsplit('中国,美国,英国,法国…')[1] name
FROM test3;
-- 结果:美国
concat() 字符串拼接
SELECT concat("123","aaa");	-- 结果:123aaa
SELECT concat("123""aaa"'张三'); --结果:123aaa张三
collect set()/collect_... 行转列 列转行
name
tom
marry
peter
tom
tom
marry
SELECT collect_set(name) FROM test2;
-- 结果:["tom","marry","peter"]SELECT collect_list(name) FROM test2;
-- 结果:["tom","marry","peter","tom","tom","marry"]

HiveDML操作

Hive提供了类SQL的数据操作语言DML,用于操作数据表中的数据,例如数据的加载、查询和插入等操作。

插入数据 语法如下:
INSERT INTO table name [PARTITION(partition column = partition value)]
VALUES(value1,value2,...);--示例:直接插入固定数据:
INSERT INTO employees VALUES(1001'John Doe'!5000);--示例:插入查询结果数据:
INSERT INTO table_name [PARTITION(partition_column = partition_value)]
SELECT column_list FROM source_table WHERE condition;
更新数据在默认情况下,Hive不支持使用UPDATE更新操作。可以用以下方式。--示例1:将original_table表中数据更新
CREATE TABLE temp_table AS SELECT * FROM original_table;DROP TABLE original_table;
ALTER TABLE temp_table RENAME To original_table;--示例2:
INSERT OVERWFITE TABLE temp_table SELECT * FROM original_table;
删除数据
Hive不支持使用DELETE语句来删除数据,如果您希望删除整个分区及其所有数据,可以使用 ALTER TABLE 命令
--示例: 删除分区数据
ALTER TABLE employees DROP PARTITION(department='IT');--示例:删除整表数据
DROP TABLE employees;
查询数据 与MySQL中一致
-- 检索所有列
SELECT * FROM employees;-- 检索特定列
SELECT erp,salary,age FROM employees;-- 检索薪资大于5000的员工
SELECT erp,salary,age FROM employees WHERE salary > 5000-- 汇总薪资大于5000的员工的总薪资
SELECT SUM(salary) FROM employees WHERE salary > 5000;
关联查询数据 与MySQL中一致
-- 内连接:返回两表id能匹配上的记录
SELECT t1.name,t2.cityFROM employees t1JOIN city t2ON t1.id = t2.id-- 左连接:返回左表全量数据
SELECT t1.name,t2.cityFROM employees t1LEFT JOIN city t2ON t1.id=t2.id-- 右连接:返回右表全量数据
SELECT t1.name,t2.cityFROM employees t1RIGHT JOIN city t2ON t1.id=t2.id-- 全连接:返回左表和右表全量数据
SELECT t1.namet2.cityFROM employees t1FULL JOIN city t2ON t1.id =t2.id

Hive优化和案例讲解

核心优化思想

  • 尽早过滤不需要的数据,减少每个阶段输出数据量
  • 减少 job 数量
  • 尽量让map阶段均衡读取数据,减少数据倾斜

过滤不需要数据

----列裁剪(尽量避免使用*)
table1:a、b、c、d、e、f
table2:a、g、h、i、k
SELECT t1.a,t1.b,t1.c,t2.gFROM ( SELECT a,b,c FROM table1 WHEREe < 40 ) t1JOIN ( SELECT a,g FROM table2 WHERE k = '北京' ) t2ON t1.a = t2.a----分区裁剪
--在查询的过程中 分区越精确越好
oper_erp		oper_type		dt				ht
zhangsan		create_file		2024-08-01		02
lisi			delete file		2024-08-01		03
wangwu			create file		2024-08-01		04SELECT erp, path, oper_type,oper_timeFROM system_audit_logWHERE dt = '2024-08-01'AND ht = 03----在join前过滤掉不需要的数据
--先关联,后过滤(不推荐)
SELECT a.val,b.valFROM a
LEFT OUTER JOIN bON a.key = b.keyWHERE a.ds = 2024-08-14 AND b.ds = 2024-08-14
--先过滤,后关联(推荐)
SELECT x.val,y.val FROM(SELECT key,val FROM a WHERE a.ds=2024-08-14) x
LEFT OUTER JOIN(SELECT key,val FROM b WHERE b.ds=2024-08-14) y 
ON x.key=y.key

减少job数

-- 多表关联时尽量选择同一个key:无论内关联还是外关联,如果join的key相同的话,不管关联多少个表只生成一个job。下面以a,b,c 三表举例--- 被翻译成 1 个 JOB
SELECT a.val, b.val, c.valFROM aJOIN b ON (a.key = b.key1)JOIN c ON (b.key1 = c.key)--- 被翻译成 2 个 JOB
SELECT a.val, b.val, c.valFROM aJOIN b ON (a.key = b.key1)JOIN c ON (b.key2 = c.key)--- union all 中的 job 优化
-- 2个job
SELECT * FROM
(select c1, c2 from A group by c1, c2) t1
union all
(select c1, c2 from B group by c1, c2) t2-- 1个job
SELECT * FROM
(select c1, c2 from A union all select c1, c2 from B) t
group by c1, c2

查询结果复用

使用 with as 将查询的结果保持下来,供后面的sql使用

-- 查询 a 表两次
INSERT OVERWRITE TABLE tmp1SELECT ... FROM a WHERE 条件1;
INSERT OVERWRITE TABLE tmp2SELECT ... FROM a WHERE 条件1;	-- 查询 a 表一次
WITH AS tmp_a (SELECT ... From a )
INSERT OVERWRITE TABLE tmp1SELECT ... FROM tmp_a WHERE 条件1;
INSERT OVERWRITE TABLE tmp2SELECT ... FROM tmp_a WHERE 条件1;	

行转列

若一行中有一个字段有多个值则给拆除来,单独成几行。

用 explode 关键字来拆分。explode入参是必须是一个列表,故用 split 对all_city关键字进行逗号分割成一个列表

id		user	name	all_citys
id1		user1	name1	北京,天津
id2		user2	name2	上海,河北SELECT id, user, name, city From myTable LATERAL VIEW explode(split(all_city, ',')) adTable AS cityid		user	name	city
id1		user1	name1	北京
id1		user1	name1	天津
id2		user2	name2	上海
id2		user2	name2	河北

去重优化

由于 COUNT DISTINCT 操作需要用一个 Reduce Task 来完成,这一个 Reduce 需要处理的数据量太大,就会导致整个 Job 很难完成。

一般 COUNT DISTINCT 先用 GRUOP BY 再COUNT

对于大数据用GRUOP BY的效率远大于 COUNT DISTINCT

-- 会比较慢 不推荐
SELECT COUNT(DISTINCT id) FROM bigtable;-- 对比大数据集,用GROUP BY的效率明显高于DISTINCT 推荐
SELECT COUNT(id) FROM (SELECT id FROM bigtable GROUP BY id) a;

mapjoin

在查询过程中,将小表放前面,大表放后面

-- mapjoin中小表被作为驱动表直接加载到内存中,每个map都会拿另一个表的数据与内存中的小表数据做匹配,由于每个map处理的数据量大致相同,因此解决了数据倾斜问题-- 启动mapjoin需先设置以下参数
SET hive.auto.convert.join=TRUE
SET hive.mapjoin.smalltable.filesize=25000000; -- 设置小表最大为25MB-- 执行查询语句 /*+ mapjoin(a)*/ 就是将small_table加载进内存
SELECT /*+ mapjoin(a)*/ a.id, b.col FROM small_table aJOIN big_table bON a.id = b.id

减少数据倾斜

数据倾斜指的是 在map-reduce 执行中, 单个map或单个reduce处理的数据量明显大于其他task处理的数据量。比如,空值数据占比大,爆单商品sku数据 就可能会导致数据倾斜。

具体表现:作业经常卡在Reduce=99%处,最后1%要跑很久

#假设有用户表,日志表两张表1 空值数据倾斜处理:赋予空值或其他异常值新的key值
-- 将空值key赋值为一个字符串+随机数,用于把倾斜的数据分布在不同的reducer上
select * from log aleft outer join user bon case when a.user_id is null then concat('hive', rand()) else a.user_id end ) = b.user_id2 key值不均产生的数据倾斜
-- 大量重复key产生的数据倾斜:通过调整参数实现负载均衡
-- 基本思路:先做一次部分聚合,再做最终聚合-- 方法1 map端部分聚合(按大小切片,保证每个map数据量差不多)
set hive.map.aggr = true; -- 默认为true-- 方法2 前面设为true时,生产的查询计划会有两个MR job
set hive.groupby.skewindata = true; -- 默认为false

当然应急的时候,可以对空值,特殊值的过滤来解决数据倾斜。

相关文章:

从MySQL快速上手大数据Hive

从MySQL快速上手大数据Hive Hive简介 ​ hive是基于Hadoop构建的一套数据仓库分析系统&#xff0c;它提供了丰富的SQL查询方式&#xff08;DML&#xff09;来分析存储在Hadoop分布式文件系统中的数据: 可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供完整的SQL查…...

基于华为云kubernetes的应用多活的示例

1 概述 为避免地域级别的故障&#xff0c;需要将单机房架构变成双地域架构&#xff08;两个机房物理距离越远&#xff0c;网络延时越大&#xff0c;网延时是业务研发首先关注的&#xff09;。单边写的多机房架构&#xff0c;是落地性比较大的一个方案&#xff0c;相对于单元化…...

Linux动态库 vs 静态库:创建步骤与优缺点对比

Linux系列 文章目录 Linux系列前言一、动静态库的概念引入1.1 库的基本概念1.2 静态库&#xff08;Static Library&#xff09;1.3 动态库&#xff08;Dynamic Library&#xff09;1.4 动静态库的核心区别 二、动静态库的实现2.1 静态库的创建及使用2.2 动态库的创建和使用三、…...

分析下HashMap容量和负载系数,它是怎么扩容的?

很好&#xff0c;我们继续深入分析 HashMap 中 容量&#xff08;capacity&#xff09; 和 负载因子&#xff08;load factor&#xff09;&#xff0c;以及它是如何进行 扩容&#xff08;resize&#xff09; 的。 &#x1f9f1; 一、容量&#xff08;capacity&#xff09;与负载…...

Linux权限管理:从入门到实践

目录 引言 ​编辑一、Linux用户类型 二、文件访问者分类 三、文件类型和访问权限 &#xff08;一&#xff09;文件类型 &#xff08;二&#xff09;基本权限 四、文件访问权限设置方法 &#xff08;一&#xff09;chmod命令 &#xff08;二&#xff09;chown命令 &…...

计算机网络(1)

名称解析 名称解析&#xff1a;将名称解析成对应地址&#xff0c;名字-->IP 名称解析优点&#xff1a;便以记忆、解耦&#xff08;断开直接的练习&#xff09; 容器 mini的虚拟机&#xff0c;该容器地址是动态的、生命周期短暂&#xff1b;可实现登录功能 如果用户想要登录该…...

第十一天 - MySQL/SQLite操作 - 数据库备份脚本 - 练习:监控数据存储系统

数据库实战入门&#xff1a;从零构建监控数据存储系统 前言 在物联网和系统监控领域&#xff0c;数据存储是核心基础环节。本文将通过MySQL/SQLite操作、数据库备份脚本和监控数据存储实战三个模块&#xff0c;带领初学者快速掌握数据库在真实场景中的应用。文章包含25个代码…...

编写文生视频提示词,制作抖音爆款视频

编写文生视频提示词&#xff0c;制作抖音爆款视频 一、理解文生视频提示词1.1 定义提示词1.1.1 提示词与创作工具的关系1.1.2 文生视频的功能 1.2 提示词的组成1.2.1 主体&#xff08;Subject&#xff09;1.2.2 动作&#xff08;Action&#xff09;1.2.3 场景&#xff08;Scene…...

Linux: 线程控制

目录 一 前言 二 线程控制 1. POSIX线程库(原生线程库) 2. 创建线程 2.1 pthread_create 2.2pthread_self()获取线程id 3.线程终止 3.1.return 方式 3.2 pthread_exit 4 线程等待 三 理解线程tid 一 前言 在上一篇文章中我们已经学习了线程的概念&#xff0c;线程的创…...

为什么 npm list -g 没显示 node_modules?✨

揭秘&#xff1a;为什么 npm list -g 没显示 node_modules&#xff1f;&#x1f575;️‍♂️✨ 嗨&#xff0c;各位代码探险家&#xff01;&#x1f44b; 今天我们要破解一个 npm 小谜团&#xff1a;运行 npm list -g --depth0 时&#xff0c;为什么输出的路径里看不到 node_…...

华为数字芯片机考2025合集4已校正

单选 1. 题目内容 影响芯片成本的主要因素是 Die Size 和封装&#xff0c;但电源、时钟等因素&#xff0c;特别是功耗对解决方案的成本影响较大&#xff0c;因此低成本设计需要兼顾低功耗设计&#xff1a;&#xff08;&#xff09; 1. 解题步骤 1.1 分析题目 Die Size&…...

达摩院Paraformer-ONNX模型:一站式高精度中文语音识别工业级解决方案

文章目录 核心技术创新三大部署方案对比1. Docker极简部署&#xff08;推荐&#xff09;2. Python API直连调用3. 客户端实时测试工具 高阶调优技巧典型应用场景高频问题解决方案参考 阿里达摩院推出的speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-on…...

Llama 4的争议

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

React七案例下

代码下载 登录模块 用户登录 页面结构 新建 Login 组件&#xff0c;对应结构: export default function Login() {return (<div className{styles.root}><NavHeader className{styles.header}>账号登录</NavHeader><form className{styles.form}>&…...

Rust包管理与错误处理

文章目录 包管理箱&#xff08;Crate&#xff09;包&#xff08;Package&#xff09;模块&#xff08;Module&#xff09;访问权限use关键字 错误处理不可恢复错误可恢复错误错误传递kind方法 包管理 Rust的包管理有三个重要的概念&#xff0c;分别是箱、包、模块 箱&#xf…...

关于gitee的readme文档中的图片问题

使用markdown编辑readme文档&#xff0c;需要注意 添加图片&#xff0c;但是不显示问题 1.记得连图片一起上传到仓库中&#xff0c;不能只是在本地markdown文件中复制就结束了&#xff0c;因为存储的是本地图片地址&#xff0c;上传后找不到的 2.注意使用网络地址&#xff0…...

记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法

记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法 报错内容尝试第一次解决方法尝试第二次解决方法注意事项参考连接 报错内容 Unable to download server on client side: Error: Request downloadRequest failed unexpectedly without providing any details… Will tr…...

aws平台练习

注册 AWS 账户 访问 AWS 官方网站&#xff0c;点击“免费注册”按钮&#xff0c;按照提示完成账户注册&#xff1a; 提供电子邮件地址、密码和电话号码。 验证身份&#xff08;可能需要手机验证码&#xff09;。 设置 billing 信息。 2. 登录 AWS 管理控制台 使用注册的邮箱和…...

实战篇-梳理时钟树

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据 总结 前言 这是B站傅里叶的猫视频的笔记 一、建立工程 以Vivado的wave_gen为例子。为了引入异…...

【Hadoop入门】Hadoop生态之Hive简介

1 什么是Hive&#xff1f; 1.1 Hive概述 在大数据时代&#xff0c;如何让传统的数据分析师和SQL开发人员也能轻松处理海量数据&#xff1f;Hive应运而生。Hive是基于Hadoop构建的一套数据仓库分析系统&#xff0c;它提供了一种类似SQL的查询语言&#xff08;HQL&#xff09;&a…...

DSP复习【3章】

F2812提供了XINTF用于扩展并行接口的外设芯片。 XINTF&#xff08;外部接口&#xff09;所需的时钟是 SYSCLKOUT 和 XTIMCLK。 所以正确答案是&#xff1a; ✅ SYSCLKOUT 和 XTIMCLK 什么是XREADY信号&#xff0c;如何使用&#xff1f; 章节例题&#xff1a; 1. 如何通过软件判…...

Hadoop案例——流量统计

Hadoop案例——流量统计 在大数据时代&#xff0c;流量统计是许多企业和组织的关键需求之一。通过分析网络流量数据&#xff0c;企业可以优化网络资源分配、提升用户体验、制定精准的营销策略等。本文将介绍如何使用 Hadoop 框架实现一个简单的流量统计案例&#xff0c;包括数…...

Linux管道 有名管道(FIFO)工作机制全解:从理论到实践

有名管道&#xff08;重要&#xff09; 有名管道/命名管道&#xff0c;主要用于没有血缘关系进程间的通信 当然也支持有血缘关系的情况&#xff0c;只是如果有血缘关系&#xff0c;没有必要使用有名管道&#xff0c;无名管道效果更佳 引入 好了&#xff0c;现在使用条件有了…...

java基础-修饰符

java修饰符 修饰符分类访问修饰符的作用域代码说明访问修饰符总览 非访问修饰符staticfinalabstractsynchronizedvolatiletransientnativestrictfp非访问修饰符总览表 非访问修饰符组合与冲突规则 修饰符分类 分类&#xff1a;访问修饰符 和 非访问修饰符 1.访问修饰符 公共…...

解锁基因密码之重测序(从测序到分析)

在生命科学的奇妙世界中&#xff0c;基因恰似一本记录着生命奥秘的“天书”&#xff0c;它承载着生物体生长、发育、衰老乃至疾病等一切生命现象的关键信息。而重测序技术&#xff0c;则是开启基因“天书”奥秘的一把神奇钥匙。 试想&#xff0c;你手中有一本经典书籍的通用版…...

当使用 Docker Desktop 启动 Tomcat 镜像时时间不对

当使用 Docker Desktop 启动 Tomcat 镜像时时间不对&#xff0c;可能由以下原因导致并可采取相应解决方法&#xff1a; 宿主机时间设置问题&#xff1a;Docker 容器的时间是由宿主机提供的&#xff0c;如果宿主机的时间不正确&#xff0c;那么容器的时间也会不正确。需确保宿主…...

golang gmp模型分析

思维导图&#xff1a; 1. 发展过程 思维导图&#xff1a; 在单机时代是没有多线程、多进程、协程这些概念的。早期的操作系统都是顺序执行 单进程的缺点有&#xff1a; 单一执行流程、计算机只能一个任务一个任务进行处理进程阻塞所带来的CPU时间的浪费 处于对CPU资源的利用&…...

Redisson的RedLock与联锁(MultiLock)的区别

Redisson提供了两种分布式锁机制&#xff1a;RedLock(红锁)和MultiLock(联锁)&#xff0c;它们在实现分布式锁时有重要区别。 1. RedLock (红锁) 设计原理&#xff1a; 基于Redis官方提出的Redlock算法实现目的是在Redis集群环境下提供更可靠的分布式锁需要至少3个独立的Redi…...

图灵逆向——题十-魔改算法

目录列表 过程分析JS代码还原代码实现运行结果 本题属于魔改标准加密算法&#xff0c;所以无法使用JS或Python中的标准库来进行模拟加密了&#xff0c;只能一步一步的还原它的环境咯。。。 过程分析 打开控制台发现有个无限debugger&#xff0c;直接过掉~[doge]。。。 OK过掉…...

K8S学习之基础七十九:关闭istio功能

关闭istio功能 kubectl get ns --show-labels kubectl label ns default istio-injection-有istio-injectionenabled的命名空间&#xff0c;pod都会开启istio功能 反之&#xff0c;如果要开启istio&#xff0c;在对应命名空间打上该标签即可...

AI大模型课程系列汇总-某客时间篇

某客时间系列篇章&#x1f4a5; NO.文章&#xff08;点击可跳转&#xff09;1【课程系列11】某客时间AI 大模型应用开发实战营_ai大模型应用开发实战营 百度云-CSDN博客2【课程系列12】某客时间AI大模型微调训练营_极客时间 大模型rag 网盘-CSDN博客3【课程系列15】2024某客时…...

【人工智能】大语言模型多义词解析技术揭秘——以“项目“歧义消解为例

今天田辛老师和小伙伴探讨了一个有趣的多义词问题&#xff0c; 在人工智能技术日新月异的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;对自然语言的理解能力已经达到令人惊叹的水平。大模型到底是如何去区分多义词的&#xff1f; 比如&#xff1a;当用户提到"…...

Coze平台 发布AI测试Agent的完整实现方案

以下是基于 Coze平台 发布AI测试Agent的完整实现方案,包含架构设计、核心功能模块、集成方式和落地步骤: 一、方案架构图 #mermaid-svg-kzS7cltxrbetjROl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kzS7cltxr…...

OpenHarmony子系统开发 - 调测工具(二)

OpenHarmony子系统开发 - 调测工具&#xff08;二&#xff09; 三、hiperf使用指导 hiperf是为开发人员提供性能采样分析的工具&#xff0c;基于内核perf机制进行的用户态能力的扩展&#xff0c;可以对指定的程序或者整个系统进行性能采样。 hiperf支持的命令有&#xff1a;l…...

keil ERROR: L6220E 如何解决

最近调试MK8000方案&#xff0c;增加code后遇到&#xff1a; keil ERROR: L6220E: Execution region RW_RAM1 size (24592 bytes) execeeds limit (24568 bytes) .region contains 93 bytes of padding and 0 bytes of veneers (total 93 bytes of linker generated content) …...

c++比较器——priority_queue用 ; unordered_map 自定义哈希函数

文章目录 priority_queue自定义比较方法对 比较对象结构体 重载 <仿函数为什么是传一个类std::less<T> 和 std::greater<T> lambda unordered_map自定义哈希函数仿函数lambda priority_queue template<class T,class Container std::vector<T>,class…...

centos-LLM-生物信息-BioGPT安装

参考&#xff1a; GitHub - microsoft/BioGPT https://github.com/microsoft/BioGPT BioGPT&#xff1a;用于生物医学文本生成和挖掘的生成式预训练转换器 |生物信息学简报 |牛津学术 — BioGPT: generative pre-trained transformer for biomedical text generation and mini…...

esp32cam远程图传:AI Thinker ESP32-CAM -》 服务器公网 | 服务器 -》 电脑显示

用AI Thinker ESP32-CAM板子访问公网ip的5112端口并上传你的摄像头拍摄的图像视频数据&#xff0c;并写一段python程序打开弹窗接受图像实现超远程图像传输教程免费 1. 首先你要有一个公网ip也就是去买一台拥有公网的服务器电脑&#xff0c;我买的是腾讯云1年38元的服务器还可…...

今日踩坑之@Autowired与@Resource区别

案例说明 今天算是体验到了这俩注解的区别了&#xff0c;真所谓不报错就记不住这两注解区别&#xff0c;其实之前本人也是知道这俩注解的区别的只是我们往往项目上用习惯了Autowired就忘了&#xff0c;看来只有真正体会到报错才能记忆犹新o(╥﹏╥)o。 说明一下本人的踩坑情况&…...

在 M1 芯片的 Mac 电脑上安装 Redis 可以通过 ​​Homebrew​​ 快速完成

以下是详细步骤&#xff1a; 1. 安装 Homebrew&#xff08;若未安装&#xff09; 打开 ​​终端​​&#xff0c;执行以下命令安装 Homebrew&#xff08;已安装可跳过&#xff09;&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/…...

【从零开始学习JVM | 第一篇】快速认识JVM

什么是JVM&#xff1f; JVM--Java虚拟机&#xff0c;它是Java实现平台无关性的基石。 Java程序运行的时候&#xff0c;编译器将Java代码编译为平台无关的Java字节码文件&#xff08;.class&#xff09;&#xff0c;接下来对应平台的JVM对字节码进行运行解释&#xff0c;翻译成…...

linux 里的创建了一个tomcat用户 怎么禁止该用户使用crontab 功能

在 Linux 系统中&#xff0c;可以通过以下方法禁止 tomcat 用户使用 crontab 功能&#xff1a; 方法 1&#xff1a;通过 /etc/cron.deny 文件限制 这是 最推荐的标准方法&#xff0c;适用于所有主流 Linux 发行版&#xff08;CentOS、Ubuntu 等&#xff09;。 操作步骤&#…...

Elasticsearch入门指南(二)

一、RestClient操作索引库 什么是RestClient&#xff1f; ES官方提供了各种不同语言的客户端&#xff0c;用来操作ES。这些客户端的本质就是组装DSL语句&#xff0c;通过http请求发送给ES。官方文档地址&#xff1a; https://www.elastic.co/guide/en/elasticsearch/client/in…...

Mac监控新风尚:酷炫界面,性能监控更直观!

你是否曾经希望自己的Mac能够像Windows那样&#xff0c;轻松一按就能查看任务管理器来监控性能状态呢&#xff1f; 对于Mac用户来说&#xff0c;系统性能监控一直是个挑战——苹果公司并没有提供一个直观的性能监控工具&#xff0c;用户往往需要通过复杂的活动监视器来获取这些…...

碰一碰发视频源码开发深度解析,定制化开发

在移动应用开发领域&#xff0c;便捷的数据分享功能始终备受关注。碰一碰发视频这一创新功能&#xff0c;借助近场通信&#xff08;NFC&#xff09;技术&#xff0c;为用户提供了一种快速、直观的视频分享体验。本文将深入剖析碰一碰发视频功能的源码开发过程&#xff0c;涵盖从…...

基于 AI智能体、大模型、RAG、Agent 等技术构建公司内部闭环智能问答系统的详细方案,结合 Spring Boot + Vue 管理系统 的改造思路

以下是基于 AI智能体、大模型、RAG、Agent 等技术构建公司内部闭环智能问答系统的详细方案&#xff0c;结合 Spring Boot Vue 管理系统 的改造思路&#xff1a; 1. 系统架构设计 核心组件 数据源层 内部文档库&#xff1a;公司知识库&#xff08;如操作手册、FAQ、流程文档&a…...

红宝书第三十四讲:零基础学会单元测试框架:Jest、Mocha、QUnit

红宝书第三十四讲&#xff1a;零基础学会单元测试框架&#xff1a;Jest、Mocha、QUnit 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、单元测试是什么&#xff1f; 就像给代码做“体检”&#xff0c;帮你检查…...

视觉分析AI赋能智慧水务多场景应用

利用视觉分析的方式智慧水务的AI算法方案 一、背景 在传统水务监管中&#xff0c;面临着诸多痛点。例如&#xff0c;对于河道污染、水面异常、河湖四乱问题以及水生态环境差等情况&#xff0c;传统监管效率低下&#xff0c;预警不及时&#xff0c;资源分散&#xff0c;监控功…...

网络2 IP与MAC IP地址

IP地址与MAC地址 一 1.关系&#xff1a; 网卡有唯一的物理地址&#xff1a;MAC地址&#xff0c;IP是配置在网卡上的逻辑地址。 IP地址、MAC地址是进行网络通信必不可少的 2.MAC地址是物理地址&#xff0c;不可更改&#xff0c;通常与IP地址绑定 3.MAC地址&#xff1a;48位 IP地…...

spark-Core

运行架构 核心组件 由上图可以看出&#xff0c;对于 Spark 框架有两个核心组件&#xff1a; Driver&#xff0c;Spark 驱动器节点 其中Spark 驱动器节点&#xff0c;用于执行 Spark 任务中的 main 方法&#xff0c;负责实际代码的执行工作。 Driver 在 Spark 作业执行时主要…...