YOLOv5训练自定义模型 训练

news2024/11/14 20:52:10

说明:

1、训练过程请参考官网:https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data

2、本课使用的是YOLOv5 6.1版本,其他版本训练过程可能有不同,请以官网为准

3、硬件:Windows 11 、GPU GeForce 3070Ti(8G)

YOLOv5训练自定义模型

一、安装Pytorch 及 YOLO v5

1.1 安装pytorch GPU版

1.1.1 准备工作

先去pytorch官网查看支持的最高CUDA版本;

pytorch

最新版:https://pytorch.org/get-started/locally/
历史版本:https://pytorch.org/get-started/previous-versions/
在这里插入图片描述

再查看所需CUDA版本对应的显卡驱动版本:

查看自己显卡最高支持的cuda 的版本

nvidia-smi.exe

我的显卡驱动版本是497.09 支持的cuda最高版本是11.5
在这里插入图片描述
查看cuda版本和显卡驱动的对应关系:
https://tech.amikelive.com/node-930/cuda-compatibility-of-nvidia-display-gpu-drivers/
在这里插入图片描述
下载显卡对应版本驱动:
查看自己机器的显卡型号
在这里插入图片描述
最新版显卡驱动:https://www.nvidia.com/download/index.aspx

在这里插入图片描述
其他历史版本显卡驱动:https://www.nvidia.com/Download/Find.aspx

下载对应版本CUDA:

官网:https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述
下载对应版本cuDNN

参考TensorFlow GPU支持CUDA列表:https://www.tensorflow.org/install/source_windows?hl=zh-cn
查看cuDNN和CUDA支持对应版本号

cudnn官网:https://developer.nvidia.com/zh-cn/cudnn
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

下载VS studio:https://visualstudio.microsoft.com/zh-hans/

  • VS studio:安装社区版即可

  • 安装顺序:

    • VS studio:安装社区版即可

    • 显卡驱动:安装完重启电脑可以使用nvidia-smi查看显卡信息

    • CUDA:按流程安装即可
      C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5

    • cudnn:

      • 解压cudnn压缩文件:

      • 进入cuda目录,将cudnn所有文件复制并替换
        在这里插入图片描述
        C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5
        在这里插入图片描述

https://zhuanlan.zhihu.com/p/460806048

  * 如我的cuda目录位置为:`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1`

* 更改环境变量:

在这里插入图片描述
在这里插入图片描述
验证cuda是否安装成功
验证cuda是否安装成功,首先win+R启动cmd,进入到CUDA安装目录下的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\extras\demo_suite然后分别运行bandwidthTest.exe和deviceQuery.exe,应该得到图28,返回Result=PASS表示cuda安装成功。图28中只运行了bandwidthTest.exe,同样运行deviceQuery.exe也可得到PASS。
在这里插入图片描述

  * 双击path

    <img src="https://enpei-md.oss-cn-hangzhou.aliyuncs.com/img20220331174452.png?x-oss-process=style/wp" style="zoom: 33%;" />

  * 新建2个路径(cuda bin、libnvvp)

    * 如我的路径为:`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin`和`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp`

    <img src="https://enpei-md.oss-cn-hangzhou.aliyuncs.com/img20220331174627.png?x-oss-process=style/wp" style="zoom:33%;" />
  • 重启电脑

1.1.2 安装pytorch

创建conda虚拟环境,参考你选择的版本安装即可

  • 最新版:https://pytorch.org/get-started/locally/
  • 历史版本:https://pytorch.org/get-started/previous-versions/

pip install torch1.12.1+cu113 torchvision0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

在这里插入图片描述

验证 PyTorch是否安装成功
打开Anaconda prompt命令窗口,激活环境,输入python,进入python开发环境中
1.import torch

2.torch.cuda.is_available()

1.True
在这里插入图片描述

1.2 安装YOLO v5

  • 安装
    https://github.com/ultralytics/yolov5
# 克隆地址
git clone https://github.com/ultralytics/yolov5.git		
# 如果下载速度慢,参考课程附件:
Windows软件/yolov5-master.zip 

# 进入目录
在yolov5-master目录中执行下面命令
# 安装依赖
pip3 install -r requirements.txt		

在这里插入图片描述
在这里插入图片描述

  • 下载预训练权重文件

下载地址:https://github.com/ultralytics/yolov5/releases

在这里插入图片描述

在yolov5-master新建weights文件夹, 将下载权重文件放到weights文件夹中

在这里插入图片描述
在这里插入图片描述

  • 测试安装
    在yolov5-master目录中执行下面命令
python detect.py --source ./data/images/ --weights weights/yolov5s.pt --conf-thres 0.4

在这里插入图片描述

在这里插入图片描述

到此说明环境安装成功

二、YOLO v5训练自定义数据

2.1 准备数据集

2.1.1 创建 dataset.yaml

复制yolov5-master/data/coco128.yaml一份,比如为coco_chv.yaml
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/CHV_dataset  # 数据所在目录
train: images/train  # 训练集图片所在位置(相对于path)
val:  images/val # 验证集图片所在位置(相对于path)
test:  # 测试集图片所在位置(相对于path)(可选)

# 类别
nc: 6  # 类别数量
names: ['person','vest','blue helmet','red helmet','white helmet','yellow helmet']  # 类别标签名

2.1.2 标注图片

使用LabelImg等标注工具标注图片(需要支持YOLO格式)
LabelImg下载地址 https://github.com/tzutalin/labelImg)
在这里插入图片描述

YOLO格式标签:

在这里插入图片描述

  • 一个图一个txt标注文件(如果图中无所要物体,则无需txt文件);
  • 每行一个物体;
  • 每行数据格式:类别id、x_center y_center width height
  • xywh必须归一化(0-1),其中x_center、width除以图片宽度,y_center、height除以画面高度;
  • 类别id必须从0开始计数

2.1.3 组织目录结构

  • datasetsyolov5-master同级目录;
  • YOLO会自动将../datasets/CHV_dataset/images/train/ppe_1106.jpg中的/images/替换成/labels/以寻找它的标签,如../datasets/CHV_dataset/labels/train/ppe_1106.txt,所以根据这个原则,我们一般可以:
    • images文件夹下有trainval文件夹,分别放置训练集和验证集图片;
    • labels文件夹有trainval文件夹,分别放置训练集和验证集标签(yolo格式);

2.2 选择合适的预训练模型

根据你的设备,选择合适的预训练模型,具体模型比对如下:
模型下载地址
https://github.com/ultralytics/yolov5
在这里插入图片描述

复制models下对应模型的yaml文件,重命名,并修改其中:
在这里插入图片描述

nc: 6  # 类别数量

在这里插入图片描述

2.3 训练

下载对应的预训练模型权重文件,可以放到weights目录下,设置本机最好性能的各个参数,即可开始训练,课程中训练了以下参数:

# yolov5n
python .\train.py --data .\data\coco_chv.yaml --cfg .\models\yolov5n_chv.yaml --weights .\weights\yolov5n.pt --batch-size 20 --epochs 120 --workers 4 --name base_n --project yolo_test


# yolov5s 
python .\train.py --data .\data\coco_chv.yaml --cfg .\models\yolov5s_chv.yaml --weights .\weights\yolov5s.pt --batch-size 16 --epochs 120 --workers 4 --name base_s --project yolo_test

# yolov5m 
python .\train.py --data .\data\coco_chv.yaml --cfg .\models\yolov5m_chv.yaml --weights .\weights\yolov5m.pt --batch-size 12 --epochs 120 --workers 4 --name base_m --project yolo_test



# yolov5n6 1280
python .\train.py --data .\data\coco_chv.yaml --img-size 1280 --cfg .\models\yolov5n6_chv.yaml --weights .\weights\yolov5n6.pt --batch-size 20 --epochs 120 --workers 4 --name base_n6 --project yolo_test

更多参数见train.py

训练结果在runs/train/中可见,一般训练时间在几个小时以上。
开始训练
训练时不要翻墙
在这里插入图片描述

训练完成
在这里插入图片描述
训练结果
在这里插入图片描述

2.4 可视化

2.4.1 wandb

YOLO官网推荐使用https://wandb.ai/。

  • 使用pip install wandb安装扩展包;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    153f2c145f0b461849d0a587e2ac2200151130be
    在这里插入图片描述

  • 去官网注册账号;

  • 训练的时候填写key秘钥,地址:
    在这里插入图片描述

  • 打开网站即可查看训练进展。

关闭wandb

wandb offline

2.4.2 Tensorboard

tensorboard --logdir=./runs

2.3 测试评估模型

2.3.1 测试

Usage - sources:
    $ python path/to/detect.py --weights yolov5s.pt --source 0              # webcam
                                                             img.jpg        # image
                                                             vid.mp4        # video
                                                             path/          # directory
                                                             path/*.jpg     # glob
                                                             'https://youtu.be/Zgi9g1ksQHc'  # YouTube
                                                             'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP stream
                                                             
# 如                                                             
python detect.py --source ./test_img/img1.jpg --weights runs/train/base_n/weights/best.pt --conf-thres 0.3
# 或
python detect.py --source 0 --weights runs/train/base_n/weights/best.pt --conf-thres 0.3

2.3.2 评估

# n
# python val.py --data ./data/coco_chv.yaml  --weights runs/train/base_n/weights/best.pt --batch-size 12
# 4.3 GFLOPs
							 Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95
                 all        133       1084       0.88      0.823      0.868      0.479
              person        133        450      0.899      0.808      0.877      0.484
                vest        133        217      0.905      0.788      0.833      0.468
         blue helmet        133         44      0.811       0.75      0.803      0.489
          red helmet        133         50      0.865        0.9      0.898      0.425
        white helmet        133        176      0.877      0.807      0.883      0.467
       yellow helmet        133        147      0.922      0.885      0.917      0.543
Speed: 0.2ms pre-process, 4.7ms inference, 3.9ms NMS per image at shape (12, 3, 640, 640)
    

# s
# python val.py --data ./data/coco_chv.yaml  --weights runs/train/base_s/weights/best.pt --batch-size 12
# 15.8 GFLOPs

							 Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95
                 all        133       1084      0.894      0.848      0.883      0.496
              person        133        450      0.915       0.84      0.887      0.508
                vest        133        217      0.928      0.834      0.877      0.501
         blue helmet        133         44      0.831       0.75      0.791      0.428
          red helmet        133         50        0.9      0.899      0.901      0.473
        white helmet        133        176      0.884      0.858       0.91      0.496
       yellow helmet        133        147      0.908      0.905       0.93      0.567
Speed: 0.2ms pre-process, 8.3ms inference, 3.9ms NMS per image at shape (12, 3, 640, 640)



# m
# python val.py --data ./data/coco_chv.yaml  --weights runs/train/base_m/weights/best.pt --batch-size 12
# 48.0 GFLOPs
							 Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95
                 all        133       1084      0.928      0.845      0.886      0.512
              person        133        450      0.935      0.794      0.895      0.529
                vest        133        217      0.922      0.813      0.868      0.508
         blue helmet        133         44      0.916      0.818      0.812      0.464
          red helmet        133         50        0.9        0.9      0.892      0.488
        white helmet        133        176      0.932      0.841      0.899      0.511
       yellow helmet        133        147      0.964      0.905      0.948      0.574
Speed: 0.4ms pre-process, 18.8ms inference, 4.6ms NMS per image at shape (12, 3, 640, 640)


# n6 1280 :
# python val.py --data ./data/coco_chv.yaml  --weights runs/train/base_n6_1280/weights/best.pt --batch-size 12 --img-size 1280
# 4.3 GFLOPs
							 Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95
                 all        133       1084      0.906      0.858      0.901      0.507
              person        133        450      0.903      0.831      0.887      0.503
                vest        133        217      0.922      0.816       0.86      0.486
         blue helmet        133         44      0.843      0.795      0.828      0.465
          red helmet        133         50      0.899       0.92      0.954      0.507
        white helmet        133        176      0.921      0.865      0.925      0.515
       yellow helmet        133        147      0.947      0.918      0.954      0.566
Speed: 1.5ms pre-process, 14.1ms inference, 2.2ms NMS per image at shape (12, 3, 1280, 1280)
   

三、得到最优的训练结果

参考:https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results

3.1 数据:

  • 每类图片:建议>=1500张;
  • 每类实例(标注的物体):建议>=10000个;
  • 图片采样:真实图片建议在一天中不同时间、不同季节、不同天气、不同光照、不同角度、不同来源(爬虫抓取、手动采集、不同相机源)等场景下采集;
  • 标注:
    • 所有图片上所有类别的对应物体都需要标注上,不可以只标注部分;
    • 标注尽量闭合物体,边界框与物体无空隙,所有类别对应物体不能缺少标签;
  • 背景图:背景图用于减少假阳性预测(False Positive),建议提供0~10%样本总量的背景图,背景图无需标注;

3.2 模型选择

模型越大一般预测结果越好,但相应的计算量越大,训练和运行起来都会慢一点,建议:

  • 在移动端(手机、嵌入式)选择:YOLOv5n/s/m
  • 云端(服务器)选择:YOLOv5l/x

3.3 训练

  • 对于小样本、中样本,建议试用预训练模型开始训练:
python train.py --data custom.yaml --weights yolov5s.pt
                                             yolov5m.pt
                                             yolov5l.pt
                                             yolov5x.pt
                                             custom_pretrained.pt
  • 对于大样本,建议从0开始训练(无需预训练模型):
# --weights ''

python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml
                                                      yolov5m.yaml
                                                      yolov5l.yaml
                                                      yolov5x.yaml
  • Epochs:初始设定为300,如果很早就过拟合,减少epoch,如果到300还没过拟合,设置更大的数值,如600, 1200等;
  • 图像尺寸:训练时默认为--img 640,如果希望检测出画面中的小目标,可以设为--img 1280(检测时也需要设为--img 1280才能起到一样的效果)
  • Batch size:选择你硬件能承受的最大--batch-size
  • 超参数(Hyperparameters):初次训练暂时不要改,具体参见https://github.com/ultralytics/yolov5/issues/607
  • 更多:官网建议 查看http://karpathy.github.io/2019/04/25/recipe/

错误

  1. OpenMP错误: 日志中多次提到 OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.,这是一个与OpenMP并行框架有关的错误。出现这个错误的原因可能是因为您的环境中有多个版本的OpenMP。您可以尝试设置环境变量 KMP_DUPLICATE_LIB_OK=TRUE 来解决这个问题,但这只是一个临时的解决方法。最佳的做法是确保只有一个OpenMP运行时链接到进程中。

  2. SSL错误: 日志中提到了 SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)')),这是与SSL连接有关的错误。可能的原因包括:服务器或中间代理意外关闭了连接、网络问题、证书问题等。这个问题可能需要更多的调查。

针对上述问题,我提供以下建议:

  1. 解决OpenMP错误:

    • 在启动Python脚本之前,尝试设置环境变量:
      export KMP_DUPLICATE_LIB_OK=TRUE
      
      或在Windows下:
      $env:KMP_DUPLICATE_LIB_OK="TRUE"
      
  2. 解决SSL错误:

    • 如果您在某个特定网络环境下工作,例如公司网络,尝试更换网络或使用VPN。
    • 确保您使用的Python和相关的库是最新的。尤其是 requestsurllib3 这两个库,它们经常因为SSL问题被更新。
    • 如果您尝试连接的是一个您知道的安全的服务器,但仍然收到SSL错误,您可以考虑禁用SSL证书验证(尽管这样做会带来安全风险)。例如,如果您使用的是 requests 库,您可以在请求中设置 verify=False

希望上述建议对您有所帮助。如果您有其他问题或需要进一步的帮助,请随时告诉我。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element-ui tree组件实现在线增删改

这里要实现一个tree 增删改 <!--oracle巡检项--> <template><div class"oracle_instanceType"><el-row type"flex" align"middle" justify"space-between"><iclass"el-icon-s-fold iBox"click&q…

班级成绩管理利器

在现代教育管理中&#xff0c;一款方便快捷的班级查询工具是老师们的必备利器。易查分就是这样一款工具&#xff0c;能够帮助老师和学生轻松地管理和查询成绩。传统的纸质成绩单已经被易查分的电子成绩单所取代&#xff0c;这种方式带来了方便快捷等多种优势&#xff0c;为学生…

笔记1.2 计算机网络结构

网络边缘 主机、网络应用 接入网络&#xff0c;物理介质 有线或无线通信链路 网络核心&#xff08;核心网络&#xff09;&#xff1a; 互联的路由器&#xff08;或分组转发设备&#xff09; 网络之网络 一、网络边缘 主机&#xff08;端系统&#xff09;&#xff1a; 位…

PHP通过pem文件校验签名异常

问题描述&#xff1a; 在对接第三方支付过程中&#xff0c;支付成功异步回调时&#xff0c;校验签名&#xff0c;一直无法通过。 但是在支付成功时有一个同步返回也需要校验签名&#xff0c;用的是同样的校验方法&#xff0c;都没有问题。 当把回调时传递的参数放在postman中&a…

Windows自带的远程桌面连接教程

文章目录 1.鼠标右键“我的电脑”-“属性”2.在左侧找到“远程设置”-在远程桌面设置处勾选“允许远连接到此计算机”3.关闭防火墙&#xff0c;根据使用的网络选择关闭对应的防火墙4.远程连接按WINR,输入mstsc&#xff0c;回车进入到远程桌面连接页面 1.鼠标右键“我的电脑”-“…

2023/9/15 -- C++/QT

作业&#xff1a; 1> 将工程文件进行注释 2> 03login_box.pro: QT core gui #core核心库 gui图形开发库greaterThan(QT_MAJOR_VERSION, 4): QT widgets #4.0版本以上自动包含widgets库CONFIG c11 #支持C11版本# The following define makes your compiler em…

Elasticsearch 8.10 中引入查询规则 - query rules

作者&#xff1a;Kathleen DeRusso 我们很高兴宣布 Elasticsearch 8.10 中的查询规则&#xff01; 查询规则&#xff08;query rules&#xff09;允许你根据正在搜索的查询词或根据作为搜索查询的一部分提供的上下文信息来更改查询。 什么是查询规则&#xff1f; 查询规则&…

Linux MyFile

在之前&#xff0c;我们应该都多少接触过了C语言的文件管理&#xff0c;fopen&#xff0c;fclose&#xff0c;fputs....等函数的用法&#xff0c;也分析了系统层面上C语言是如何实现文件管理的。 回顾 上一个文章&#xff0c;我们讲解了十分重要的知识&#xff0c;在文件被打…

组合拳SSRF+redis未授权访问

目录 一、SSRF 二、redis未授权访问 三、组合利用 1.写入Webshell 2.反弹shell 一、SSRF 一台web服务器对其他服务器发起请求&#xff0c;以加载其他服务器的web内容或数据 但因请求参数没有进行严格过滤&#xff0c;攻击者可能会通过SSRF漏洞来访问敏感数据、执行未经授…

Deformable Convolution 可变形卷积

论文&#xff1a;https://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Deformable_Convolutional_Networks_ICCV_2017_paper.pdf 代码&#xff1a;https://github.com/4uiiurz1/pytorch-deform-conv-v2/blob/master/deform_conv_v2.py 参考博文&#xff1a;可变形卷…

【哈希加密算法】MD5和SHA-1基本介绍和使用!

一、哈希算法 哈希算法&#xff0c;根据碰撞概率&#xff0c;输出的长度越长&#xff0c;就越难产生碰撞&#xff0c;也就越安全。 常用的哈希算法如下&#xff1a; &#xff08;1&#xff09;哈希算法的用途 数据加密&#xff1a;哈希算法可以将原始数据转换成不可逆的加密字…

第二章:25+ Python 数据操作教程(第二十一节PIP连接错误:SSL 证书验证失败解决办法)

在公司网络中安装 python 包时最常见的问题是 SSL 证书验证失败。有时公司会屏蔽网络中的某些网站&#xff0c;因此员工无法访问这些网站。每当他们尝试访问这些网站时&#xff0c;都会显示“由于公司政策&#xff0c;访问被拒绝”。它会导致到达主要 python 网站时出现连接错误…

(面试经典刷题)挑战一周刷完150道-Python版本-第3天(40个题)-I(前10个题)

一、长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 可以是暴…

数据结构与算法(C语言版)P1---算法效率

算法的效率&#xff1a;算法的时间复杂度和空间复杂度 【本节目标】 1.算法效率2.时间复杂度3.空间复杂度4.常见时间复杂度以及复杂oj练习 1、算法效率 1.1、如何衡量一个算法是的好坏 如何衡量一个算法的好坏呢&#xff1f;比如斐波那契数列&#xff1a; long long Fib(…

面试官:我们深入聊聊Java虚拟机吧

哈喽&#xff01;大家好&#xff0c;我是奇哥&#xff0c;一位专门给面试官添堵的职业面试员 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读&#xff0c;回复【资料】更有我为大家准备的福利哟&#xff01; 文章目录 前言面试Java虚拟机内存模型垃圾收集器…

2023年CRM系统成功落地的5个标准

企业做CRM选型时都在思考投入产出比&#xff0c;花费上万元、甚至几十万元和几个月的时间购买和实施CRM&#xff0c;能否为公司带来降本增效的变革&#xff1f;CRM上线后&#xff0c;需要多长时间才能真切地看到效果&#xff1f;评估CRM的使用效果&#xff0c;需要每个企业制定…

【C++STL基础入门】queue基础使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、队列是什么二、queue的基础使用2.1 queue的构造函数2.2 queue的属性函数 总结 前言 C标准模板库&#xff08;STL&#xff09;提供了一系列强大的容器和算法…

vi/vim编辑器

vi和vim区别 vi 和 vim 是常见的文本编辑器&#xff0c;以下是它们之间的区别&#xff1a; 功能和特性&#xff1a; vi 是最早的版本&#xff0c;是在早期Unix系统中广泛使用的编辑器。vi 相对较简单&#xff0c;功能主要集中在基本的文本编辑操作上&#xff0c;如插入、删除、…

MyBatis: 配置文件解析流程

XmlConfigurationBuilder类来解析配置文件。 调用了build方法&#xff0c;其代码如下&#xff1a; 其中通过parse方法返回一个Configuration对象&#xff0c;在传递给build方法。 parse方法代码如下&#xff1a; 其中调用了parseConfiguration方法&#xff0c; 可以看到其中…

hive 静态分区与动态分区(笔记)

目录 前言&#xff1a; 静态分区&#xff1a; 1.创建分区 2.删除分区 3.在分区中插入数据 4.查看分区表数据 动态分区 &#xff1a; 2.查看v表源数据 3.以emp_name为动态字段数据抽取到employee表 总结 前言&#xff1a; Hive中的分区就是把一张大表的数据按照业务需要…