Linux Hadoop平台伪分布式安装(Hive on Spark)

📔Linux Hadoop 伪分布式安装(Hive on Spark)

安装目录

    • 1. JDK
    • 2. Hadoop
    • 3. Mysql+Hive
      • 3.1 Mysql8安装
      • 3.2 Hive安装
    • 4. Spark
      • 4.1 Maven安装
      • 4.2 Scala安装
      • 4.3 Spark编译并安装
    • 5. Zookeeper
    • 6. HBase

版本概要:

  • jdk: jdk-8u391-linux-x64.tar.gz
  • hadoop:hadoop-3.3.1.tar.gz
  • hive:apache-hive-3.1.2-bin.tar.g
  • mysql:mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
  • maven:apache-maven-3.5.4-bin.tar.gz
  • scala:scala-2.11.12.tgz
  • spark:spark-2.4.5.tgz
  • zookeeper:zookeeper-3.4.10.tar.gz
  • hbase:hbase-2.4.12-bin.tar.gz

1. JDK

JDK下载

在这里插入图片描述

# 解压
[root@sole install]# tar -zxvf jdk-8u391-linux-x64.tar.gz -C /opt/software/
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
# JAVA_HOME
export JAVA_HOME=/opt/software/jdk1.8.0_391
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

# 重新加载
[root@sole ~]# source /etc/profile

2. Hadoop

Hadoop下载

在这里插入图片描述

# 解压
[root@sole install]# tar -zxvf hadoop-3.3.1.tar.gz -C /opt/software/
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
# HADOOP_HOME
export HADOOP_HOME=/opt/software/hadoop-3.3.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
# 重新加载
[root@sole ~]# source /etc/profile
# Hadoop配置修改
[root@sole software]# cd hadoop-3.3.1/etc/hadoop/

[root@sole hadoop]# vi hadoop-env.sh
export JAVA_HOME=/opt/software/jdk1.8.0_391
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
[root@sole hadoop]# vi core-site.xml
<configuration>
<!-- 指定Hadoop所使用的文件系统schema(URL),HDFS的老大(NameNode)的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://sole:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的储存目录,默认是/tmp/hadoop-${user.name} -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/software/hadoop-3.3.1/hadoopdata</value>  
</property>
</configuration>
[root@sole hadoop]# vi hdfs-site.xml 
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/software/hadoop-3.3.1/tmp/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/software/hadoop-3.3.1/tmp/data</value>
</property>
</configuration>
[root@sole hadoop]# vi yarn-site.xml 
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>sole:18040</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>sole:18030</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>sole:18025</value>
</property></property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>sole:18141</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>sole:18088</value>
</property>
</configuration>
[root@sole hadoop]# vi mapred-site.xml 
<configuration>
<!-- 指定mr运行时框架,这里指定在yarn上,默认是local -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

# 初始化,进到${HADOOP_HOME}/sbin目录下
[root@sole sbin]# pwd
/opt/software/hadoop-3.3.1/sbin
[root@sole sbin]# hdfs namenode -format

# 启动服务
[root@sole sbin]# start-dfs.sh
[root@sole sbin]# start-yarn.sh

在这里插入图片描述


3. Mysql+Hive

3.1 Mysql8安装

# 卸载已有mariadb服务,如果已安装过MySQL,则将旧的MySQL服务全部卸载再安装
[root@sole ~]# rpm  -qa|grep mariadb
[root@sole ~]# yum remove mariadb-libs

MySQL 8.0.27 tar包下载

在这里插入图片描述


[root@sole ~]# tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述


# 为了避免安装过程中报错,提前安装好以下依赖
[root@sole ~]#  -y install libaio
[root@sole ~]# yum install openssl-devel.x86_64 openssl.x86_64 -y
[root@sole ~]# yum -y install autoconf
[root@sole ~]# yum install perl.x86_64 perl-devel.x86_64 -y
[root@sole ~]# yum install perl-JSON.noarch -y
[root@sole ~]# yum install perl-Test-Simple
[root@sole ~]# yum install net-tools
# 安装mysql
[root@sole ~]# rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm
[root@sole ~]# rpm -ivh mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
[root@sole ~]# rmp -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm
[root@sole ~]# rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm
[root@sole ~]# rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm
[root@sole ~]# rpm -ivh mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm
[root@sole ~]# rpm -ivh mysql-community-embedded-compat-8.0.27-1.el7.x86_64.rpm 
[root@sole ~]# rpm -ivh mysql-community-devel-8.0.27-1.el7.x86_64.rpm 
#启动MySQL
[root@sole ~]# mysqld --initialize --console
[root@sole ~]# chown -R mysql:mysql /var/lib/mysql/
[root@sole ~]# systemctl start mysqld.service
[root@sole ~]# systemctl status mysqld.service
[root@sole ~]# cat /var/log/mysqld.log |grep password  --查看临时密码

在这里插入图片描述

# 修改密码&远程登录权限
mysql> alter user 'root'@'localhost' identified by 'root';
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
# MySQL字符集修改,最后添加配置如下
[root@sole ~]# vi /etc/my.cnf

[mysql.server]
default-character-set = utf8
[client]
default-character-set = utf8


#添加完重启服务
[root@sole ~]# service mysqld restart

3.2 Hive安装

Hive下载

在这里插入图片描述

# 解压
[root@sole install]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/software/
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
# HIVE_HOME
export HIVE_HOME=/opt/software/apache-hive-3.1.2-bin
export PATH=$HIVE_HOME/bin:$PATH
# 重新加载
[root@sole ~]# source /etc/profile
# Hive配置修改,进入${HIVE_HOME}/conf
[root@sole conf]# cp hive-env.sh.template hive-env.sh
[root@sole conf]# vi hive-env.sh

export JAVA_HOME=/opt/software/jdk1.8.0_391
export HADOOP_HOME=/opt/software/hadoop-3.3.1
export HIVE_CONF_DIR=/opt/software/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/opt/software/apache-hive-3.1.2-bin/lib
[root@sole conf]# vi hive-site.xml 
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

<!-- 配置hdfs存储目录 -->
<property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
</property>

<!-- 所连接的 MySQL 数据库的地址,hive_remote是数据库,程序会自动创建,自定义就行 -->
<property>
  <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://sole:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;allowPublicKeyRetrieval=true</value>
</property>

<!-- MySQL 驱动 -->
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.cj.jdbc.Driver</value>
</property>

<!-- mysql连接用户 -->
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
</property>

<!-- mysql连接密码 -->
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>root</value>
</property>

<!--元数据是否校验-->
<property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
</property>

<property>
  <name>system:user.name</name>
  <value>root</value>
  <description>user name</description>
</property>

<!-- host -->
<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>sole</value>
  <description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>

<!-- hs2端口 -->
<property>
  <name>hive.server2.thrift.port</name>
  <value>11000</value>
</property>

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://sole:9083</value>
</property>

<!--Spark依赖位置,上面上传jar包的hdfs路径-->
<property>
    <name>spark.yarn.jars</name>
    <value>hdfs:///spark/spark-2.3.0-jars/*.jar</value>
</property>

<!--Hive执行引擎,使用spark-->
<property>
    <name>hive.execution.engine</name>
    <value>spark</value>
</property>

<!--Hive和spark连接超时时间-->
<property>
    <name>hive.spark.client.connect.timeout</name>
    <value>100000ms</value>
</property>

</configuration>
# MySQL驱动
[root@sole install]# cp mysql-connector-j-8.0.33.jar /opt/software/apache-hive-3.1.2-bin/lib/

MySQL驱动下载
在这里插入图片描述

Maven下载

<dependency>
  <groupId>com.mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
  <version>8.0.33</version>
</dependency>
# 解决Hadoop和Hive的两个guava.jar版本冲突问题:
# 删除${HIVE_HOME}/lib中的guava-19.0.jar
# 并将${HADOOP_HOME}/share/hadoop/common/lib/guava-27.0-jre.jar复制到${HIVE_HOME}/lib下

[root@sole install]# cd /opt/software/apache-hive-3.1.2-bin/lib/
[root@sole lib]# rm -f guava-19.0.jar 
[root@sole lib]# cp /opt/software/hadoop-3.3.1/share/hadoop/common/lib/guava-27.0-jre.jar ./

# 初始化元数据库
[root@sole bin]# ./schematool -dbType mysql -initSchema

# 启动服务 metastore & hiveserver2
[root@sole bin]# nohup hive --service metastore>hive.log 2>&1 &
[root@sole bin]# nohup hive --service hiveserver2>/dev/null 2>&1 &

在这里插入图片描述


4. Spark

Spark/Maven下载
Scala下载

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


4.1 Maven安装

# 解压
[root@sole install]# tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /opt/software
[root@sole software]# mv apache-maven-3.5.4/ maven-3.5.4
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
# MAVEN_HOME
export MAVEN_HOME=/opt/software/maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH

# 重新加载环境变量并测试maven
[root@sole ~]# source /etc/profile
[root@sole ~]# mvn -v

在这里插入图片描述

# 配置阿里云镜像
[root@sole software]# vi maven-3.5.4/conf/settings.xml
<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>
</mirror>

4.2 Scala安装

# 解压
[root@sole install]# tar -zxvf scala-2.11.12.tgz -C /opt/software
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
#SCALA_HOME
export SCALA_HOME=/opt/software/scala-2.11.12
export PATH=$SCALA_HOME/bin:$PATH

# 重新加载并测试
[root@sole ~]# source /etc/profile
[root@sole ~]# scala -version

在这里插入图片描述


4.3 Spark编译并安装

# 解压
[root@sole install]# tar -zxvf spark-2.3.0.tgz -C /opt/software
# 编译
[root@sole software]# cd spark-2.3.0/
[root@sole spark-2.3.0]# ./dev/make-distribution.sh --name without-hive --tgz -Pyarn -Phadoop-2.7 -Dhadoop.version=3.3.1 -Pparquet-provided -Porc-provided -Phadoop-provided

在这里插入图片描述


# 解压
[root@sole spark-2.3.0]# tar -zxvf spark-2.3.0-bin-without-hive.tgz -C /opt/software/
# 配置
[root@sole spark--bin-build]# vi /etc/profile.d/my.sh 

# SPARK_HOME
export SPARK_HOME=/opt/software/spark-2.3.0-bin-without-hive
export SPARK_CLASSPATH=$SPARK_HOME/jars
export PATH=$SPARK_HOME/bin:$PATH
##########################################################################################
[root@sole spark-2.3.0-bin-without-hive]# cd conf/
[root@sole conf]# cp spark-defaults.conf.template spark-defaults.conf
[root@sole conf]# vi spark-defaults.conf

spark.master                     yarn
spark.home                       /opt/software/spark-2.3.0-bin-without-hive
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://sole/tmp/spark
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.executor.memory            1g
spark.driver.memory              1g
spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
spark.yarn.archive               hdfs:///spark/jars/spark2.3.0-without-hive-libs.jar
spark.yarn.jars                  hdfs:///spark/jars/spark2.3.0-without-hive-libs.jar
##########################################################################################
[root@sole conf]# cp spark-env.sh.template spark-env.sh
[root@sole conf]# vi spark-env.sh

export SPARK_DIST_CLASSPATH=$(hadoop classpath)
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop/
##########################################################################################
# jar包上传替换
[root@sole spark-2.3.0-bin-without-hive]# hadoop fs -mkdir -p hdfs://sole:8082/tmp/spark
[root@sole spark-2.3.0-bin-without-hive]# hadoop fs -mkdir -p /spark/spark-2.3.0-jars
[root@sole spark-2.3.0-bin-without-hive]# jar cv0f spark2.3.0-without-hive-libs.jar -C ./jars/ .
[root@sole spark-2.3.0-bin-without-hive]# hadoop fs -mkdir -p /spark/jars
[root@sole spark-2.3.0-bin-without-hive]# hadoop fs -put spark2.3.0-without-hive-libs.jar /spark/jars/
[root@sole spark-2.3.0-bin-without-hive]# hadoop fs -put ./jars/* /spark/spark-2.3.0-jars/
[root@sole spark-2.3.0-bin-without-hive]# cp jars/scala-library-2.11.8.jar ../apache-hive-3.1.2-bin/lib/
[root@sole spark-2.3.0-bin-without-hive]# cp jars/spark-core_2.11-2.3.0.jar ../apache-hive-3.1.2-bin/lib/
[root@sole spark-2.3.0-bin-without-hive]# cp jars/spark-network-common_2.11-2.3.0.jar ../apache-hive-3.1.2-bin/lib/

编译参考

# 启动hive服务测试
[root@sole ~]# nohup hive --service metastore>hive.log 2>&1 &
[root@sole ~]# nohup hive --service hiveserver2>/dev/null 2>&1 &
[root@sole ~]# hive

在这里插入图片描述

在这里插入图片描述


5. Zookeeper

Zookeeper下载

在这里插入图片描述

# 解压
[root@sole install]# tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/software/
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
# ZK_HOME
export ZK_HOME=/opt/software/zookeeper-3.4.10
export PATH=$ZK_HOME/bin:$ZK_HOME/sbin:$PATH
# 重新加载
[root@sole ~]# source /etc/profile
# 配置
[root@sole install]# cd /opt/software/zookeeper-3.4.10/
# 在zookeeper的根目录下新建文件夹mydata
[root@sole zookeeper-3.4.10]# mkdir mydata
[root@sole zookeeper-3.4.10]# touch myid
[root@sole zookeeper-3.4.10]# echo "1" >> myid
##########################################################################################
[root@sole zookeeper-3.4.10]# cd /opt/software/zookeeper-3.4.10/conf
[root@sole conf]# cp zoo_sample.cfg zoo.cfg
[root@sole conf]# vi zoo.cfg

# 在zoo.cfg这个文件中,配置集群信息是存在一定的格式:service.N =YYY:A:B
# N:代表服务器编号(也就是myid里面的值);
# YYY:服务器地址/hostname;
# A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888);
# B:表示 是选举端口(默认是3888);
dataDir=/opt/software/zookeeper-3.4.10/mydata
server.1=sole:2888:3888
# 启动服务
[root@sole ~]# zkServer.sh start

在这里插入图片描述


6. HBase

HBase下载

在这里插入图片描述

# 解压
[root@sole install]# tar -zxvf hbase-2.4.12-bin.tar.gz -C /opt/software/
##########################################################################################
# 编辑环境变量
[root@sole ~]# vi /etc/profile.d/my.sh
#HBASE_HOME
export HBASE_HOME=/opt/software/hbase-2.4.12
export PATH=$HBASE_HOME/bin:$PATH
# 重新加载
[root@sole ~]# source /etc/profile
# 配置
[root@sole ~]# cd /opt/software/hbase-2.4.12/conf/
[root@sole conf]# vi hbase-env.sh

export JAVA_HOME=/opt/software/jdk1.8.0_391
[root@sole conf]# vi hbase-site.xml
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://sole:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/software/zookeeper-3.4.10/mydata</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>
# 启动服务
[root@sole ~]# start-hbase.sh 

在这里插入图片描述


PS:如果有写错或者写的不好的地方,欢迎各位大佬在评论区留下宝贵的意见或者建议,敬上!如果这篇博客对您有帮助,希望您可以顺手帮我点个赞!不胜感谢!


原创作者:wsjslient


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

消防站拍摄VR全景,“火焰蓝”让你的安全感拉满

今年全国消防日的主题是“预防为主、生命至上”&#xff0c;看着这些“火焰蓝”有没有将你的安全感拉满呢&#xff1f;近年来&#xff0c;消防力量的增强使得专业救援力量也逐渐加强&#xff0c;综合消防救援能力也在全面提升&#xff0c;通过VR全景拍摄消防站也是一个非常有意…

爆肝一文,走进大名鼎鼎的HTTP协议(通俗白话+三万字超详细+抓包工具使用)

文章目录 前言1. HTTP 是什么1.1 HTTP 完整请求流程1.2 理解 HTTP 协议的工作过程 2. HTTP 协议格式2.1 抓包工具的使用2.2 抓包工具的原理2.3 抓包结果2.4 协议格式总结 3. HTTP 请求(Request)3.1 认识 URL(Uniform Resource Locator)URL 基本格式关于 URL encode 3.2 认识请求…

[云原生案例2.3 ] Kubernetes的部署安装 【多master集群架构高可用 ---- (二进制安装部署)】

文章目录 1. Kubernetes多Master集群高可用方案1.1 多节点Master高可用的实现过程1.2 实现高可用方法 2. 新Master节点的部署2.1 前置准备2.2 系统初始化操作2.2.1 关闭防火墙、selinux和swap分区2.2.2 修改主机名&#xff0c;添加域名映射2.2.3 修改内核参数2.2.4 时间同步 2.…

【23真题】简单!原题很多!211!

今天分享的是23年内蒙古869的信号与系统试题及解析。 本套试卷难度分析&#xff1a;22年内蒙古大学869考研真题&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;该院校是考察通信原理信号的&#xff0c;从信号部分来看&#xff0c;本套试题内容难度中等偏下&#xff0…

css:文本对齐属性vertical-align实现化学元素上标下标的显示

文档 https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align 语法 vertical-align: <value>;可选值&#xff1a; sub&#xff1a;使元素的基线与父元素的下标基线对齐。 super&#xff1a;使元素的基线与父元素的上标基线对齐。 text-top&#xff1a;使…

PMP项目管理师证书到底是个什么证

项目管理师 PMP是指项目管理专业人士资格认证&#xff0c;PMP的全称是 Project Management Professional&#xff0c;它是由美国项目管理协会(PMI)发起的&#xff0c;严格 评估项目管理人员知识技能是否具有高品质的资格认证考试。 PMP是目前项目管理界含金量较高的证书&…

2023/11/10 JAVA学习

取文件夹本身大小 打开文件 文件改名案例 输出流,文件依照你起的文件名自动创建 哪个流后创建,哪个流先关闭 虚拟机退出跑不了 finally别返回值

NSS [鹏城杯 2022]压缩包

NSS [鹏城杯 2022]压缩包 考点&#xff1a;条件竞争/逻辑漏洞&#xff08;解压失败不删除已经解压文件&#xff09; 参考&#xff1a;回忆phpcms头像上传漏洞以及后续影响 | 离别歌 (leavesongs.com) 源码有点小多 <?php highlight_file(__FILE__);function removedir($…

多彩的树 -----题解(状压dp + 容斥原理)

目录 多彩的树 题目描述 输入描述: 输出描述: 输入 输出 思路解析&#xff1a; 代码实现&#xff1a; 多彩的树 时间限制&#xff1a;C/C 5秒&#xff0c;其他语言10秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 …

【算法练习Day42】买卖股票的最佳时机 III买卖股票的最佳时机 IV

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 买卖股票的最佳时机 III买卖…

二十四、W5100S/W5500+RP2040树莓派Pico<PHY的状态模式控制>

文章目录 1. 前言2. 相关简介2.1 简述2.2 原理2.3 优点&应用 3. WIZnet以太网芯片4. PHY模式配置测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 W5100S/W5500不仅支持自动PHY自动协商&#xff0c;而且支持用户自定义…

Java中的反射机制

获取字节码文件对象的三种方式 1&#xff0c;&#xff08;常用&#xff09;源代码阶段&#xff0c;Class.forName("全类名") 2&#xff0c;&#xff08;传参&#xff09;加载阶段 类名.class 3&#xff0c;&#xff08;前提有对象&#xff09;运行阶段 对象.getClas…

Mac使用brew搭建kafka集群

1. 第一步&#xff1a;单机搭建 单机搭建&#xff1a; 安装完后&#xff0c;默认自动安装对应版本zookeeper brew install kafka2.第二步&#xff1a;修改配置文件: 配置3个Kafka 第一个&#xff08;使用默认配置&#xff09; vi /opt/homebrew/etc/kafka/server.propertie…

相机标定:理论与实践

先讨论相机模型&#xff0c;说明投影关系的描述&#xff0c;介绍相机的内外参&#xff0c;最后完成标定。 一、内参含义 把需要标定的相机参数叫做内参&#xff08;intrinsics matrix&#xff09;&#xff0c;它决定了物体的实际位置Q在成像平面上的投影位置q&#xff0c;如下…

Django 缓存:提升Web应用性能详解

在构建动态Web应用时&#xff0c;性能往往是重要的关注点。Django, 作为一个高级Python Web框架&#xff0c;提供了一套全面的缓存系统帮助开发者提升网站性能&#xff0c;降低服务器负载&#xff0c;并改善用户体验。本文将深入讨论Django缓存机制&#xff0c;并通过示例展示如…

windows安装linux双系统启动盘的制作与恢复

下载镜像 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 制作启动盘 准备一个U盘&#xff0c;注意备份&#xff0c;启动盘的制作过程中是将ISO烧录到U盘中&#xff0c;会将U盘中的原内容覆盖掉在网上下载Win32DiskImager软件包烧录ISO…

详解Java中的重写和重载 | 动态绑定和静态绑定

目录 一.重载 二.重写 三.重载和重写的区别 一.重载 重载(overload)&#xff0c;Java中为了提高编程效率&#xff0c;允许我们使用方法重载&#xff0c;具体体现在&#xff0c;对于多个方法&#xff0c;他们的方法名相同&#xff0c;但参数列表不同&#xff0c;我们则将这种…

不想努力了,有没有不用努力就能考上硕士的方法

今年&#xff0c;硕士研究生考试报考人数再次刷新了纪录&#xff0c;高达474万人次。 这些年考研一直在扩招&#xff0c;但是录取率却越来越低&#xff0c;内卷血腥程度可想而知&#xff01; 2020年研究生报考人数341万&#xff0c;录取人数99.05万&#xff0c;录取率29.05%。…

Maven-依赖管理机制

一、背景和起源 依赖管理是Maven的一个核心功能。管理单个模块项目的依赖相对比较容易&#xff0c;但是如果是多模块项目或者有几百个模块的项目就是一个巨大的挑战。 如果手动构建项目&#xff0c;那么就先需要梳理各个模块pom中定义的依赖和版本&#xff0c;然后进行下载到本…