Linux虚拟机安装Hive(mysql安装)

news2024/11/20 2:20:18

Hive安装

    • 第01节 Hive安装部署
      • 1. 安装前准备
      • 2. 安装MySQL
      • 3. Hive安装配置
      • 4. metastore服务
    • 第02节. Hive客户端的使用
      • 1. 客户端介绍
      • 2. HiveServer2服务
      • 3. Hive CLI的使用
      • 4. beeline客户端
      • 5. DataGrip可视化客户端
    • 第02节 Hive简单使用
      • 1. 基本操作
      • 2. 查看YARN及HDFS
      • 3. 总结

第01节 Hive安装部署

1. 安装前准备

由于Hive是一款基于Hadoop的数据仓库软件,通常部署运行在Linux系统之上。因此必须要先保证服务器的基础环境正常,Hadoop环境正常运行,Hive不是分布式安装运行的软件,其分布式的特性主要借由Hadoop完成。包括分布式存储、分布式计算。

  • 创建服务端目录用于存放Hive安装文件

    # 用于存放安装包
    mkdir /opt/tools
    # 用于存放解压后的文件
    mkdir /opt/server
    
  • 切换到/opt/tools目录,上传hive安装包

    cd /opt/tools
    
  • 共涉及到两个安装包,分别是apache-hive-3.1.3-bin.tar.gz与mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar

2. 安装MySQL

前面提到Hive允许将元数据存储于本地或远程的外部数据库中,这种设置可以支持Hive的多会话生产环境,在本案例中采用MySQL作为Hive的元数据存储库。

  • 卸载Centos7自带mariadb

    # 查找
    rpm -qa|grep mariadb
    # mariadb-libs-5.5.52-1.el7.x86_64
    # 卸载
    rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps
    
  • 解压mysql

    # 创建mysql安装包存放点
    mkdir /opt/server/mysql
    # 解压
    tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar -C /opt/server/mysql/
    
  • 执行安装

    # 安装依赖
    yum -y install libaio
    yum -y install libncurses*
    yum -y install perl perl-devel
    # 切换到安装目录
    cd /opt/server/mysql/
    # 安装
    rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm
    
  • 启动Mysql

    #启动mysql
    systemctl start mysqld.service
    #查看生成的临时root密码
    cat  /var/log/mysqld.log | grep password
    

在这里插入图片描述

  • 修改初始的随机密码

    # 登录mysql
    mysql -u root -p
    Enter password:     #输入在日志中生成的临时密码
    # 更新root密码  设置为root
    set global validate_password_policy=0;
    set global validate_password_length=1;
    set password=password('root');
    
  • 授予远程连接权限

    grant all privileges on *.* to 'root' @'%' identified by 'root';
    # 刷新
    flush privileges;
    
  • 控制命令

    #mysql的启动和关闭 状态查看
    systemctl stop mysqld
    systemctl status mysqld
    systemctl start mysqld
    
    #建议设置为开机自启动服务
    systemctl enable  mysqld
    #查看是否已经设置自启动成功
    systemctl list-unit-files | grep mysqld
    

3. Hive安装配置

  • 解压安装包

    # 切换到安装包目录
    cd /opt/tools
    # 解压到/root/server目录
    tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/server/
    
  • 解决Hive与Hadoop之间guava版本差异,Hive与Hadoop都存在此jar包,不过版本不同,需要删除一个。

    cd /opt/server/apache-hive-3.1.3-bin/
    rm -rf lib/guava-19.0.jar
    cp /opt/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
    
  • 添加mysql_jdbc驱动到hive安装包lib目录下

    # 上传mysql-connector-java-5.1.38.jar
    cd /opt/server/apache-hive-3.1.3-bin/lib
    
  • 修改hive环境变量文件,指定Hadoop的安装路径

    cd /opt/server/apache-hive-3.1.3-bin/conf
    cp hive-env.sh.template hive-env.sh
    vim hive-env.sh
    # 加入以下内容
    HADOOP_HOME=/opt/server/hadoop-3.3.0
    export HIVE_CONF_DIR=/opt/server/apache-hive-3.1.3-bin/conf
    export HIVE_AUX_JARS_PATH=/opt/server/apache-hive-3.1.3-bin/lib
    export HADOOP_HEAPSIZE=1024
    

    hive启动的时候,默认申请的jvm堆内存大小为256M,jvm堆内存申请的太小,导致后期开启本地模式,执行复杂的sql时经常会报错:java.lang.OutOfMemoryError: Java heap space,因此最好提前调整一下HADOOP_HEAPSIZE这个参数。

  • 整合hadoop

    在hadoop的配置文件core-site.xml中添加如下属性,hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户的身份访问Hadoop集群。因此,需要将hiveserver2的启动用户设置为Hadoop的代理用户,配置方式如下:

    <!-- 配置所有节点的root用户都可作为代理用户 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <!--配置root用户能够代理的用户组为任意组-->
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    <!--配置root用户能够代理的用户为任意用户-->
    <property>
        <name>hadoop.proxyuser.root.users</name>
        <value>*</value>
    </property>
    

    需要重启Hadoop集群

  • 新建 hive-site.xml 文件,内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密码等信息

    vim hive-site.xml
    
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
        <!-- 存储元数据mysql相关配置 /etc/hosts -->
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value> jdbc:mysql://server:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>root</value>
        </property>
    
        <!-- 指定hiveserver2连接的host -->
        <property>
            <name>hive.server2.thrift.bind.host</name>
            <value>server</value>
        </property>
    
        <!-- 指定hiveserver2连接的端口号 -->
        <property>
            <name>hive.server2.thrift.port</name>
            <value>10000</value>
        </property>
    
        <!-- 远程模式部署metastore metastore地址
        主机名需要改为metastore服务所在节点,端口号无需修改,metastore服务的默认端口就是9083    
        -->
        <property>
            <name>hive.metastore.uris</name>
            <value>thrift://server:9083</value>
        </property>
    
    </configuration>
    
  • 初始化元数据库,当使用的 hive 是 1.x 版本时,可以不进行初始化操作,Hive 会在第一次启动的时候会自动进行初

    始化,但不会生成所有的元数据信息表,只会初始化必要的一部分,在之后的使用中用到其余表时会自动创建;

  • 当使用的 hive 是 2以上版本时,必须手动初始化元数据库,初始化命令:

    cd /opt/server/apache-hive-3.1.3-bin/bin
    ./schematool -dbType mysql -initSchema
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ln5m1PTX-1672287568721)(5.Hive入门.assets/image-20211110100652604.png)]

  • 初始化成功会在mysql中创建74张表

在这里插入图片描述

4. metastore服务

Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通 过连接metastore服务,由metastore再去连接MySQL数据库来存取元数据。

有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码 ,只需要连接metastore 服务即可。某种程度上也保证了hive元数据的安全。

为方便后续使用Hive相关命令,将Hive加入到环境变量中。

  • 添加环境变量

    vim /etc/profile
    export HIVE_HOME=/opt/server/apache-hive-3.1.2-bin
    export PATH=$HIVE_HOME/bin:$PATH
    
  • 使用配置的环境变量立即生效

    source /etc/profile
    
  • 启动metastore服务

    #前台启动  关闭ctrl+c
    /opt/server/apache-hive-3.1.3-bin/bin/hive --service metastore
    #前台启动开启debug日志
    /opt/server/apache-hive-3.1.3-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console  
    #后台启动 进程挂起  关闭使用jps + kill -9 日志将会被记录到当前目录的metastore.log中
    nohup /opt/server/apache-hive-3.1.3-bin/bin/hive --service metastore >metastore.log 2>&1 &
    #nohup:放在命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态
    #&:放在命令结尾,表示后台运行
    #2>&1:表示将错误重定向到标准输出上
    #一般会组合使用:nohup  [xxx命令操作]> file  2>&1 &,表示将xxx命令运行的结果输出到file中,并保持命令启动的进程在后台运行。
    

第02节. Hive客户端的使用

1. 客户端介绍

Hive发展至今,总共历经了两代客户端工具

  • 第一代客户端(deprecated不推荐使用):$HIVE_HOME/bin/hive, 是一个 shellUtil。主要功能:一是可用于以 交互或批处理模式运行Hive查询;二是用于Hive相关服务的启动,比如metastore服务。
  • 第二代客户端(recommended 推荐使用):$HIVE_HOME/bin/beeline,是一个JDBC客户端,是官方推荐使用的Hive命令行工具,和第一代客户端相比,性能加强安全性提高。

2. HiveServer2服务

Hive的hiveserver2服务的作用是提供jdbc/odbc接口,为用户提供远程访问Hive数据的功能,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。

HiveServer2通过Metastore服务读写元数据。所以在远程模式下,启动HiveServer2之前必须先首先启动 metastore服务

远程模式下,Beeline客户端只能通过HiveServer2服务访问Hive。而bin/hive是通过Metastore服务访问的。

两代客户端的区别:

启动hiveserver2服务

nohup /opt/server/apache-hive-3.1.3-bin/bin/hiveserver2 >> hiveServer2.log 2>&1 & 

3. Hive CLI的使用

help命令

使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下:

usage: hive
 -d,--define <key=value>         Variable subsitution to apply to hive 
                                 commands. e.g. -d A=B or --define A=B --定义用
户自定义变量
   --database <databasename>     Specify the database to use -- 指定使用的数据库
 -e <quoted-query-string>         SQL from command line   -- 执行指定的 SQL
 -f <filename>                   SQL from files   --执行 SQL 脚本
 -H,--help                       Print help information -- 打印帮助信息
   --hiveconf <property=value>   Use value for given property   --自定义配置
   --hivevar <key=value>         Variable subsitution to apply to hive --自定义
变量
                                 commands. e.g. --hivevar A=B
 -i <filename>                   Initialization SQL file --在进入交互模式之前运行
初始化脚本
 -S,--silent                     Silent mode in interactive shell   --静默模式
 -v,--verbose                     Verbose mode (echo executed SQL to the 
console) --详细模式

交互式命令行

直接使用 Hive 命令,不加任何参数,即可进入交互式命令行,输入show databases命令可以看到默认的数据库,则代表连接成功。

在这里插入图片描述

执行SQL命令

在不进入交互式命令行的情况下,可以使用 hive -e 执行 SQL 命令。

hive -e 'select * from emp';

执行SQL脚本

用于执行的 sql 脚本可以在本地文件系统,也可以在 HDFS 上。

# 本地文件系统
hive -f /usr/file/simple.sql;
# HDFS文件系统
hive -f hdfs://node01:8020/tmp/simple.sql;

创建测试数据库

create database test;--创建数据库

第一次创建数据库时,会在HDFS自动创建初始目录,用户Hive数据存储,此步必须完成,否则后面的beeline无法连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xawdiLL6-1672287568722)(5.Hive安装.assets/image-20221223202405126.png)]

4. beeline客户端

使用命令行客户端beeline进行远程访问

# 启动beeline客户端
./beeline -u jdbc:hive2://192.168.80.100:10000 -n root
show databases;

5. DataGrip可视化客户端

操作Hive时,有很多可视化的第三方客户端可供选择,常见的有DataGrip、Dbeaver等,这些都是通过JDBC的方式连接HiveServer2的图形界面工具,使用第三方的可视化工具开发SQL会更方便快捷。

DataGrip是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby 、MySQL、Oracle、SQL Server等,也支持几乎所有主流的大数据生态圈SQL软件。

DataGrip提供免费的30天试用(2020版本不需要注册账号即可使用),下载地址:https://www.jetbrains.com/zh-cn/datagrip/download/other.html

创建项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vzFd4XUt-1672287568723)(5.Hive安装.assets/image-20221223204943060.png)]

关联本地目录,后续创建的代码都会自动存储到此目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7r0g0Gck-1672287568724)(5.Hive安装.assets/image-20221223205034704.png)]

创建SQL文件

配置数据源

安装驱动

下载

下载驱动后,修改连接信息

查看数据库信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7BHPy4L8-1672287568724)(5.Hive安装.assets/image-20221223203048225.png)]

切换默认数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICmXkh6b-1672287568725)(5.Hive安装.assets/image-20221223202939743.png)]

执行SQL

选中需要执行的SQL,点击运行按钮即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WmaKdDnz-1672287568725)(5.Hive安装.assets/image-20221223203155119.png)]


第02节 Hive简单使用

在hive中创建、切换数据库,创建表并执行插入数据操作,最后查询是否插入成功。

1. 基本操作

  • 连接Hive

    hive
    
  • 数据库操作

    create database test;--创建数据库
    show databases;--列出所有数据库
    use test;--切换数据库
    
  • 表操作

    -- 建表
    create table t_student(id int,name varchar(255));
    -- 插入一条数据
    insert into table t_student values(1,"potter");
    -- 查询表数据
    select * from t_student;
    

    在执行插入数据的时候,发现插入速度极慢,sql执行时间很长,花费了26秒,并且显示了MapReduce程序的进度

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GIREHvT9-1672287568726)(5.Hive入门.assets/image-20211110112952895.png)]

2. 查看YARN及HDFS

登录Hadoop YARN观察是否有MapReduce程序执行,地址:http://192.168.40.100:8088,需要根据自己的服务器IP进行更换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6aWLJ86i-1672287568726)(5.Hive入门.assets/image-20211110113345560.png)]

发现运行的任务名称就是所执行的SQL语句,任务的类型为MapReduce,最终状态为SUCCEEDED。

登录Hadoop HDFS浏览文件系统,根据Hive的数据模型,表的数据最终是存储在HDFS和表对应的文件夹下的。

地址:http://192.168.40.100:9870/,需要根据自己的服务器IP进行更换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1TrYcjGj-1672287568727)(5.Hive入门.assets/image-20211110113611203.png)]

3. 总结

  • Hive SQL语法和标准SQL很类似,使得学习成本降低不少。

  • Hive底层是通过MapReduce执行的数据插入动作,所以速度慢。

  • 如果大数据集这么一条一条插入的话是非常不现实的,成本极高。

  • Hive应该具有自己特有的数据插入表方式,结构化文件映射成为表。

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

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

相关文章

Java开发 - 双链表其实不可怕

前言 说起链表&#xff0c;那还是当初上学的时候学习的&#xff0c;印象里就觉得像锁链一样一环扣一环&#xff0c;后来工作后就几乎没实际接触过链表&#xff0c;每当遇到链表&#xff0c;总是不知道该怎么讲&#xff0c;因为对链表的本质一无所知。也是在学习了Java后&#…

即将2023年了,我好想念那些2022年离职的兄弟

☆ 2022年终于即将要过去了&#xff0c;从年初开始&#xff0c;就有小伙伴不断的离开&#xff0c;10% 15% 20%&#xff0c;陆陆续续的。被裁的同学还拿着赔偿走了&#xff0c;不管未来怎么样吧&#xff0c;当下总算一身轻了。 ☆ 留下的其实一点也不轻松&#xff0c;以下这些经…

Anchor Based和Anchor Free的相爱相杀与ATSS的诞生

前言 我们都知道按照是否出现RPN可将目标检测算法分为two-stage和one-stage&#xff0c;其中one-stage的一个主要代表便是YOLO系列&#xff0c;而根据是否存在先验锚框的定义我们也可以将其分为Anchor based和Anchor free两类&#xff0c;关于这两种也是各有优劣&#xff0c;但…

7-7 静静的推荐

天梯赛结束后&#xff0c;某企业的人力资源部希望组委会能推荐一批优秀的学生&#xff0c;这个整理推荐名单的任务就由静静姐负责。企业接受推荐的流程是这样的&#xff1a; 只考虑得分不低于 175 分的学生&#xff1b;一共接受 K 批次的推荐名单&#xff1b;同一批推荐名单上…

入职软件测试一年多,薪资正常应该有多少?

软件测试这个行业我见过工作5年依然是初级水平的功能测试&#xff0c;拿着不到1W的薪资&#xff0c;也见过1年时间达到高级自动化水平的大牛学霸&#xff01;拿着25K的薪资。 影响你薪资的有两点&#xff01; 一、你的技术水平高低直接决定你薪资的多少&#xff0c;工作时间长…

谷粒学院——Day14【首页课程和名师功能】

❤ 作者主页&#xff1a;Java技术一点通的博客 ❀ 个人介绍&#xff1a;大家好&#xff0c;我是Java技术一点通&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 记得关注、点赞、收藏、评论⭐️⭐️⭐️ &#x1f4e3; 认真学习&#xff0c;共同进步&#xff01;&am…

数字硬件建模SystemVerilog-组合逻辑建模(4)组合逻辑决策优先级

数字门级电路可分为两大类&#xff1a;组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点&#xff0c;在后面会作为单独的主题处理。组合逻辑描述了门级电路&#xff0c;其中逻辑块的输出直接反映到该块的输入值的组合&#xff0c;例如&#xff0c;双输入AND门的输出…

四点流程做好商机管理

企业想做好商机管理&#xff0c;仅凭员工是做不到的&#xff0c;借助CRM销售管理系统是比较明智的选择。接下来小编从客户信息管理、业务进程跟踪、设置提醒、销售漏斗等方面讲讲企业如何做好商机管理。 只有提高商机的转化率&#xff0c;企业的利润才会增长。想做好商机管理&…

MySQL 索引事务 · 讨论适合索引的数据结构 · N叉搜索树 · B+树 · 聚簇索引与非聚簇索引 · 事务的四个核心特性

一、索引1.1 概念1.2 作用1.3 讨论-如何提高查询的速度合适的数据结构&#xff1a;二叉搜索树AVL 树红黑树哈希表以上数据结构的问题&#xff1a;N 叉搜索树B 树B 树1.4 索引的使用场景1.5 索引的使用1.6 聚簇索引与非聚簇索引聚簇索引非聚簇索引1.7 索引 - 小结二、事务2.1 为…

小程序-会议OA项目-首页

目录 一&#xff0c;flex弹性布局 什么是flex布局&#xff1f; flex属性 flex-direction属性 学习地址&#xff1a; OA项目搭建以及flex布局演示 二&#xff0c;轮播图--组件的使用 1.先去官方文档中查看轮播图组件如何使 2.在开发工具中查看演示及修改代码 3. 使用mock…

异步通信技术AJAX | 基于JSON、XML的数据交换

目录 一&#xff1a;快速搞定AJAX&#xff08;第二篇&#xff09; 1、JS中如何创建和访问JSON对象 2、基于JSON的数据交换&#xff08;重点&#xff09; 3、基于XML的数据交换&#xff08;了解&#xff09; 一&#xff1a;快速搞定AJAX&#xff08;第二篇&#xff09; 1、…

-source1.5中不支持diamond运算符解决办法

写了几年代码了&#xff0c; 回到最初了遇到了bug了&#xff0c;没有仔细思考&#xff0c;以为很容易&#xff0c;起始走到了误区&#xff0c;有种打了一辈子鹰&#xff0c;最后被麻雀啄了眼 de 感觉 首先来看一下我们的错误信息&#xff0c;如下&#xff1a; [ERROR] Failed…

相机标定笔记(2) -- 标定实践

标定板 为什么需要标定板? 相机标定的第一篇笔记中提到了相机标定所使用的模型&#xff0c;标定算法中我们需要一些可靠的样本点&#xff0c;这些样本点由世界坐标系中的3D点和其在图像上的2D像点组成。用这些2D和3D点对来求解标定参数。为了构建更高精度的3D和2D点&#xff0…

对于系统架构来说,要么进化,要么死亡

在亚马逊云科技年度re:Invent&#xff0c;亚马逊首席技术官Dr. Werner Vogels的主题演讲历来涵盖大量科学和技术领域&#xff0c;今年的演讲也不例外&#xff0c;座无虚席。现在&#xff0c;亚马逊云科技 2022 re:Invent 中国区 recap 正式也开始了&#xff0c;欢迎大家积极参与…

单例模式之饿汉模式懒汉模式

前言 单例模式能保证某个类在程序中只存在唯一一份实例&#xff0c;而不会创建出多个实例&#xff0c;比如 JDBC 中的 DataSource 实例就只需要一个。单例模式具体的实现方式有"饿汉" 和 "懒汉" 两种。 1.饿汉模式&#xff08;类加载的同时创建实例&…

SOLIDWORKS装配体如何快速导出BOM丨慧德敏学

BOM作为产品数据的组成部分&#xff0c;它的重要性不言而喻。采购需要BOM、成本核算需要BOM、领料加工和装配需要BOM、录入ERP需要BOM……可以说&#xff0c;BOM与图纸同样重要&#xff0c;有些产品&#xff0c;可以没有图纸&#xff0c;但是不能没有BOM。借助SOLIDWORKS BOM插…

带你打开C语言的大门

最近有刚开始学习编程的同学问我&#xff1a;“C语言是什么&#xff1f;C语言是怎么来的&#xff1f;C语言用来干什么&#xff1f;”。对&#xff0c;在学习C语言之前&#xff0c;首先了解C语言的发展例程&#xff0c;这应该是每一个刚刚开始学习C语言的人应该了解的&#xff0…

什么是"文件表项"

从Linux的层次角度来说&#xff0c;在用户空间是存在这样的概念的&#xff0c;这个概念是存在内核空间的&#xff0c;而且是针对打开的文件的&#xff01; 内核用三种数据结构来描述一个打开的文件。 数据结构一: 文件描述符表(descriptor table): 每个进程都有它独立的描述符表…

【代码调试】《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》

论文地址&#xff1a;https://arxiv.org/pdf/2103.05950.pdf 代码地址&#xff1a;https://github.com/megvii-research/FSCE 论文阅读&#xff1a;https://blog.csdn.net/qiankendeNMY/article/details/128390284 我的配置&#xff1a; Python &#xff1a;3.8(ubuntu18.04) …

小程序发布体验版流程

一、微信开发者工具操作 1. 点击 工具 -> 上传&#xff08;或 直接点击右上角“上传”按钮&#xff09; 【注意】 如果使用的测试 appid 则【上传】按钮不能点击&#xff0c;必须使用真实 appid 2. 如果之前有发布过体验版&#xff0c;会提示继续操作将会覆盖之前的体验版…