【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)
目录
一、本地模式
1、安装MySQL
2、登录MySQL
3、修改密码
4、安装Hive
5、配置Hive系统环境变量
6、初始化Derby数据库
7、连接Hive用于测试
8、测试Hive
9、修改Hive配置文件
10、上传MySQL驱动包
11、初始化MySQL
12、连接Hive用于启动服务
二、远程模式
1、启动MetaStore服务
2、启动HiveServer2服务
3、在虚拟机hadoop2安装Hive
4、修改Hive配置文件
5、配置Hive系统环境变量
6、连接MetaStore服务
7、连接HiveServer2服务
三、Hive数据库操作
1、在Hive中创建数据库hive_db
2、查看数据库hive_db的属性信息
3、修改数据库hive_db的属性信息
4、删除数据库
四、表操作
1、创建表
(1)创建内部表
(2)创建外部表
(3)创建分区表
(4)创建桶表
2、查看表
(1)查看当前数据库所有表
(2)查看表的详细结构信息
3、修改表
4、删除表
5、修改分区表的分区
(1)添加分区
(2)重命名分区
(3)删除分区
【往期文章】【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试_hbase集群优化配置-CSDN博客
在开始前,先启动下面的几个(括号里是命令)
zookeeper(zkServer.sh start)
YARN(start-yarn.sh)
HDFS(start-dfs.sh)
NameNode(hdfs --daemon start namenode)
DataNode(hdfs --daemon start datanode)
JournalNode(hdfs --daemon start journalnode)
启动后jps查看
一、本地模式
1、安装MySQL
(1)安装wget工具,使用yum -y install wget,如下所示:
(2)下载MySQL源文件
wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
(3)安装下载Mysql源文件
yum -y install mysql80-community-release-el7-1.noarch.rpm
(4)通过yum工具安装MySQL
yum install mysql-community-server -y --nogpgcheck
(5)启动MySQL服务,检查MySQL服务状态
systemctl start mysqld
sudo systemctl status mysqld
检查MySQL进程是否正在运行,其中27308是MySQL进程的PID
ps -ef | grep mysqld
(6)MySQL安装完成,默认为root用户提供初始密码
查看该初始密码的命令:
grep 'temporary password' /var/log/mysqld.log
可以看到我的初始密码为:
Bb_*nk#gk5xw
2、登录MySQL
通过我的初始密码登录MySQL,mysql -uroot -pBb_*nk#gk5xw
3、修改密码
修改MySQL密码为Itcast@2024,并刷新配置,使修改密码操作生效
mysql> alter user 'root'@'localhost' identified by 'Itcast@2022';
mysql> FLUSH PRIVILEGES;
4、安装Hive
(1)下载Hive安装包apache-hive-1.2.2-bin.tar.gz,并在虚拟机的/export/software目录下执行rz命令上传Hive安装包
(2)ll命令查看安装包是否上传成功
(3)将Hive解压安装到目录/export/servers
Tar -zxvf /export/software/apache-hive-1.2.2-bin.tar.gz -C
/export/servers/
(4)在虚拟机的/export/servers/目录下将Hive安装目录重命名为hive-1.2.2
mv /export/servers/apache-hive-1.2.2-bin/ /export/servers/hive-1.2.2
(5)同步jar包
将hive-1.2.2中的guava-14.0.1.jar替换成hadoop-2.7.6中的guava-11.0.2.jar(在各自的lib里看该版本的具体jar包名)
cd /export/servers/hadoop-2.7.6/share/hadoop/common/lib/
cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/
将hadoop的jia包复制到hive-1.2.2下的lib目录中,
cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/
删除Hive中lib目录下的jar包
rm -fr /export/servers/hive-1.2.2/lib/guava-14.0.1.jar
5、配置Hive系统环境变量
编辑系统环境变量文件profile,添加新内容,再source初始化profile
export HIVE_HOME=/export/servers/hive-1.2.2
export PATH=$PATH:$HIVE_HOME/bin
6、初始化Derby数据库
cd /export/servers/hive-1.2.2
bin/schematool -initSchema -dbType derby
7、连接Hive用于测试
8、测试Hive
执行show databases;查看数据库列表
9、修改Hive配置文件
(1)在Hive下目录conf里创建Hive配置文件hive-site.xml,在该文件中添加如下内容
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true </value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Itcast@2024</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_local/warehouse/</value>
</property>
</configuration>
(2)创建HDFS目录,用于存储Hive表和数据,例如创建/user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/warehouse
授予Hive用户(例如,hadoop)和Hadoop组(例如,hadoop)写入和执行该目录的权限
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chown -R hadoop:hadoop /user/hive/warehouse
10、上传MySQL驱动包
在/export/servers/hive-1.2.2/lib下上传MySQL驱动包
mysql-connector-java-8.0.23.jar
11、初始化MySQL
schematool -initSchema -dbType mysql
检查MySQL服务的状态,sudo systemctl status mysqld
12、连接Hive用于启动服务
二、远程模式
1、启动MetaStore服务
cd /export/servers/hive-1.2.2/conf/
hive --service metastore
2、启动HiveServer2服务
打开Hadoop1新窗口启动HiveServer2服务
hive --service hiveserver2
3、在虚拟机hadoop2安装Hive
(1)上传Hive安装包
进入/export/sofeware,使用rz命令上传Hive安装包,然后解压到目录/export/servers,ll查看。
tar -zxvf /export/software/apache-hive-1.2.2-bin.tar.gz -C /export/servers/
(2)重命名Hive安装目录
进入hadoop2的/export/servers/目录,修改Hive目录名为hive-1.2.2
(3)同步jar包
将hive-1.2.2中的guava-14.0.1.jar替换成hadoop-2.7.6中的guava-11.0.2.jar(在各自的lib里看该版本的具体jar包名)
cd /export/servers/hadoop-2.7.6/share/hadoop/common/lib/
cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/
将hadoop的jia包复制到hive-1.2.2下的lib目录中,
cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/
删除Hive中lib目录下的jar包
rm -fr /export/servers/hive-1.2.2/lib/guava-14.0.1.jar
4、修改Hive配置文件
进入虚拟机Hadoop2的Hive安装目录下conf目录,创建Hive配置文件hive-site.xml,在该文件中添加如下内容。
vi hive-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop1:9083</value>
</property>
</configuration>
5、配置Hive系统环境变量
进入/export/servers配置系统环境变量文件profile,添加如下新内容,然后初始化系统变量
vi /etc/profile
export HIVE_HOME=/export/servers/hive-1.2.2
export PATH=$PATH:$HIVE_HOME/bin
6、连接MetaStore服务
cd /export/servers/hive-1.2.2/lib
hive
7、连接HiveServer2服务
在虚拟机Hadoop2执行如下命令连接HiveServer2服务(在Hadoop1的第二个窗口启动过HiveServer2服务)
beeline -u jdbc:hive2://hadoop1:10000 -n root
成功连接HiveServer2服务,并且进入到Beeline的命令行界面
三、Hive数据库操作
1、在Hive中创建数据库hive_db
定义数据库的描述信息为“This is my hive_db”,指定数据库hive_db在HDFS存储数据的目录为/hive/hive_db,定义数据库hive_db的两个属性author和date,这两个属性的属性值分别为zhangsan和2022-07-01。语句如下:
create database if not exists hive_db comment 'This is my hive_db' location '/hive/hive_db' with dbproperties ('author'= 'zhangsan','date'='2022-07-01');
2、查看数据库hive_db的属性信息
describe database extended hive_db;
3、修改数据库hive_db的属性信息
将属性author和date的属性值修改为lisi和2022-07-02
alter database hive_db set dbproperties ('author'='lisi','date'='2022-07-02');
4、删除数据库
drop database hive_db;
四、表操作
1、创建表
先创建数据库itcast
create database if not exists itcast;
(1)创建内部表
在数据库itcast中创建内部表managed_table,语句如下:
create table if not exists
itcast.managed_table(
dept_id INT comment "This is deptid",
staff_id INT comment "This is staffid",
staff_name STRING comment "This is staffname",
staff_age INT comment "This is staffage",
salary FLOAT comment "This is staff salary",
hobby ARRAY<STRING> comment "This is staff hobby",
base_info MAP<STRING, INT> comment "Record height and weight",
person_info STRUCT<marry:STRING,children:STRING>)
row format delimited
fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n'
tblproperties("comment"="This is a managed table");
(2)创建外部表
在数据库itcast中创建外部表external_table,语句如下
create external table if not exists
itcast.external_table(
staff_id INT comment "This is staffid",
staff_name STRING comment "This is staffname",
salary FLOAT comment "This is staff salary"
)
row format delimited
fields terminated by ','
lines terminated by '\n'
location '/hive/external_table/';
(3)创建分区表
在数据库itcast中创建分区表partitioned_table,语句如下:
create table if not exists
itcast.partitioned_table(
staff_id INT comment "This is staffid",
staff_name STRING comment "This is staffname",
staff_gender STRING
)
partitioned by(
city STRING COMMENT "User live in city"
)
row format delimited
fields terminated by ','
lines terminated by '\n';
(4)创建桶表
在数据库 itcast 中创建桶表 clustered_table,语句如下:
create external table if not exists
itcast.clustered_table(
id STRING,
name STRING,
gender STRING,
age INT,
dept STRING
)
clustered by (dept) sorted by (age desc) into 3 buckets
row format delimited
fields terminated by ','
lines terminated by '\n'
location '/hive/clustered_table/';
2、查看表
(1)查看当前数据库所有表
use itcast;
show tables;
(2)查看表的详细结构信息
查看数据库itcast中表managed_table的详细结构信息。
desc formatted itcast.managed_table;
3、修改表
(1)将数据库itcast中表external_table重命名为external_table_new。
alter table itcast.external_table rename to external_table_new;
(2)将数据库itcast中表external_table_new的字段staff_name修改为staff_username,并且将该字段的数据类型修改为varchar(30)。
alter table itcast.external_table_new change staff_name staff_username varchar(30);
查看修改前后external_table_new表内容:
desc itcast.external_table_new;
(3)向数据库itcast中的表external_table_new添加字段staff_gender,指定该字段的数据类型为string。
alter table itcast.external_table_new add columns (staff_gender STRING);
4、删除表
删除数据库itcast中的表external_table_new,语句如下:
drop table itcast.external_table_new;
5、修改分区表的分区
(1)添加分区
为数据库itcast的分区表partitioned_table添加分区city=Nanjing。
alter table itcast.partitioned_table add partition(city="Nanjing");
查看分区表包含的分区:
show partitions itcast.partitioned_table;
(2)重命名分区
将分区表partitioned_table的分区city=Nanjing重命名为city=Chongqing。
alter table itcast.partitioned_table partition(city="Nanjing") rename to partition(city="Chongqing");
查看分区表包含的分区:
show partitions itcast.partitioned_table;
(3)删除分区
删除分区表partitioned_table的分区city=Chongqing:
alter table itcast.partitioned_table drop if exists partition(city="Chongqing");
查看分区表包含的分区:
show partitions itcast.partitioned_table;
相关文章:
【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)
目录 一、本地模式 1、安装MySQL 2、登录MySQL 3、修改密码 4、安装Hive 5、配置Hive系统环境变量 6、初始化Derby数据库 7、连接Hive用于测试 8、测试Hive 9、修改Hive配置文件 10、上传MySQL驱动包 11、初始化MySQL 12、连接Hive用于启动服务 二、远程模式 1、…...
bugku-simple MQTT-wp解析
1.下载题目打开题目,是一个流量包,题目说是MQTT,然后打开流量之后的流量都是MQTT,我们来搜一下MQTT是什么流量 MQTT流量: 是一种基于发布订阅模式的轻量级的通讯协议,并且该协议构建于TCP/IP协议之上&…...
【第四节】Git 分支管理
目录 前言 一、Git 分支简介 二、 分支的基本操作 2.1 创建分支 2.2 切换分支 2.3 列出分支 三、 分支的合并与删除 3.1 合并分支 3.2 删除分支 四、处理合并冲突 五、 总结 前言 Git 的分支管理是其核心功能之一,允许开发者在不影响主线开发的情况下进行…...
IDEA 修改格式化仅格式化本次改动代码
最近总是发现格式化的时候会格式化文件所有代码,提交Git 后再看提交日志,就很不清晰。修改方式如下 中文: 格式化代码快捷键[中文配置]: 英文: 格式化代码快捷键[英文配置]:...
UOB大华银行|校招网申综合能力SHL测评题库英语版本真题分析
大华银行有限公司(大华银行)是亚洲银行业的翘楚,大华银行总部位于新加坡,并在中国、印度尼西亚、马来西亚、泰国及越南设立了全资法人银行,在全球拥有约500 间分行及办事处,分布在亚太、欧洲与北美的19 个国…...
Redis应用—2.在列表数据里的应用
大纲 1.基于数据库 缓存双写的分享贴功能 2.查询分享贴列表缓存时的延迟构建 3.分页列表惰性缓存方案如何节约内存 4.用户分享贴列表数据按页缓存实现精准过期控制 5.用户分享贴列表的分页缓存的异步更新 6.数据库与缓存的分页数据一致性方案 7.热门用户分享贴列表的分…...
【Linux基础】基本开发工具的使用
目录 一、编译器——gcc/g的使用 gcc/g的安装 gcc的安装: g的安装: gcc/g的基本使用 gcc的使用 g的使用 动态链接与静态链接 程序的翻译过程 1. 一个C/C程序的构建过程,程序从源代码到可执行文件必须经历四个阶段 2. 理解选项的含…...
C++ 中面向对象编程如何实现动态绑定?
在 C 中,面向对象编程的一个重要特性就是动态绑定。动态绑定允许在程序运行时根据对象的实际类型来决定调用哪个函数,这为程序的灵活性和可扩展性提供了强大的支持。本文将详细介绍 C 中面向对象编程如何实现动态绑定。 一、静态绑定与动态绑定的概念 静…...
电源芯片的SYNC引脚
-----本文简介----- 主要内容包括: ① 电源芯片的SYNC引脚 ----- 正文 ----- 先赞↓后看,养成习惯! 1. SYNC引脚是什么? 电源芯片里面的SYNC引脚是 Synchronization clock in,意思是同步时钟输入。 2. SYNC引脚的作用…...
安卓报错Switch Maven repository ‘maven‘....解决办法
例如:Switch Maven repository ‘maven(http://developer.huawei.com/repo/)’ to redirect to a secure protocol 在库链接上方添加配置代码:allowInsecureProtocol true...
935. 骑士拨号器
935. 骑士拨号器 题目链接:935. 骑士拨号器 代码如下: class Solution { public:int knightDialer(int n) {if (n 1){return 10;}long long res 0;for (int j 0; j < 10; j){res dfs(n - 1, j);}return res % MOD;}int dfs(int i, int j){if (…...
linux下的posix信号量
目录 引言 信号量背景知识 PV操作 信号量接口 基于环形队列的PC模型 代码实现 demo模型 具体实现 引言 在多线程编程领域,同步机制是确保数据一致性和避免竞态条件的关键技术。Linux操作系统作为开源软件的杰出代表,提供了多种同步原语…...
【JavaWeb后端学习笔记】Spring框架下的Bean管理
Bean 1、Bean的获取2、Bean的作用域3、第三方Bean 1、Bean的获取 默认情况下,Spring项目启动时,会把Bean创建好交给IOC容器管理。当需要使用时,通过Autowired注解注入或者通过构造方法注入即可。 除此之外还可以通过Spring提供的Applicatio…...
如何在 ASP.NET Core 3.1 应用程序中使用 Log4Net
介绍 日志记录是应用程序的核心。它对于调试和故障排除以及应用程序的流畅性非常重要。 借助日志记录,我们可以对本地系统进行端到端的可视性,而对于基于云的系统,我们只能提供一小部分可视性。您可以将日志写入磁盘或数据库中的文件…...
Photoshop提示错误弹窗dll缺失是什么原因?要怎么解决?
Photoshop提示错误弹窗“DLL缺失”:原因分析与解决方案 在创意设计与图像处理领域,Photoshop无疑是众多专业人士和爱好者的首选工具。然而,在使用Photoshop的过程中,有时会遇到一些令人头疼的问题,比如突然弹出的错误…...
mall-admin-web开源项目搭建教程(图文)
本章教程,介绍如何在本地部署运行mall-admin-web这个开源项目。 开源地址:https://gitee.com/macrozheng/mall-admin-web mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计…...
nginx做为文件服务器
docker-compose 创建nginx version: 3services:nginx-web:image: nginx:1.23.4container_name: nginx-webenvironment:# 时区上海TZ: Asia/Shanghaiports:- "88:80"- "443:443"volumes:# 证书映射- /home/dockerdata/nginx/cert:/etc/nginx/cert# 配置文件…...
加速合并,音频与字幕的探讨
因上一节。合并时速度太慢了。显卡没用上。所以想快一点。1分钟的视频用了5分钟。 在合并视频时,进度条中的 now=None 通常表示当前处理的时间点没有被正确记录或显示。这可能是由于 moviepy 的内部实现细节或配置问题。为了加快视频合并速度并利用 GPU 加速,可以采取以下措…...
(3)spring security - 认识PasswordEncoder
目录 1.简介1.1.简单了解认证流程 2.密码验证3.PasswordEncoder的内置实现4.小结 目标: 简单了解认证的流程简单认识spring security中的Password Encoder 1.简介 还是以这幅图为基础,认识Password Encoder到底是什么? 1.1.简单了解认证流程…...
React 入门:JSX语法详解
简介 React是一个用于构建用户界面的JavaScript库,它引入了JSX语法,使得你可以在JavaScript代码中编写类似HTML的结构。JSX在编译后会被转换成合法的JavaScript对象。 JSX基础 JSX是一种看起来像HTML的JavaScript语法扩展。它并不直接被浏览器执行&am…...
Pandas常见函数
Pandas 是 Python 中用于数据分析和处理的强大工具库。以下是 Pandas 中一些常见的函数和方法,按用途分类总结: 1. 数据创建 pd.Series(data, index):创建一维的序列对象。pd.DataFrame(data, index, columns):创建二维的DataFra…...
【笔试】亚马逊
亚马逊的笔试题目有两道,一共70分钟 1.给一个数组代表每轮损失的血量power,另外一个变量是盾牌armor,可以选择任意一轮使用这个盾牌,可以抵挡min(power[i],armor)的攻击,请问最小血量是多少能够…...
【力扣算法】234.回文链表
快慢指针:一个指针走两步,一个指针走一步,当快指针走到链表末尾时,慢指针走到中间位置。 逆转链表:根据指针位置分成两个表,逆转第二个表。 按序判断就可以,如果是相同就是回文,反之…...
vue3-tp8-Element:对话框实现
效果 参考框架 Dialog 对话框 | Element Plus 具体实现 一、建立view页面 /src/views/TestView.vue 二、将路径写入路由 /src/router/index.js import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vueconst router create…...
35、Firefly_rk3399 同步互斥
文章目录 1、简述问题2、原子操作(atomic_ops )指令解析: 3、锁函数说明3.1、自旋锁API例子 3.2、信号量(semaphore)API例子 3.3、互斥量/锁API例子 3.4、信号量和互斥锁的区别 4、锁的内核实现4.1、自旋锁(…...
Docker-Dockerfile、registry
Dockerfile 一、概述 1、commit的局限 很容易制作简单的镜像,但碰到复杂的情况就十分不方便,例如碰到下面的情况: 需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 2、Dockerfile是什么 Dockerfile是一种更强大的镜…...
chattts生成的音频与字幕修改完善,每段字幕对应不同颜色的视频,准备下一步插入视频。
上一节中,实现了先生成一个固定背景的与音频长度一致的视频,然后插入字幕。再合并成一个视频的方法。 但是:这样有点单了,所以: 1.根据字幕的长度先生成视频片断 2.在片段上加上字幕。 3.合并所有片断,…...
8、笔记本品牌分类介绍:LG - 计算机硬件品牌系列文章
LG笔记本品牌以其高性能和先进技术而闻名,提供多种型号以满足不同用户的需求。 LG笔记本产品线包括多种类型,以满足不同用户的需求。其中,LG Gram Pro系列以其超薄设计和高性能配置受到关注。该系列笔记本采用16:10的OLED显示屏&…...
在 Vue 2 中隐藏页面元素的方法
目录 在 Vue 2 中隐藏页面元素的方法 引言 1. 使用 v-if 指令 2. 使用 v-show 指令 3. 使用自定义类名与 v-bind:class 4. 使用内联样式与 v-bind:style 5. 使用组件的 keep-alive 和条件渲染 在 Vue 2 中隐藏页面元素的方法 引言 在开发 Web 应用时,我们经…...
基于springboot+vue的高校校园交友交流平台设计和实现
文章目录 系统功能部分实现截图 前台模块实现管理员模块实现 项目相关文件架构设计 MVC的设计模式基于B/S的架构技术栈 具体功能模块设计系统需求分析 可行性分析 系统测试为什么我? 关于我项目开发案例我自己的网站 源码获取: 系统功能 校园交友平台…...
Redis是什么?Redis和MongoDB的区别在那里?
Redis介绍 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是关于Redis的详细介绍: 一、数据结构支持 字符串(String) 这是Redis最…...
《开源时间序列数据:探索与应用》
《开源时间序列数据:探索与应用》 一、开源时间序列数据概述二、热门的开源时间序列数据库1. InfluxDB2. TimescaleDB3. Prometheus4. OpenTSDB5. Graphite6. Druid 三、开源时间序列数据的应用场景1. 物联网领域2. 金融领域3. 运维监控领域4. 能源领域 四、开源时间…...
Java后端面试场景题汇总
1.50 亿数据如何去重&排序? 如此大的数据集进行去重(例如50亿数据条目),我们需要考虑内存和存储空间的限制,同时还需要有一个高效的算法。一般来说,这样的数据量无法直接载入内存进行处理,因此需要采用磁盘存储和分布式处理的技术。主要有以下几种思路: 外部排序…...
方法引用和lambda表达式的奥妙
方法引用替代Lambda表达式 什么情况可以使用方法引用替代lambda表达式? 下面代码中两处使用了lambda表达式,一个是filter内,一个是forEach内。其中,forEach内的lambda表达式可以被方法引用替代,但是filter内的lambda…...
AI 智能名片 S2B2C 商城小程序在社群团购运营中的作用与价值
摘要:本文深入探讨了 AI 智能名片 S2B2C 商城小程序在社群团购运营中的重要作用。随着社群团购的兴起,如何有效运营成为关键问题。AI 智能名片 S2B2C 商城小程序凭借其独特功能,能够在促进消费者互动、提升产品传播效果、影响购买决策以及实现…...
设计模式の建造者适配器桥接模式
文章目录 前言一、建造者模式二、适配器模式2.1、对象适配器2.2、接口适配器 三、桥接模式 前言 本篇是关于设计模式中建造者模式、适配器模式(3种)、以及桥接模式的笔记。 一、建造者模式 建造者模式是属于创建型设计模式,通过一步步构建一个…...
.net framework手动升级到.net core注意点
因为项目原因,还使用着比较原始的 .NETFramework框架,但因为某种原因,暂时不让升级到.NET 6。为了能够解锁更多 VisualStudio2022的功能,尝试手动修改 csproj文件。 这个过程中,也会遇到不少坑,再次做个记…...
排队论、负载均衡和任务调度关系
目录 排队论、负载均衡和任务调度关系 一、排队论 二、负载均衡 三、任务调度 四、总结 排队论、负载均衡和任务调度关系 排队论为负载均衡和任务调度提供了数学理论和方法支持 排队论、负载均衡和任务调度是三个相关但不同的概念。以下是对这三个概念的详细解释和它们之…...
【C++图论】1042. 不邻接植花|1712
本文涉及知识点 C图论 LeetCode1042. 不邻接植花 有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。 另外,所有花园 最多 有…...
AI开源南京分享会回顾录
AI 开源南京分享会,已于2024年11月30日下午在国浩律师(南京)事务所5楼会议厅成功举办。此次活动由 KCC南京、PowerData、RISC-Verse 联合主办,国浩律师(南京)事务所协办。 活动以“开源视角的 AI 对话”为主…...
Java版-图论-最短路-Floyd算法
实现描述 网络延迟时间示例 根据上面提示,可以计算出,最大有100个点,最大耗时为100*wi,即最大的耗时为10000,任何耗时计算出来超过这个值可以理解为不可达了;从而得出实现代码里面的: int maxTime 10005…...
ChatGPT大模型 创作高质量文案的使用教程和案例
引言 随着人工智能技术的飞速发展,大语言模型如 ChatGPT 在创作文案、生成内容方面展现出了强大的能力。无论是个人用户还是企业用户,都可以利用 ChatGPT 提高工作效率、激发创意、甚至解决实际问题。本文将详细介绍 ChatGPT 如何帮助创作各类高质量文案,并通过具体案例展示…...
SQL注入及解决
SQL注入是一种常见的网络攻击方式,攻击者通过在输入字段中插入恶意的SQL代码,诱使应用程序执行攻击者构造的SQL语句,从而达到非法获取数据、篡改数据或执行恶意操作的目的。 以下是SQL注入的主要原理总结: 1. 核心原理 SQL注入…...
uni-app多环境配置动态修改
前言 这篇文章主要介绍uniapp在Hbuilderx 中,通过工程化,区分不同环境、动态修改小程序appid以及自定义条件编译,解决代码发布和运行时手动切换问题。 背景 当我们使用uniapp开发同一个项目发布不同的环境二级路径不同时,这时候…...
EasyPlayer.js播放器如何在iOS上实现低延时直播?
随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。 那么要在iOS上…...
mHand Pro动捕数据手套在人形机器人领域的具体运用
mHandPro是一款高精度的动作捕捉数据手套,可应用于动作捕捉与VR交互等领域,配套”mHand Studio“引擎,可实时捕捉真人手部位姿及运动轨迹数据,将数据导出还可以用于人形机器人的训练加速高精度机器人操作技能的培训进程。 高精度动…...
【css常用动画总结01】
一、效果如下: 屏幕录制2024-11-27 17.28.30 二、css常用动画代码: .flex-box{position: relative; } .animation-all {display: flex;p{margin:0;font-size: 12px;}.animate-test1 {width: 102.4px;height: 102.4px;background: url(../assets/images/…...
从入门到精通:系统化棋牌游戏开发全流程教程
棋牌游戏开发需要丰富的技术知识和全面的规划,从开发环境搭建到实际功能实现,步骤清晰且逻辑严谨。以下是完整教程,涵盖了每个关键环节,并提供相关软件的具体下载地址,助力开发者高效完成棋牌游戏项目。 一、开发环境准…...
MyBatis 框架学习与实践
引言 MyBatis 是一个流行的 Java 持久层框架,它提供了简单的方法来处理数据库中的数据。本文将结合笔记和图片内容,详细讲解 MyBatis 的使用,包括配置、注解、优化技巧以及如何处理特殊字符和参数。 1. MyBatis 基础 1.1 引入依赖 首先&a…...
数据可视化的Python实现
一、GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的、广播的和web 形式的,识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件,GDELT 为全…...