【Linux】—Apache Hive 安装部署

news2024/11/18 10:54:40

文章目录

  • 前言
    • 认识Metadata
    • 认识Metastore
      • metastore三种配置方式
  • 一、安装前准备
  • 二、下载hive-3.1.2安装包
  • 三、下载完成后,通过xftp6上传到Linux服务器上
  • 四、解压Hive安装包
  • 五、配置Hive
  • 六、内嵌模型安装—Hive元数据配置到Derby
  • 七、本地模式安装—Hive元数据配置到MySQL
  • 八、远程模型安装—使用元数据服务的方式访问Hive
  • 九、Hive客户端使用
    • hive客户端
    • HiveServer、HiveServer2服务
    • Hive客户端与服务的关系
    • Hive客户机使用—Hive Client
    • Hive客户机— Hive Beeline Client


前言

本文主要介绍在Linux环境下安装Hive的过程。

  • 使用Linux 工具/版本
    • xshell6、xftp6
    • Centos7:CentOS Linux release 7.6.1810 (Core)
  • 安装Hive版本:
    • hive-3.1.2

认识Metadata

Metadata即元数据。元数据包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。元数据存储在关系型数据库中,如hive内置的Derby、或者第三方如MySQL等。

认识Metastore

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

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

在这里插入图片描述

metastore三种配置方式

  • 内嵌模式

内嵌模式(Embedded Metastore)是metastore默认部署模式。此种模式下,元数据存储在内置的Derby数据库,并且Derby数据库和metastore服务都嵌入在主HiveServer进程中,当启动HiveServer进程时,Derby和metastore都会启动。不需要额外起Metastore服务。
但是一次只能支持一个活动用户,适用于测试体验,不适用于生产环境。

在这里插入图片描述

  • 本地模式

本地模式(Local Metastore)下,Hive Metastore服务与主HiveServer进程在同一进程中运行,但是存储元数据的数据库在单独的进程中运行,并且可以在单独的主机上。metastore服务将通过JDBC与metastore数据库进行通信。本地模式采用外部数据库来存储元数据,推荐使用MySQL。
hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式。
缺点是:每启动一次hive服务,都内置启动了一个metastore。

在这里插入图片描述

  • 远程模式

远程模式(Remote Metastore)下,Metastore服务在其自己的单独JVM上运行,而不在HiveServer的JVM中运行。如果其他进程希望与Metastore服务器通信,则可以使用Thrift Network API进行通信。
在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性/安全性。
远程模式下,需要配置hive.metastore.uris 参数来指定metastore服务运行的机器ip和端口,并且需要单独手动启动metastore服务

在这里插入图片描述

  • 三种模式对比
内嵌模式本地模式远程模式
Metastore单独配置、启动
Metastore存储介质DerbyMysqlMysql

一、安装前准备

由于Apache Hive是一款基于Hadoop的数据仓库软件,通常部署运行在Linux系统之上。因此不管使用何种方式配置Hive Metastore,必须要先保证服务器的基础环境正常,Hadoop集群健康可用。

  • 服务器基础环境

    • 集群时间同步

    • 防火墙关闭,执行"systemctl status firewalld.service“命令查看防火墙的状态;如果没有关闭,则执行"systemctl stop firewalld.service"命令关闭防火墙。

      在这里插入图片描述

    • 主机Host映射

    • 免密登录

    • JDK安装

  • Hadoop集群

    • 启动Hive之前必须先启动Hadoop集群,需等待HDFS安全模式关闭之后再启动运行Hive。执行"myhadoop start"命令启动集群,执行"jpsall"命令查看集群启动状态。

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

二、下载hive-3.1.2安装包

hive安装包下载地址:https://archive.apache.org/dist/hive/

三、下载完成后,通过xftp6上传到Linux服务器上

将hive-3.1.2安装包上传到 /opt/software 路径下面。

1、打开xshell6,连接要安装hive的Linux服务器,执行 “cd /opt/software” 命令。

在这里插入图片描述

2、打开xftp6,选择下载好的hive安装包,点击上传到 /opt/software下面。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、关闭xftp6,在刚刚连接Linux服务器的 /opt/software 路径下执行 “ll” 命令,可以查看到hive安装包已经上传成功。

在这里插入图片描述

四、解压Hive安装包

1、解压 apache-hive-3.1.2-bin.tar.gz 到/opt/module/目录下面,执行"tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/"命令。

在这里插入图片描述

2、修改apache-hive-3.1.2-bin.tar.gz 的名称为 hive,执行"mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive"命令。

在这里插入图片描述

五、配置Hive

1、添加环境变量,执行"vim /etc/profile.d/my_env.sh"命令。

  • 添加以下内容:
    #HIVE_HOME
    export HIVE_HOME=/opt/module/hive
    export PATH=$PATH:$HIVE_HOME/bin

在这里插入图片描述

2、解决日志冲突,执行"mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak”命令。

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

六、内嵌模型安装—Hive元数据配置到Derby

Derby是内置的数据库,无需下载。

1、初始化元数据库。执行"bin/schematool -dbType derby -initSchema"命令 。

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

2、启动使用hive,执行"bin/hive"命令。

在这里插入图片描述

3、开启另一个窗口,执行"cat /tmp/atwqf/hive.log"命令查看日志文件。

在这里插入图片描述

注意: Hive默认使用的元数据库为derby,开启Hive之后就会占用元数据库,且不与其他客户端共享数据。
例如:另外开一个窗口使用hive,会报错FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

在这里插入图片描述

七、本地模式安装—Hive元数据配置到MySQL

本地模式安装前先进行MySQL安装,参考链接:https://blog.csdn.net/sodaloveer/article/details/139674393,确定MySQL数据库安装成功后,才将Hive元数据配置到MySQL。

1、上传MySQL的JDBC驱动(通过xftp6上传),将MySQL的JDBC驱动拷贝到Hive的lib目录下,执行"cp /opt/software/mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib"命令。

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

2、配置Metastore到MySQL,在/opt/module/hive/conf目录下新建hive-site.xml文件。执行"vim /opt/module/hive/conf/hive-site.xml",添加内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- jdbc 连接的 URL -->
	<property>
		 <name>javax.jdo.option.ConnectionURL</name>
		 <value>jdbc:mysql://hadoop103:3306/metastore?useSSL=false</value>
	</property>	
	 <!-- jdbc 连接的 Driver-->
	 <property>
		 <name>javax.jdo.option.ConnectionDriverName</name>
		 <value>com.mysql.jdbc.Driver</value>
	</property>	
	<!-- jdbc 连接的 username-->
	 <property>
		 <name>javax.jdo.option.ConnectionUserName</name>
		 <value>root</value>
	 </property>	 
	 <!-- jdbc 连接的 password -->
	 <property>
		 <name>javax.jdo.option.ConnectionPassword</name>
		 <value>000000</value>
	</property>	
	 <!-- Hive 元数据存储版本的验证 -->
	 <property>
		 <name>hive.metastore.schema.verification</name>
		 <value>false</value>
	</property>	
	 <!--元数据存储授权-->
	 <property>
		 <name>hive.metastore.event.db.notification.api.auth</name>
		 <value>false</value>
	 </property>	 
	 <!-- Hive 默认在 HDFS 的工作目录 -->
	 <property>
		 <name>hive.metastore.warehouse.dir</name>
		 <value>/user/hive/warehouse</value>
	 </property>	 
</configuration>

复制粘贴上面的内容需要注意:<?xml version="1.0"?>这里需要注意,这一行必须在第一行,并且需要顶格,前面没有任何空格或其他字符。多余空格需去掉,特殊字符需转义),否则会报错:Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.

在这里插入图片描述

3、登陆MySQL,执行"mysql -uroot -p000000"

在这里插入图片描述

4、新建Hive元数据库,元数据库的名称要和配置文件hive-site.xml一致。

> create database metastore;
> show databases;
> quit;

在这里插入图片描述

5、初始化元数据库,执行"schematool -initSchema -dbType mysql -verbose"命令。

在这里插入图片描述

在这里插入图片描述

初始化完成。

6、再次启动Hive,执行"bin/hive"命令。

在这里插入图片描述

另一个窗口开启hive,执行"bin/hive"命令。

在这里插入图片描述

八、远程模型安装—使用元数据服务的方式访问Hive

1、执行"vim /opt/module/hive/conf/hive-site.xml",添加内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- jdbc 连接的 URL -->
	<property>
		 <name>javax.jdo.option.ConnectionURL</name>
		 <value>jdbc:mysql://hadoop103:3306/metastore?useSSL=false</value>
	</property>	
	 <!-- jdbc 连接的 Driver-->
	 <property>
		 <name>javax.jdo.option.ConnectionDriverName</name>
		 <value>com.mysql.jdbc.Driver</value>
	</property>	
	<!-- jdbc 连接的 username-->
	 <property>
		 <name>javax.jdo.option.ConnectionUserName</name>
		 <value>root</value>
	 </property>	 
	 <!-- jdbc 连接的 password -->
	 <property>
		 <name>javax.jdo.option.ConnectionPassword</name>
		 <value>000000</value>
	</property>	
	 <!-- Hive 元数据存储版本的验证 -->
	 <property>
		 <name>hive.metastore.schema.verification</name>
		 <value>false</value>
	</property>	
	 <!--元数据存储授权-->
	 <property>
		 <name>hive.metastore.event.db.notification.api.auth</name>
		 <value>false</value>
	 </property>	 
	 <!-- Hive 默认在 HDFS 的工作目录 -->
	 <property>
		 <name>hive.metastore.warehouse.dir</name>
		 <value>/user/hive/warehouse</value>
	 </property>	
	 
	 <!-- 指定存储元数据要连接的地址 -->
	 <property>
		 <name>hive.metastore.uris</name>
		 <value>thrift://hadoop103:9083</value>
	 </property>
</configuration>

与本地模式相比,hive-site.xml文件主要是在增加了下面的内容:

 <!-- 指定存储元数据要连接的地址 -->
 <property>
	 <name>hive.metastore.uris</name>
	 <value>thrift://hadoop103:9083</value>
 </property>
要给hive起一个服务,主要是提供端口使第三方框架可以连接使用。

2、启动metastore,三种方式:

  • 前台启动,执行"hive --service metastore"命令。

在这里插入图片描述

另起一个窗口:

在这里插入图片描述

  • 后台启动,进程挂起,执行"nohup /opt/module/hive/bin/hive --service metastore &"命令,后台启动的输出日志信息,在/root目录下,nohup.out。

  • 也可以使用脚本管理服务的启动和关闭。
    1.执行"vim $HIVE_HOME/bin/hiveservices.sh"命令新建脚本,脚本内容如下;
    2.执行"chmod +x $HIVE_HOME/bin/hiveservices.sh"命令,添加执行权限;
    3.执行"hiveservices.sh start"启动 Hive 后台服务.

#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
if [ ! -d $HIVE_LOG_DIR ]
then
mkdir -p $HIVE_LOG_DIR
fi
#检查进程是否运行正常,参数 1 为进程名,参数 2 为进程端口
function check_process()
{
 pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print 
$2}')
 ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)
 echo $pid
 [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1
}

function hive_start()
{
 metapid=$(check_process HiveMetastore 9083)
 cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 
&"
 [ -z "$metapid" ] && eval $cmd || echo "Metastroe 服务已启动"
 server2pid=$(check_process HiveServer2 10000)
 cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
 [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2 服务已启动"
}
function hive_stop()
{
metapid=$(check_process HiveMetastore 9083)
 [ "$metapid" ] && kill $metapid || echo "Metastore 服务未启动"
 server2pid=$(check_process HiveServer2 10000)
 [ "$server2pid" ] && kill $server2pid || echo "HiveServer2 服务未启动"
}
case $1 in
"start")
 hive_start
 ;;
"stop")
 hive_stop
 ;;
"restart")
 hive_stop
 sleep 2
 hive_start
 ;;
"status")
 check_process HiveMetastore 9083 >/dev/null && echo "Metastore 服务运行
正常" || echo "Metastore 服务运行异常"
 check_process HiveServer2 10000 >/dev/null && echo "HiveServer2 服务运
行正常" || echo "HiveServer2 服务运行异常"
 ;;
*)
 echo Invalid Args!
 echo 'Usage: '$(basename $0)' start|stop|restart|status'
 ;;
esac
  • 注意:

    • 前台启动后窗口不能再操作,需打开一个新的 shell 窗口做别的操作。
    • 在远程模式下,必须首先启动Hive metastore服务才可以使用hive。因为metastore服务和hive server是两个单独的进程了。 否则会报错:

在这里插入图片描述

九、Hive客户端使用

hive客户端

在这里插入图片描述

第一代客户端(deprecated不推荐使用):$HIVE_HOME/bin/hive。
第二代客户端(recommended 推荐使用):$HIVE_HOME/bin/beeline,是一个JDBC客户端。

HiveServer、HiveServer2服务

HiveServer、HiveServer2都是Hive自带的两种服务,允许客户端在不启动CLI的情况下对Hive中的数据进行操作,且两个都允许远程客户端使用多种编程语言如java,python等向hive提交请求,取回结果。

区别:
HiveServer不能处理多于一个客户端的并发请求。
HiveServer2支持多客户端的并发和身份认证,旨在为开放API客户端如JDBC、ODBC提供更好的支持。所以更加推荐使用第二代客户端($HIVE_HOME/bin/beeline)。

Hive客户端与服务的关系

在这里插入图片描述

Hiveserver2通过metastore服务读写元数据,所以在远程模式下启动Hiveserver2之前必须先启动metastore服务。
Beeline客户端只能通过Hiveserver2服务访问Hive,而Hive Cline是通过Metastore服务访问的。

Hive客户机使用—Hive Client

bin/hive客户端是hive第一代客户端,可以访问metastore服务,从而达到操作hive目的。
内嵌和本地模式下直接执行"$HIVE_HOME/bin/hive"命令,metastore服务会内嵌一起启动。
如果需要在其他机器上(远程模式)通过bin/hive访问hive metastore服务,只需要在该机器的hive-site.xml配置中添加metastore服务地址即可。(参考上面:远程模型安装—使用元数据服务的方式访问Hive)

Hive客户机— Hive Beeline Client

Beeline客户端是hive第二代客户端(推荐使用),不是直接访问metastore服务的,需要单独启动hiveserver2服务。
Beeline是JDBC客户端面,通过JDBC协议与HIveserver2服务进行通信,协议的地址是:jdbc:hive2://hadoop103:10000。

1、使用JDBC方式访问Hive,执行"vim /opt/module/hive/conf/hive-site.xml",添加内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- jdbc 连接的 URL -->
	<property>
		 <name>javax.jdo.option.ConnectionURL</name>
		 <value>jdbc:mysql://hadoop103:3306/metastore?useSSL=false</value>
	</property>	
	 <!-- jdbc 连接的 Driver-->
	 <property>
		 <name>javax.jdo.option.ConnectionDriverName</name>
		 <value>com.mysql.jdbc.Driver</value>
	</property>
	<!-- jdbc 连接的 username-->
	 <property>
		 <name>javax.jdo.option.ConnectionUserName</name>
		 <value>root</value>
	 </property>	 
	 <!-- jdbc 连接的 password -->
	 <property>
		 <name>javax.jdo.option.ConnectionPassword</name>
		 <value>000000</value>
	</property>	
	 <!-- Hive 元数据存储版本的验证 -->
	 <property>
		 <name>hive.metastore.schema.verification</name>
		 <value>false</value>
	</property>	
	 <!--元数据存储授权-->
	 <property>
		 <name>hive.metastore.event.db.notification.api.auth</name>
		 <value>false</value>
	 </property>	 
	 <!-- Hive 默认在 HDFS 的工作目录 -->
	 <property>
		 <name>hive.metastore.warehouse.dir</name>
		 <value>/user/hive/warehouse</value>
	 </property>
	 <!-- 指定存储元数据要连接的地址 -->
	 <property>
		 <name>hive.metastore.uris</name>
		 <value>thrift://hadoop103:9083</value>
	 </property>
	 <!-- 指定 hiveserver2 连接的 host -->
	 <property>
		 <name>hive.server2.thrift.bind.host</name>
		 <value>hadoop103</value>
	 </property>	 
	 <!-- 指定 hiveserver2 连接的端口号 -->
	 <property>
		 <name>hive.server2.thrift.port</name>
		 <value>10000</value>
	 </property>
</configuration>

与远程模式相比,hive-site.xml文件主要是在增加了下面的内容:

 <!-- 指定 hiveserver2 连接的 host -->
 <property>
	 <name>hive.server2.thrift.bind.host</name>
	 <value>hadoop103</value>
 </property>
 
 <!-- 指定 hiveserver2 连接的端口号 -->
 <property>
	 <name>hive.server2.thrift.port</name>
	 <value>10000</value>
 </property>

2、先启动metastore服务,执行"$HIVE_HOME/bin/hive --service metastore"命令。
然后启动hiveserver2,执行"$HIVE_HOME/bin/hive --service hiveserver2"命令。

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

3、启动beeline客户端,执行"$HIVE_HOME/bin/beeline -u jdbc:hive2://hadoop103:10000 -natwqf"命令。

在这里插入图片描述


安装过程中可能出现的报错:
“schematool -initSchema -dbType mysql -verbose” 报错!!!
安装Hive后执行“$HIVE_HOME/bin/hive”命令时,报错Connection refused

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

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

相关文章

Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

上次介绍了基础IO&#xff08;二&#xff09;&#xff1a;Linux&#xff1a;基础IO&#xff08;二.缓冲区、模拟一下缓冲区、详细讲解文件系统&#xff09; 文章目录 1.软硬链接1.1硬链接1.2软链接使用场景 2.动态库和静态库1.1回顾1.2静态库的制作和使用为什么要有库制作者角度…

基于单片机的智能浇花系统设计与实现

摘要: 设计了一种智能湿度感应浇花系统 。 系统以单片机 AT89S52 为控制芯片&#xff0c;利用 SLHT5-1 土壤湿度传感器来检测土壤的相对湿度&#xff0c;再通过单片机进行信息处理&#xff0c;采用模糊控制方法&#xff0c;输出控制信号&#xff0c;控制继电器的动作&…

[RPI4] 树莓派4b安装istoreos及使用 -- 1. 系统安装

最近在研究家庭智能化的一些东西,其中包括网络,智能家居等一系列内容,然后看过的资料有的想再回来看的时候就找不到了,然后就想着开这么一个系列,做一些记录,先从智能家居开始吧。 1 安装istoreos系统 iStoreOS 目标是提供一个人人会用的路由兼轻 NAS 系统,不管是作为路…

MES管理系统中的仓库管理功能有哪些用途

在当今制造业迅猛发展的背景下&#xff0c;企业对于车间生产调度的需求日益迫切。为此&#xff0c;MES管理系统应运而生&#xff0c;它作为一款专注于车间生产调度的管理信息系统&#xff0c;正逐步成为制造业提升生产效率、优化资源配置的利器。特别是其在仓储和物流管理方面的…

算法社区-从零开始构建(一)

好久没动笔了&#xff0c;一是要处理的东西很多&#xff0c;二则写出来未见得深刻&#xff0c;感觉沉淀得不够&#xff0c;太浅显的东西就没必要分享。 正好最近在研究算法层面的东西&#xff0c;感觉挺受用的&#xff0c;就想着把这些东西整理出来&#xff0c;有点像社区的雏形…

NAPI篇【4】——NAPI应用点亮一个LED

OpenHarmony的NAPI功能为开发者提供了JS与C/C不同语言模块之间的相互访问&#xff0c;交互的能力&#xff0c;使得开发者使用C或者C语言实现应用的关键功能。如操作开发板中某个GPIO节点的状态&#xff08;OpenHarmony并没有提供直接操作GPIO口状态的API&#xff09;&#xff0…

Vue-Cli 创建vue2.0 + TypeScript 项目

这里写目录标题 一、创建项目名称二、选择 Manually select features三、勾选配置项四、选择vue版本五、其它配置 一、创建项目名称 vue create 项目名称&#xff08;项目名字不能含义大写字母&#xff09;二、选择 Manually select features &#xff08;按箭头上下进行移动…

万物皆对象,你信吗?

**内存空间和数据都消失&#xff0c;数据怎么会消失的&#xff1f;**空间没了&#xff0c;数据自然也跟着消失。因为数据就是在空间里面的。就像宇宙大爆炸&#xff0c;我们还能存在嘛&#xff0c;是不是已经undefined了。「一块小内存上有2种数据类型」 内部存储的数据 地址值…

使用Fiddler如何创造大量数据

在调试和分析网络流量时&#xff0c;您是否曾为无法深入了解请求和响应的数据而感到困惑&#xff1f;如果有一种工具可以帮助您轻松抓取和分析网络流量&#xff0c;您的工作效率将大大提升。Fiddler正是这样一款功能强大的抓包工具&#xff0c;广受开发者和测试人员的青睐。 Fi…

专业140+总分400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书

专业855信号与系统140&#xff0c;总分400&#xff0c;今年顺利上岸武汉理工大学&#xff0c;总结一下自己的复习经历&#xff0c;希望对报考武理工的同学有所帮助。专业课&#xff1a;855信号与系统 首先教材&#xff1a; 《信号与系统》高等教育出版社 作者&#xff1a;刘泉…

详解三种常用标准化 Batch Norm Layer Norm RMSNorm

参考&#xff1a; BN究竟起了什么作用&#xff1f;一个闭门造车的分析《动手学深度学习》7.5 节 深度学习中&#xff0c;归一化是常用的稳定训练的手段&#xff0c;CV 中常用 Batch Norm&#xff1b; Transformer 类模型中常用 layer norm&#xff0c;而 RMSNorm 是近期很流行…

Pyppeteer原理介绍和入门尝试

pyppeteer仓库地址&#xff1a;https://github.com/miyakogi/pyppeteer puppeteer仓库地址&#xff1a;https://github.com/search?qpuppeteer&typerepositories 因为有些网页是可以检测到是否是使用了selenium。并且selenium所谓的保护机制不允许跨域cookies保存以及登…

JavaScript的学习之事件的简介

目录 一、事件是什么 二、如何处理事件 一、事件是什么 定义&#xff1a;事件就是浏览器和用户之间的交互行为。 例如&#xff1a;点击按钮、鼠标移动、关闭窗口等。 二、如何处理事件 我们可以在对应的事件属性中设置一些JS行为&#xff0c;当事件触发的时候会将这些代码执行…

java的输入流FileInput Stream类

一、定义 使用InputStream类的FileInputStream子类实现文本文件内容的读取。 二、常用构造方法 三、使用FileInput Stream类按多字节读取数据 1.示例 2、分析 四、常见错误 今天的总结就到这里啦&#xff0c;拜拜&#xff01;

Windows操作系统安装mysql数据库(zip安装包)

MySQL是目前最为流行的开放源码的数据库&#xff0c;是完全网络化的跨平台的关系型数据库系统&#xff0c;它是由瑞典MySQLAB公司开发&#xff0c;目前属于Oracle公司。任何人都能从Internet下载MySQL软件&#xff0c;而无需支付任费用&#xff0c;并且“开放源码”意味着任何人…

活动预告|探索 LLM 大模型的小型化 —— 微软 Phi3在 NVIDIA Jetson 与 NIM 平台的最佳实践

在当前高速发展的人工智能领域&#xff0c;如何高效的部署和优化 SLM (小型的大模型) 成为关键。随着微软 Phi-3 系列模型的发布&#xff0c;让 SLM 在 NVIDIA Jetson 边缘计算平台上的部署成为可能。同时 Phi-3 系列模型已在 NVIDIA NIM 平台提供加速的推理服务。 NVIDIA NIM…

msvcp120.dll丢失怎么办,找不到msvcp120.dll的多种解决方法

最近&#xff0c;我在运行一个程序时遇到了一个错误&#xff0c;系统提示找不到msvcp120.dll文件&#xff0c;无法继续执行代码。这让我感到非常困扰&#xff0c;因为这个问题导致我无法正常运行这个程序。经过一番搜索和尝试&#xff0c;我找到了几种修复这个问题的方法&#…

ONLYOFFICE 桌面编辑器 8.1重磅来袭:全新功能提升您的办公效率

文章目录 前言ONLYOFFICE 桌面编辑器8.1一、PDF编辑&#xff1a;告别“头痛”时刻二、幻灯片版式&#xff1a;秒变“设计大师”三、无缝切换&#xff1a;办公界的“快速通道”四、语言支持&#xff1a;全球通吃的“翻译官”五、 隐藏“连接到云”板块&#xff1a;摆脱“云”的束…

RocketMQ如何添加JVM监控

这里是小奏,觉得文章不错可以关注公众号小奏技术 JVM监控选型 本次JVM监控我们采用prometheus官方提供的jmx_exporter来实现 RocketMQJVM开发 整体目录 1. 新增agent目录 我们在distribution目录新增一个agent模块&#xff0c;然后添加两个文件 jmx_prometheus_javaagent-…

Mysql索引底层数据结构——Java全栈知识(28)

Mysql索引底层数据结构 1、什么是索引 索引在项目中还是比较常见的&#xff0c;它是帮助MySQL高效获取数据的数据结构&#xff0c;主要是用来提高数据检索的效率&#xff0c;降低数据库的IO成本&#xff0c;同时通过索引列对数据进行排序&#xff0c;降低数据排序的成本&…