尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

视频地址:尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili

  1. 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】
  2. 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程、案例实操)】
  3. 尚硅谷大数据技术Spark教程-笔记03【SparkSQL(概述、核心编程、项目实战)】
  4. 尚硅谷大数据技术Spark教程-笔记04【SparkStreaming(概述、Dstream入门、DStream创建)】
  5. 尚硅谷大数据技术Spark教程-笔记05【SparkStreaming(DStream转换、DStream输出、优雅关闭、SparkStreaming案例实操)】

目录

01_尚硅谷大数据技术之SparkCore

第01章-Spark概述

P001【001.尚硅谷_Spark框架 - 简介】04:54

P002【002.尚硅谷_Spark框架 - Vs Hadoop】07:49

P003【003.尚硅谷_Spark框架 - 核心模块 - 介绍】02:24

第02章-Spark快速上手

P004【004.尚硅谷_Spark框架 - 快速上手 - 开发环境准备】05:46

P005【005.尚硅谷_Spark框架 - 快速上手 - WordCount - 案例分析】07:57

P006【006.尚硅谷_Spark框架 - 快速上手 - WordCount - Spark环境】07:07

P007【007.尚硅谷_Spark框架 - 快速上手 - WordCount - 功能实现】11:56

P008【008.尚硅谷_Spark框架 - 快速上手 - WordCount - 不同的实现】08:31

P009【009.尚硅谷_Spark框架 - 快速上手 - WordCount - Spark的实现】04:24

P010【010.尚硅谷_Spark框架 - 快速上手 - WordCount - 日志和错误】03:50

第03章-Spark运行环境

P011【011.尚硅谷_Spark框架 - 运行环境 - 本地环境 - 基本配置和操作】08:11

P012【012.尚硅谷_Spark框架 - 运行环境 - 本地环境 - 提交应用程序】03:10

P013【013.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 基本配置和操作】06:13

P014【014.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 提交参数解析】03:08

P015【015.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 配置历史服务】04:08

P016【016.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 配置高可用】05:51

P017【017.尚硅谷_Spark框架 - 运行环境 - Yarn环境 - 基本配置 & 历史服务】06:42

P018【018.尚硅谷_Spark框架 - 运行环境 - Windows环境 & 总结】11:06

第04章-Spark运行架构

P019【019.尚硅谷_Spark框架 - 核心组件 - 介绍】03:33

P020【020.尚硅谷_Spark框架 - 核心概念 - Executor & Core & 并行度】03:31

P021【021.尚硅谷_Spark框架 - 核心概念 - DAG & 提交流程 & Yarn两种部署模式】07:00


01_尚硅谷大数据技术之SparkCore

制作不易,大家记得点个关注,一键三连呀【点赞、投币、收藏】感谢支持~ 众所期待,隆重推出!大数据领域中杀手级的应用计算框架:Spark视频教程。 本套视频教程基于Scala 2.12版本,对Spark 3.0版本的核心模块进行了详尽的源码级讲解,授课图文并茂,资料详实丰富,带你领略不一样的技术风景线。课程内容涉及方方面面,函数式编程,你熟悉吗?认知心理学,你知道吗?工程化代码框架,你了解吗?在这套Spark视频教程中,你想要的这些全都有!

第01章-Spark概述

P001【001.尚硅谷_Spark框架 - 简介】04:54

Spark 出现的时间相对较晚,并且主要功能主要是用于数据计算,所以其实 Spark 一直被认为是 Hadoop 框架的升级版。

P002【002.尚硅谷_Spark框架 - Vs Hadoop】07:49

spark将计算结果放到了内存中为下一次计算提供了更加便利的方式。

选择spark而非hadoop与MapReduce的原因:spark计算快,内存计算策略、先进的调度机制,spark可以更快地处理相同的数据集。

spark面对的问题:spark若部署在共享的集群中可能会遇到资源不足的问题,spark占用的资源更多一些,所以spark不适合与hadoop堆栈等组件一起使用。

Spark 和Hadoop的根本差异是多个作业之间的数据通信问题:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘。

P003【003.尚硅谷_Spark框架 - 核心模块 - 介绍】02:24

1.4 核心模块

  1. 【Spark Core】Spark Core 中提供了Spark最基础与最核心的功能,Spark 其他的功能如:Spark SQL, Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的
  2. 【Spark SQL】Spark SQL 是Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL或者Apache Hive 版本的 SQL 方言(HQL)来查询数据。
  3. 【Spark Streaming】Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API。
  4. 【Spark MLlib】MLlib 是 Spark 提供的一个机器学习算法库。MLlib不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。
  5. 【Spark GraphX】GraphX 是 Spark 面向图计算提供的框架与算法库。

第02章-Spark快速上手

P004【004.尚硅谷_Spark框架 - 快速上手 - 开发环境准备】05:46

第2章 Spark快速上手

先在file-settings-plugin里面安装Scala插件,然后在这里的global libraries里点+号选Scala,再downloading对应版本的scala。

 

package com.atguigu.bigdata.spark.core

object Test {
  def main(args: Array[String]): Unit = {
    println("Hello, spark!")
  }
}

P005【005.尚硅谷_Spark框架 - 快速上手 - WordCount - 案例分析】07:57

WordCount思路

P006【006.尚硅谷_Spark框架 - 快速上手 - WordCount - Spark环境】07:07

TODO是标记下,表示待完善

package com.atguigu.bigdata.spark.core.wc

import org.apache.spark.{SparkConf, SparkContext};

object Spark01_WordCount {
  def main(args: Array[String]): Unit = {
    //Application、Spark框架,如何让Spark框架运行application

    //Application应用程序

    //Spark框架,运行应用程序的环境
    //TODO 建立和Spark框架的连接
    //JDBC:Connection
    //SparkConf():基础配置对象、setMaster():本地运行环境、setAppName():设置应用程序名称
    val sparkConf = new SparkConf().setMaster("local").setAppName("WordCount")
    val sc = new SparkContext(sparkConf) //saprk上下文对象

    //TODO 执行业务操作

    //TODO 关闭连接
    sc.stop()
  }
}

P007【007.尚硅谷_Spark框架 - 快速上手 - WordCount - 功能实现】11:56

_.split() 等价于 x => x.split() 等价于 (x) => {x.split},是一个匿名函数。

package com.atguigu.bigdata.spark.core.wc

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext};

object Spark01_WordCount {
  def main(args: Array[String]): Unit = {
    //Application、Spark框架,如何让Spark框架运行application

    //Application应用程序

    //Spark框架,运行应用程序的环境
    //TODO 建立和Spark框架的连接
    //JDBC:Connection
    val sparkConf = new SparkConf().setMaster("local").setAppName("WordCount")
    //SparkConf():基础配置对象、setMaster():本地运行环境、setAppName():设置应用程序名称
    val sc = new SparkContext(sparkConf) //saprk上下文对象

    //TODO 执行业务操作
    //1.读取文件,获取一行一行的数据(以行为单位读取数据)
    //hello world
    val lines: RDD[String] = sc.textFile("datas")

    //2.将一行数据进行拆分,形成一个一个的单词(分词)
    //扁平化:将整体拆分成个体的操作
    //"hello world" => hello, world, hello, world
    val words: RDD[String] = lines.flatMap(_.split(" "))

    //3.将数据根据单词进行分组,便于统计
    //(hello, hello, hello), (world, world)
    val wordGroup: RDD[(String, Iterable[String])] = words.groupBy(word => word)

    //4.对分组后的数据进行转换
    //(hello, hello, hello), (world, world)
    //(hello, 3), (world, 2)
    val wordToCount = wordGroup.map {
      case (word, list) => {
        (word, list.size)
      }
    }

    //5.将转换结果采集到控制台打印出来
    val array: Array[(String, Int)] = wordToCount.collect()
    array.foreach(println)

    //TODO 关闭连接
    sc.stop()
  }
}

P008【008.尚硅谷_Spark框架 - 快速上手 - WordCount - 不同的实现】08:31

package com.atguigu.bigdata.spark.core.wc

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark02_WordCount {
  def main(args: Array[String]): Unit = {
    // TODO 建立和Spark框架的连接
    val sparConf = new SparkConf().setMaster("local").setAppName("WordCount")
    val sc = new SparkContext(sparConf)

    // TODO 执行业务操作
    // 1. 读取文件,获取一行一行的数据
    val lines: RDD[String] = sc.textFile("datas")

    // 2. 将一行数据进行拆分,形成一个一个的单词(分词),扁平化
    val words: RDD[String] = lines.flatMap(_.split(" "))

    var wordToOne = words.map(
      word => (word, 1)
    )

    // 3. 将单词进行结构的转换,方便统计
    val wordGroup: RDD[(String, Iterable[(String, Int)])] = wordToOne.groupBy(
      t => t._1
    )

    // 4. 对分组后的数据进行转换
    val wordToCount = wordGroup.map {
      case (word, list) => {
        list.reduce( //val wordCount: (String, Int) =
          (t1, t2) => {
            (t1._1, t1._2 + t2._2)
          }
        )
      }
    }

    // 5. 将转换结果采集到控制台打印出来
    val array: Array[(String, Int)] = wordToCount.collect()
    array.foreach(println)

    //TODO 关闭连接
    sc.stop()
  }
}

P009【009.尚硅谷_Spark框架 - 快速上手 - WordCount - Spark的实现】04:24

package com.atguigu.bigdata.spark.core.wc

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark03_WordCount {
  def main(args: Array[String]): Unit = {
    // TODO 建立和Spark框架的连接
    val sparConf = new SparkConf().setMaster("local").setAppName("WordCount")
    val sc = new SparkContext(sparConf)

    // TODO 执行业务操作
    val lines: RDD[String] = sc.textFile("datas")

    val words: RDD[String] = lines.flatMap(_.split(" "))

    var wordToOne = words.map(
      word => (word, 1)
    )

    // Spark框架提供了更多的功能,可以将分组和聚合使用一个方法实现
    // reduceByKey:相同的key数据,可以对value进行reduce聚合
    // wordToOne.reduceByKey((x, y) => {x + y})
    // wordToOne.reduceByKey((x, y) => x + y)
    val wordToCount = wordToOne.reduceByKey(_ + _)

    val array: Array[(String, Int)] = wordToCount.collect()
    array.foreach(println)

    //TODO 关闭连接
    sc.stop()
  }
}

P010【010.尚硅谷_Spark框架 - 快速上手 - WordCount - 日志和错误】03:50

执行过程中,会产生大量的执行日志,如果为了能够更好的查看程序的执行结果,可以在项目的resources目录中创建log4j.properties文件,并添加日志配置信息。

log4j.rootCategory=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

# Set the default spark-shell log level to ERROR. When running the spark-shell, the
# log level for this class is used to overwrite the root logger's log level, so that
# the user can have different defaults for the shell and regular Spark apps.
log4j.logger.org.apache.spark.repl.Main=ERROR

# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark_project.jetty=ERROR
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=ERROR
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=ERROR
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR

# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR

第03章-Spark运行环境

P011【011.尚硅谷_Spark框架 - 运行环境 - 本地环境 - 基本配置和操作】08:11

第3章-spark运行环境

 

sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

P012【012.尚硅谷_Spark框架 - 运行环境 - 本地环境 - 提交应用程序】03:10

P013【013.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 基本配置和操作】06:13

3.2 Standalone模式

P014【014.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 提交参数解析】03:08

3.2.4 提交应用

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master spark://linux1:7077 \

./examples/jars/spark-examples_2.12-3.0.0.jar \

10

  1. --class表示要执行程序的主类
  2. --masterspark:/nux1:7077独立部署模式,连接到Spark集群
  3. spark-examples_2.12-3.0.0.jar运行类所在的jar包
  4. 数字10表示程序的入口参数,用于设定当前应用的任务数量

P015【015.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 配置历史服务】04:08

先启动hadoop服务(主要是hdfs),再启动spark相关服务。

 

su atguigu
myhadoop.sh start
jpsall

cd /opt/module/spark-standalone/
bin/spark-shell
sbin/start-all.sh
sbin/start-history-server.sh
jpsall

history

  1. http://node1:9870/explorer.html#/
  2. http://node1:4040/jobs/
  3. http://node1:8080/
  4. http://node1:8020/
  5. http://node1:18080/

3.2.6 配置历史服务

P016【016.尚硅谷_Spark框架 - 运行环境 - 独立部署环境 - 配置高可用】05:51

3.2.7 配置高可用(HA)

所谓的高可用是因为当前集群中的Master节点只有一个,所以会存在单点故障问题。所以为了解决单点故障问题,需要在集群中配置多个Master节点,一旦处于活动状态的Master发生故障时,由备用Master提供服务,保证作业可以继续执行。这里的高可用一般采用Zookeeper设置。

Linux1

Linux2

Linux3

Spark

Master

Zookeeper 

Worker

Master

Zookeeper

Worker

Zookeeper

Worker

省流简洁版zookeeper环境搭建:zookeeper 3.5.7安装部署

视频地址:【尚硅谷】大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili

  1. 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】
  2. 尚硅谷大数据技术Zookeeper教程-笔记02【服务器动态上下线监听案例、ZooKeeper分布式锁案例、企业面试真题】
  3. 尚硅谷大数据技术Zookeeper教程-笔记03【源码解析-算法基础】
  4. 尚硅谷大数据技术Zookeeper教程-笔记04【源码解析-源码详解】

P017【017.尚硅谷_Spark框架 - 运行环境 - Yarn环境 - 基本配置 & 历史服务】06:42

3.3 Yarn模式

独立部署(Standalone)模式由 Spark 自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱一些。所以接下来我们来学习在强大的Yarn 环境下 Spark 是如何工作的(其实是因为在国内工作中,Yarn 使用的非常多)。

3.3.5 配置历史服务器

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=root, access=WRITE, inode="/user":atguigu:super

hadoop fs -chmod -R 777 /

P018【018.尚硅谷_Spark框架 - 运行环境 - Windows环境 & 总结】11:06

3.4 K8S&Mesos模式

Mesos 是Apache 下的开源分布式资源管理框架,它被称为是分布式系统的内核,在Twitter 得到广泛使用,管理着 Twitter 超过 30,0000 台服务器上的应用部署,但是在国内,依然使用着传统的Hadoop 大数据框架,所以国内使用 Mesos 框架的并不多,但是原理其实都差不多,这里我们就不做过多讲解了。

3.5 Windows模式

sc.textFile("input/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

spark-submit --class org.apache.spark.examples.SparkPi --master local[2] ../examples/jars/spark-examples_2.12-3.0.0.jar 10

3.6 部署模式对比

模式

Spark 安装机器数

需启动的进程

所属者

应用场景

Local

1

Spark

测试

Standalone

3

Master Worker

Spark

单独部署

Yarn

1

Yarn 及 HDFS

Hadoop

混合部署

3.7 端口号

  1. Spark 查看当前 Spark-shell 运行任务情况端口号:4040(计算)
  2. Spark Master 内部通信服务端口号:7077
  3. Standalone 模式下,Spark Master Web 端口号:8080(资源)
  4. Spark 历史服务器端口号:18080
  5. Hadoop YARN 任务运行情况查看端口号:8088

第04章-Spark运行架构

P019【019.尚硅谷_Spark框架 - 核心组件 - 介绍】03:33

第4章 Spark运行架构

4.1 运行架构

4.2.1 Driver

4.2.2 Executor

4.2.3 Master&Worker

4.2.4 ApplicationMaster

P020【020.尚硅谷_Spark框架 - 核心概念 - Executor & Core & 并行度】03:31

4.3 核心概念

4.3.1 Executor与Core

4.3.2 并行度(Parallelism)

P021【021.尚硅谷_Spark框架 - 核心概念 - DAG & 提交流程 & Yarn两种部署模式】07:00

4.3.3 有向无环图(DAG)

4.4 提交流程

4.2.1 Yarn Client 模式

4.2.2 Yarn Cluster 模式

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

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

相关文章

云原生背景下如何配置 JVM 内存

image.png 背景 前段时间业务研发反馈说是他的应用内存使用率很高,导致频繁的重启,让我排查下是怎么回事; 在这之前我也没怎么在意过这个问题,正好这次排查分析的过程做一个记录。 首先我查看了监控面板里的 Pod 监控:…

奶爸式Swagger教学

目录 一、导入依赖 二、SwaggerConfig基础编程 三、Swagger 常用说明注解 1.API 2.ApiOperation 3.ApiModel 4.ApiModelProperty 5.ApiParam 6.ApilmplicitParam 一、导入依赖 <!--开启Swagger --><!-- https://mvnrepository.com/artifact/io.springf…

Vector - 常用CAN工具 - CANoe软件安装常见问题

目录 一、确认电脑系统盘是否满足要求&#xff0c;CANoe软件对PC要求如下&#xff1a; 二、确认软件安装包完整 三、确认软件与电脑系统之间的兼容性 四、关闭后台程序 五、安装软件 六、清空临时文件夹 七、尝试在其他电脑上安装 一、确认电脑系统盘是否满足要求&#…

STM32 调试TM7711驱动原理图驱动代码

本文使用工程代码如下 (1条消息) STM32调试TM7711驱动原理图驱动源代码&#xff0c;参考如下博客&#xff0c;有原理图设计资源-CSDN文库 背景 项目选用TM7711&#xff0c;还是很令人吃惊的&#xff0c;主要是有如下几个理由 第一就是便宜 第二精度高 STM32的ADC精度不够…

微生物常见统计检验方法比较及选择

谷禾健康 微生物组经由二代测序分析得到庞大数据结果&#xff0c;其中包括OTU/ASV表&#xff0c;物种丰度表&#xff0c;alpha多样性、beta多样性指数&#xff0c;代谢功能预测丰度表等&#xff0c;这些数据构成了微生物组的变量&#xff0c;大量数据构成了高纬度数据信息。 针…

我的『1024』创作纪念日

目录 ◐机缘 ◑收获 ◐日常 ◑成就 ◐憧憬 记得&#xff0c;2020年07月22日我撰写了第1篇技术博客&#xff1a;《遗传算法实例解析》在这平凡的一天&#xff0c;我赋予了它不平凡的意义也许是立志成为一名专业T作者、也许是记录一段刚实践的经验但在那一刻&#xff0c;我已…

傅里叶分析的历史背景

目录 1. Fourier级数(三角级数)的历史背景 2. 圆和复平面 3. Fourier的大胆猜想 1. Fourier级数(三角级数)的历史背景 自古以来&#xff0c;圆形一直是(现在仍然是&#xff09;最简单的抽象理解形状。您只需要一个中心点和一个半径就可以了。圆上的所有点与圆心的距离都是固定…

Java Web开发:Spring Boot和Spring Cloud的应用和实践

一、介绍 Java Web开发是当今互联网时代中的一项重要技术&#xff0c;随着互联网的发展和应用场景的不断扩大&#xff0c;Java Web开发技术也得到了广泛的应用。而Spring Boot和Spring Cloud作为Java Web开发中最常用的技术之一&#xff0c;已经成为了很多开发者必备的技能。本…

Python常用的开发工具合集

​ Python是一种功能强大且易于学习的编程语言&#xff0c;被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛&#xff0c;越来越多的Python开发工具也涌现出来。但是&#xff0c;对于新手来说&#xff0c;选择一款合适的Python开发工具可…

Git的安装与版本控制

这里写目录标题 原理安装基本使用gitee-IDEA协同开发成员邀请开发组成员指定仓库权限给当前仓库设定分支提交代码时必须向自己的分支提交合并分支 - 无冲突 原理 Git本地有四个工作区域&#xff1a; 工作目录&#xff08;Working Directory&#xff09;、暂存区(Stage/Index)、…

【LeetCode】209.长度最小的子数组

209. 长度最小的子数组 思路一&#xff1a;暴力解法 通过两个for循环&#xff0c;从头开始找符合条件的子序列。暴力解法无法通过本题&#xff0c;超出时间限制&#xff0c;所以仅供参考。 代码如下&#xff1a; 暴力解法1&#xff1a;下面的代码是通过申请一个新的数组&#x…

error: LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl

Qt系列文章目录 文章目录 Qt系列文章目录前言一、QtCreator中qmake命令是什么&#xff1f;2.解决 前言 我在代码中加入了对应的信号和槽&#xff0c;但编译仍然报错&#xff1a; #ifndef PROJECTWIN_H #define PROJECTWIN_Hnamespace Ui { class ProjectWin; }ProjectWin类声…

杂记——24.HTML中空格的写法

前几天写项目时&#xff0c;突然对HTML中空格的写法感兴趣&#xff0c;于是搜了一下&#xff0c;现在对其进行总结 HTML不是一种编程语言&#xff0c;而是一种超文本标记语言 (markup language)&#xff0c;是网页制作所必备的。超文本”就是指页面内可以包含图片、链接&#…

创建基于oracle jdk8的自定义docker镜像

创建基于oracle jdk8的自定义docker镜像 1:查看服务器java版本&#xff1a; 如果服务器的版本是open-jdk&#xff0c;则进行如下操作 拷贝相关jdk压缩包&#xff08;.tar.gz后缀&#xff09;到服务器目录&#xff08;例&#xff1a;/usr/local&#xff09; 解压&#xff1a;…

【18】SCI易中期刊推荐——计算机科学(中科院2区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

你真的会跟 ChatGPT 聊天吗?(下)

接《你真的会跟 ChatGPT 聊天吗&#xff1f;&#xff08;上&#xff09;》&#xff0c;本文下半部分没有无毛猫那么搞笑的内容啦&#xff01;即使如此&#xff0c;哪怕你对文中提及的技术不大了解&#xff0c;也可以毫无压力地看完这篇&#xff0c;描述如何更好地获得 ChatGPT …

Redis数据结构——动态字符串、Dict、ZipList

一、Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串&#xff0c;因为C语言字符串存在很多问题&#xff1a; 获取字符串长度…

基于Python的学生成绩管理系统

末尾获取源码 开发语言&#xff1a;python 后端框架&#xff1a;django 数据库&#xff1a;MySQL5.7 开发软件&#xff1a;Pycharm 是否Maven项目&#xff1a;是 目录 一、项目简介 二、系统功能 三、系统项目截图 四、核心代码 4.1登录相关 4.2文件上传 4.3封装 一、项…

《程序员面试金典(第6版)》面试题 16.19. 水域大小(深度优先搜索,类似棋盘类问题,八皇后的简化版本,C++)

题目描述 你有一个用于表示一片土地的整数矩阵land&#xff0c;该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小&#xff0c;返回值需要从小到…

【下载】【you-get】用电脑下载网页视频

分享一下&#xff0c;此方法是在网络上看到的&#xff0c;但忘了出处。 一、前提 电脑安装了python软件&#xff0c;版本无要求。建议上官网下载软件。记得配置好环境&#xff08;将pyhton的scripts文件夹的路径加到用户变量里&#xff09;。 二、方法 1、安装you-get库 &am…