网站建设网站需要什么/最吸引人的营销广告词

网站建设网站需要什么,最吸引人的营销广告词,网站开发蓝云,制作网页的视频教程spark内存计算框架 一、主题 spark核心概念spark集群架构spark集群安装部署spark-shell的使用通过IDEA开发spark程序 二、要点 1. spark是什么 Apache Spark™ is a unified analytics engine for large-scale data processing. spark是针对于大规模数据处理的统一分析引擎…

spark内存计算框架

在这里插入图片描述

一、主题

  1. spark核心概念
  2. spark集群架构
  3. spark集群安装部署
  4. spark-shell的使用
  5. 通过IDEA开发spark程序

二、要点

1. spark是什么

  • Apache Spark™ is a unified analytics engine for large-scale data processing.

  • spark是针对于大规模数据处理的统一分析引擎

spark是在Hadoop基础上的改进,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
spark是基于内存计算框架,计算速度非常之快,但是它仅仅只是涉及到计算,并没有涉及到数据的存储,后期需要使用spark对接外部的数据源,比如hdfs。

2. spark的四大特性

2.1 速度快

在这里插入图片描述

  • 运行速度提高100倍

    • Apache Spark使用最先进的DAG调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性能。
  • spark比mapreduce快的2个主要原因

    • 1、基于内存

      (1)mapreduce任务后期再计算的时候,每一个job的输出结果会落地到磁盘,后续有其他的job需要依赖于前面job的输出结果,这个时候就需要进行大量的磁盘io操作。性能就比较低。
      (2)spark任务后期再计算的时候,job的输出结果可以保存在内存中,后续有其他的job需要依赖于前面job的输出结果,这个时候就直接从内存中获取得到,避免了磁盘io操作,性能比较高

    • 2、进程与线程

      spark任务以线程的方式运行在Executor进程中

      (1)mapreduce任务以进程的方式运行在yarn集群中,比如程序中有100个MapTask,一个task就需要一个进程,这些task要运行就需要开启100个进程。
      (2)spark任务以线程的方式运行在进程中,比如程序中有100个MapTask,后期一个task就对应一个线程,这里就不在是进程,这些task需要运行,这里可以极端一点:
      只需要开启1个进程,在这个进程中启动100个线程就可以了。
      进程中可以启动很多个线程,而开启一个进程与开启一个线程需要的时间和调度代价是不一样。 开启一个进程需要的时间远远大于开启一个线程。

2.2 易用性

在这里插入图片描述

  • 可以快速去编写spark程序通过 java/scala/python/R/SQL等不同语言
2.3 通用性

在这里插入图片描述

  • spark框架不在是一个简单的框架,可以把spark理解成一个==生态系统==,它内部是包含了很多模块,基于不同的应用场景可以选择对应的模块去使用
    • sparksql
      • 通过sql去开发spark程序做一些离线分析
    • sparkStreaming
      • 主要是用来解决公司有实时计算的这种场景
    • Mlib
      • 它封装了一些机器学习的算法库
    • Graphx
      • 图计算
2.4 兼容性

在这里插入图片描述

  • spark程序就是一个计算逻辑程序,这个任务要运行就需要计算资源(内存、cpu、磁盘),哪里可以给当前这个任务提供计算资源,就可以把spark程序提交到哪里去运行
    • standAlone
      • 它是spark自带的独立运行模式,整个任务的资源分配由spark集群的老大Master负责
    • yarn
      • 可以把spark程序提交到yarn中运行,整个任务的资源分配由yarn中的老大ResourceManager负责
    • mesos
      • 它也是apache开源的一个类似于yarn的资源调度平台

⭐️3. spark集群架构

在这里插入图片描述

  • Driver

    • 它会执行客户端写好的main方法,它会构建一个名叫SparkContext对象
      • 该对象是所有spark程序的执行入口
  • Application

    • 就是一个spark的应用程序,它是包含了客户端的代码和任务运行的资源信息
  • ⭐️ClusterManager

  • 它是给程序提供计算资源的外部服务

    • standAlone
      • 它是spark自带的集群模式,整个任务的资源分配由spark集群的老大Master负责
    • yarn
      • 可以把spark程序提交到yarn中运行,整个任务的资源分配由yarn中的老大ResourceManager负责
    • mesos
      • 它也是apache开源的一个类似于yarn的资源调度平台。
  • Master

    • 它是整个spark集群的主节点,负责任务资源的分配
  • Worker

    • 它是整个spark集群的从节点,负责任务计算的节点
  • Executor

    • 它是一个进程,它会在worker节点启动该进程(计算资源)
  • Task

    • spark任务是以task线程的方式运行在worker节点对应的executor进程中

4. spark集群安装部署

  • 事先搭建好zookeeper集群
  • 1、下载安装包

    • https://archive.apache.org/dist/spark/spark-2.3.3/spark-2.3.3-bin-hadoop2.7.tgz
    • spark-2.3.3-bin-hadoop2.7.tgz
  • 2、规划安装目录

    • /kkb/install
  • 3、上传安装包到服务器

  • 4、解压安装包到指定的安装目录

    • tar -zxvf spark-2.3.3-bin-hadoop2.7.tgz -C /kkb/install
  • 5、重命名解压目录

    • mv spark-2.3.3-bin-hadoop2.7 spark
  • 6、修改配置文件

    • 进入到spark的安装目录下对应的conf文件夹

      • vim spark-env.sh ( mv spark-env.sh.template spark-env.sh)

        #配置java的环境变量
        export JAVA_HOME=/kkb/install/jdk1.8.0_141
        #配置zk相关信息
        export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER  -Dspark.deploy.zookeeper.url=node01:2181,node02:2181,node03:2181  -Dspark.deploy.zookeeper.dir=/spark"
        
      • vim slaves ( mv slaves.template slaves)

        #指定spark集群的worker节点
        node02
        node03
        
  • 7、分发安装目录到其他机器

    scp -r /kkb/install/spark node02:/kkb/install
    scp -r /kkb/install/spark node03:/kkb/install
    
  • 8、修改spark环境变量

    • vim /etc/profile

      export SPARK_HOME=/kkb/install/spark
      export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
      
  • 9、分发spark环境变量到其他机器

    scp /etc/profile node02:/etc
    scp /etc/profile node03:/etc
    
  • 10、让所有机器的spark环境变量生效

    • 在所有节点执行
      • source /etc/profile

5. spark集群的启动和停止

5.1 启动
  • 1、先启动zk
  • 2、启动spark集群
    • 可以在任意一台服务器来执行(条件:需要任意2台机器之间实现ssh免密登录)
      • $SPARK_HOME/sbin/start-all.sh
      • 在哪里启动这个脚本,就在当前该机器启动一个Master进程
      • 整个集群的worker进程的启动由slaves文件
    • 后期可以在其他机器单独在启动master
      • $SPARK_HOME/sbin/start-master.sh

⭐️⭐️

(1) 如何恢复到上一次活着master挂掉之前的状态?在高可用模式下,整个spark集群就有很多个master,其中只有一个master被zk选举成活着的master,其他的多个master都处于standby,同时把整个spark集群的元数据信息通过zk中节点进行保存。后期如果活着的master挂掉。首先zk会感知到活着的master挂掉,下面开始在多个处于standby中的master进行选举,再次产生一个活着的master,这个活着的master会读取保存在zk节点中的spark集群元数据信息,恢复到上一次master的状态。整个过程在恢复的时候经历过了很多个不同的阶段,每个阶段都需要一定时间,最终恢复到上个活着的master的转态,整个恢复过程一般需要1-2分钟。(2) 在master的恢复阶段对任务的影响?a)对已经运行的任务是没有任何影响由于该任务正在运行,说明它已经拿到了计算资源,这个时候就不需要master。b) 对即将要提交的任务是有影响由于该任务需要有计算资源,这个时候会找活着的master去申请计算资源,由于没有一个活着的master,该任务是获取不到计算资源,也就是任务无法运行。
5.2 停止
  • 在处于active Master主节点执行

    • $SPARK_HOME/sbin/stop-all.sh
  • 在处于standBy Master主节点执行

    • $SPARK_HOME/sbin/stop-master.sh

6. spark集群的web管理界面

  • 当启动好spark集群之后,可以访问这样一个地址
    • http://master主机名:8080
    • 可以通过这个web界面观察到很多信息
      • 整个spark集群的详细信息
      • 整个spark集群总的资源信息
      • 整个spark集群已经使用的资源信息
      • 整个spark集群还剩的资源信息
      • 整个spark集群正在运行的任务信息
      • 整个spark集群已经完成的任务信息

在这里插入图片描述

7. 初识spark程序

⭐️7.1 普通模式提交 (指定活着的master地址)
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
examples/jars/spark-examples_2.11-2.3.3.jar \
10####参数说明
--class:指定包含main方法的主类
--master:指定spark集群master地址
--executor-memory:指定任务在运行的时候需要的每一个executor内存大小
--total-executor-cores: 指定任务在运行的时候需要总的cpu核数
⭐️7.2 高可用模式提交 (集群有很多个master)
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077,node02:7077,node03:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
examples/jars/spark-examples_2.11-2.3.3.jar \
10spark集群中有很多个master,并不知道哪一个master是活着的master,即使你知道哪一个master是活着的master,它也有可能下一秒就挂掉,这里就可以把所有master都罗列出来
--master spark://node01:7077,node02:7077,node03:7077后期程序会轮训整个master列表,最终找到活着的master,然后向它申请计算资源,最后运行程序。

8. spark-shell使用

8.1 运行spark-shell --master local[N] 读取本地文件进行单词统计
  • –master local[N]

    • local 表示程序在本地进行计算,跟spark集群目前没有任何关系
    • N 它是一个正整数,表示使用N个线程参与任务计算
    • local[N] 表示本地采用N个线程计算任务
  • spark-shell --master local[2]

    • 默认会产生一个SparkSubmit进程
    sc.textFile("file:///home/hadoop/words.txt").flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey((x,y)=>x+y).collectsc.textFile("file:///home/hadoop/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
    
8.2 运行spark-shell --master local[N] 读取HDFS上文件进行单词统计
  • spark整合HDFS

    • 在node01上修改配置文件
      • vim spark-env.sh
    export HADOOP_CONF_DIR=/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
    
    • 分发到其他节点
    scp spark-env.sh node02:/kkb/install/spark/conf
    scp spark-env.sh node03:/kkb/install/spark/conf
    
  • spark-shell --master local[2]

    sc.textFile("/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collectsc.textFile("hdfs://node01:8020/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
    
8.3 运行spark-shell 指定集群中活着master 读取HDFS上文件进行单词统计
  • spark-shell --master spark://node01:7077 --executor-memory 1g --total-executor-cores 4

    • –master spark://node01:7077
      • 指定活着的master地址
    • –executor-memory 1g
      • 指定每一个executor进程的内存大小
    • –total-executor-cores 4
      • 指定总的executor进程cpu核数
    sc.textFile("hdfs://node01:8020/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect//实现读取hdfs上文件之后,需要把计算的结果保存到hdfs上
    sc.textFile("/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("/out")
    

9. 通过IDEA开发spark程序

  • 构建maven工程,添加pom依赖

     <dependencies><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.11</artifactId><version>2.3.3</version></dependency>
    </dependencies><build><sourceDirectory>src/main/scala</sourceDirectory><testSourceDirectory>src/test/scala</testSourceDirectory><plugins><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.2.2</version><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals><configuration><args><arg>-dependencyfile</arg><arg>${project.build.directory}/.scala_dependencies</arg></args></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.3</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass></mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build>
    
  • 创建 src/main/scala 和 src/test/scala 目录

在这里插入图片描述

9.1 利用scala语言开发spark程序实现单词统计–本地运行
  • 代码开发
package com.kaikebaimport org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}//todo: 利用scala语言开发spark程序实现单词统计
object WordCount {def main(args: Array[String]): Unit = {//1、构建sparkConf对象 设置application名称和master地址val sparkConf: SparkConf = new SparkConf().setAppName("WordCount").setMaster("local[2]")//2、构建sparkContext对象,该对象非常重要,它是所有spark程序的执行入口// 它内部会构建  DAGScheduler和 TaskScheduler 对象val sc = new SparkContext(sparkConf)//设置日志输出级别sc.setLogLevel("warn")//3、读取数据文件val data: RDD[String] = sc.textFile("E:\\words.txt")//4、 切分每一行,获取所有单词val words: RDD[String] = data.flatMap(x=>x.split(" "))//5、每个单词计为1val wordAndOne: RDD[(String, Int)] = words.map(x => (x,1))//6、相同单词出现的1累加val result: RDD[(String, Int)] = wordAndOne.reduceByKey((x,y)=>x+y)//按照单词出现的次数降序排列  第二个参数默认是true表示升序,设置为false表示降序val sortedRDD: RDD[(String, Int)] = result.sortBy( x=> x._2,false)//7、收集数据打印val finalResult: Array[(String, Int)] = sortedRDD.collect()finalResult.foreach(println)//8、关闭scsc.stop()}
}
9.2 利用scala语言开发spark程序实现单词统计–集群运行
  • 代码开发
package com.kaikeba
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}//todo: 利用scala语言开发spark程序实现单词统计
object WordCountOnSpark {def main(args: Array[String]): Unit = {//1、构建sparkConf对象 设置application名称val sparkConf: SparkConf = new SparkConf().setAppName("WordCountOnSpark")//2、构建sparkContext对象,该对象非常重要,它是所有spark程序的执行入口// 它内部会构建  DAGScheduler和 TaskScheduler 对象val sc = new SparkContext(sparkConf)//设置日志输出级别sc.setLogLevel("warn")//3、读取数据文件val data: RDD[String] = sc.textFile(args(0))//4、 切分每一行,获取所有单词val words: RDD[String] = data.flatMap(x=>x.split(" "))//5、每个单词计为1val wordAndOne: RDD[(String, Int)] = words.map(x => (x,1))//6、相同单词出现的1累加val result: RDD[(String, Int)] = wordAndOne.reduceByKey((x,y)=>x+y)//7、把计算结果保存在hdfs上result.saveAsTextFile(args(1))//8、关闭scsc.stop()}
}
  • 打成jar包提交到集群中运行
spark-submit \
--master spark://node01:7077,node02:7077 \
--class com.kaikeba.WordCountOnSpark \
--executor-memory 1g  \
--total-executor-cores 4 \
original-spark_class01-1.0-SNAPSHOT.jar \
/words.txt  /out
9.3 利用java语言开发spark程序实现单词统计–本地运行
  • 代码开发
package com.kaikeba;import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFunction;
import scala.Tuple2;import java.util.Arrays;
import java.util.Iterator;
import java.util.List;//todo: 利用java语言开发spark的单词统计程序
public class JavaWordCount {public static void main(String[] args) {//1、创建SparkConf对象SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount").setMaster("local[2]");//2、构建JavaSparkContext对象JavaSparkContext jsc = new JavaSparkContext(sparkConf);//3、读取数据文件JavaRDD<String> data = jsc.textFile("E:\\words.txt");//4、切分每一行获取所有的单词   scala:  data.flatMap(x=>x.split(" "))JavaRDD<String> wordsJavaRDD = data.flatMap(new FlatMapFunction<String, String>() {public Iterator<String> call(String line) throws Exception {String[] words = line.split(" ");return Arrays.asList(words).iterator();}});//5、每个单词计为1    scala:  wordsJavaRDD.map(x=>(x,1))JavaPairRDD<String, Integer> wordAndOne = wordsJavaRDD.mapToPair(new PairFunction<String, String, Integer>() {public Tuple2<String, Integer> call(String word) throws Exception {return new Tuple2<String, Integer>(word, 1);}});//6、相同单词出现的1累加    scala:  wordAndOne.reduceByKey((x,y)=>x+y)JavaPairRDD<String, Integer> result = wordAndOne.reduceByKey(new Function2<Integer, Integer, Integer>() {public Integer call(Integer v1, Integer v2) throws Exception {return v1 + v2;}});//按照单词出现的次数降序 (单词,次数)  -->(次数,单词).sortByKey----> (单词,次数)JavaPairRDD<Integer, String> reverseJavaRDD = result.mapToPair(new PairFunction<Tuple2<String, Integer>, Integer, String>() {public Tuple2<Integer, String> call(Tuple2<String, Integer> t) throws Exception {return new Tuple2<Integer, String>(t._2, t._1);}});JavaPairRDD<String, Integer> sortedRDD = reverseJavaRDD.sortByKey(false).mapToPair(new PairFunction<Tuple2<Integer, String>, String, Integer>() {public Tuple2<String, Integer> call(Tuple2<Integer, String> t) throws Exception {return new Tuple2<String, Integer>(t._2, t._1);}});//7、收集打印List<Tuple2<String, Integer>> finalResult = sortedRDD.collect();for (Tuple2<String, Integer> t : finalResult) {System.out.println("单词:"+t._1 +"\t次数:"+t._2);}jsc.stop();}
}

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

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

相关文章

[Windows] 批量为视频或者音频生成字幕 video subtitle master 1.5.2

Video Subtitle Master 1.5.2 介绍 Video Subtitle Master 1.5.2 是一款功能强大的客户端工具&#xff0c;能够批量为视频或音频生成字幕&#xff0c;还支持批量将字幕翻译成其他语言。该工具具有跨平台性&#xff0c;无论是 mac 系统还是 windows 系统都能使用。 参考原文&a…

神经网络代码入门解析

神经网络代码入门解析 import torch import matplotlib.pyplot as pltimport randomdef create_data(w, b, data_num): # 数据生成x torch.normal(0, 1, (data_num, len(w)))y torch.matmul(x, w) b # 矩阵相乘再加bnoise torch.normal(0, 0.01, y.shape) # 为y添加噪声…

DeepSeek 开源狂欢周(一)FlashMLA:高效推理加速新时代

上周末&#xff0c;DeepSeek在X平台&#xff08;Twitter&#xff09;宣布将开启连续一周的开源&#xff0c;整个开源社区为之沸腾&#xff0c;全球AI爱好者纷纷为关注。没错&#xff0c;这是一场由DeepSeek引领的开源盛宴&#xff0c;推翻了传统推理加速的种种限制。这周一&…

Java 设计模式:软件开发的精髓与艺

目录 一、设计模式的起源二、设计模式的分类1. 创建型模式2. 结构型模式3. 行为型模式三、设计模式的实践1. 单例模式2. 工厂模式3. 策略模式四、设计模式的优势五、设计模式的局限性六、总结在软件开发的浩瀚星空中,设计模式犹如一颗颗璀璨的星辰,照亮了开发者前行的道路。它…

【基于Raft的KV共识算法】-序:Raft概述

本文目录 1.为什么会有Raft&#xff1f;CAP理论 2.Raft基本原理流程为什么要以日志作为中间载体&#xff1f; 3.实现思路任期领导选举日志同步 1.为什么会有Raft&#xff1f; 简单来说就是数据会随着业务和时间的增长&#xff0c;单机不能存的下&#xff0c;这个时候需要以某种…

EasyRTC嵌入式WebRTC技术与AI大模型结合:从ICE框架优化到AI推理

实时通信技术在现代社会中扮演着越来越重要的角色&#xff0c;从视频会议到在线教育&#xff0c;再到远程医疗&#xff0c;其应用场景不断拓展。WebRTC作为一项开源项目&#xff0c;为浏览器和移动应用提供了便捷的实时通信能力。而EasyRTC作为基于WebRTC的嵌入式解决方案&…

javaEE初阶————多线程初阶(5)

本期是多线程初阶的最后一篇文章了&#xff0c;下一篇就是多线程进阶的文章了&#xff0c;大家加油&#xff01; 一&#xff0c;模拟实现线程池 我们上期说过线程池类似一个数组&#xff0c;我们有任务就放到线程池中&#xff0c;让线程池帮助我们完成任务&#xff0c;我们该如…

安装 cpolar 内网穿透工具的步骤

安装 cpolar 内网穿透工具的步骤 1. 下载 cpolar 软件安装包 步骤&#xff1a; 前往 cpolar 官方下载页面。 根据您的操作系统&#xff08;Windows、macOS、Linux 等&#xff09;&#xff0c;选择对应的安装包进行下载。 2. 注册 cpolar 账号 步骤&#xff1a; 访问 cpolar…

Linux :进程状态

目录 1 引言 2 操作系统的资源分配 3进程状态 3.1运行状态 3.2 阻塞状态 3.3挂起状态 4.进程状态详解 4.1 运行状态R 4.2 休眠状态S 4.3深度睡眠状态D 4.4僵尸状态Z 5 孤儿进程 6 进程优先级 其他概念 1 引言 &#x1f33b;在前面的文章中&#xff0c;我们已…

openwebUI访问vllm加载deepseek微调过的本地大模型

文章目录 前言一、openwebui安装二、配置openwebui环境三、安装vllm四、启动vllm五、启动openwebui 前言 首先安装vllm&#xff0c;然后加载本地模型&#xff0c;会起一个端口好。 在安装openwebui,去访问这个端口号。下面具体步骤的演示。 一、openwebui安装 rootautodl-co…

DeepSeek MLA(Multi-Head Latent Attention)算法浅析

目录 前言1. 从MHA、MQA、GQA到MLA1.1 MHA1.2 瓶颈1.3 MQA1.4 GQA1.5 MLA1.5.1 Part 11.5.2 Part 21.5.3 Part 3 结语参考 前言 学习 DeepSeek 中的 MLA 模块&#xff0c;究极缝合怪&#xff0c;东抄抄西抄抄&#xff0c;主要 copy 自苏神的文章&#xff0c;仅供自己参考&#…

zookeeper-docker版

Zookeeper-docker版 1 zookeeper概述 1.1 什么是zookeeper Zookeeper是一个分布式的、高性能的、开源的分布式系统的协调&#xff08;Coordination&#xff09;服务&#xff0c;它是一个为分布式应用提供一致性服务的软件。 1.2 zookeeper应用场景 zookeeper是一个经典的分…

unity学习56:旧版legacy和新版TMP文本输入框 InputField学习

目录 1 旧版文本输入框 legacy InputField 1.1 新建一个文本输入框 1.2 InputField 的子物体构成 1.3 input field的的component 1.4 input Field的属性 2 过渡 transition 3 控件导航 navigation 4 占位文本 placeholder 5 文本 text 5.1 文本内容&#xff0c;用户…

【弹性计算】弹性裸金属服务器和神龙虚拟化(一):功能特点

弹性裸金属服务器和神龙虚拟化&#xff08;一&#xff09;&#xff1a;功能特点 特征一&#xff1a;分钟级交付特征二&#xff1a;兼容 VPC、SLB、RDS 等云平台全业务特征三&#xff1a;兼容虚拟机镜像特征四&#xff1a;云盘启动和数据云盘动态热插拔特征五&#xff1a;虚拟机…

腾讯云大模型知识引擎驱动的DeepSeek满血版医疗顾问大模型搭建实战

文章目录 1. 引言2. 什么是腾讯云大模型知识引擎&#xff08;LKE&#xff09;&#xff1f;核心优势功能特点应用场景 3. 模型搭建过程3.1 注册登录产品3.2 创建应用3.3 配置模型3.4 配置角色指令3.5 配置欢迎语3.6 配置知识库3.7 配置工作流3.8 启用联网搜索3.9 发布模型 4. 问…

如何在 IntelliJ IDEA 中集成 DeepSeek

如何在 IntelliJ IDEA 中集成 DeepSeek 在本教程中&#xff0c;我们将带您一步步完成将 DeepSeek 集成到 IntelliJ IDEA 中的过程。通过此集成&#xff0c;您可以在IDE中利用DeepSeek强大的功能&#xff0c;提高开发工作效率。 步骤 1&#xff1a;安装 Proxy AI 插件 首先&a…

【Maven】入门介绍 与 安装、配置

文章目录 一、Maven简介1. Maven介绍2. Maven软件工作原理模型图 二、Maven安装和配置1. Maven安装2. Maven环境配置3. Maven功能配置4. IDEA配置本地Maven软件 一、Maven简介 1. Maven介绍 https://maven.apache.org/what-is-maven.html Maven 是一款为 Java 项目管理构建、…

Java数据结构第十六期:走进二叉树的奇妙世界(五)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、非递归实现遍历二叉树 1.1. 二叉树的前序遍历 1.2. 二叉树的中序遍历 1.3. 二叉树的后序遍历 一、非递归实现遍历二叉树 1.1. 二叉树的前序遍历 我们这里要使用栈来进行实现。我们反向思考一下为…

算法004——盛最多水的容器

力扣——盛最多水的容器点击即可跳转 当我们选择1号线和8号线时&#xff0c;下标为 1 和 8 形成容器的容积的高度是由 较矮的决定的&#xff0c;即下标为 8 的位置&#xff1b; 而宽度则是 1到8 之间的距离&#xff0c;为 8-17&#xff0c;此时容器的容积为 7 * 7 49。 当我…

MIT何恺明再次突破传统:分形递归架构引爆生成模型新纪元!

论文链接&#xff1a;https://arxiv.org/pdf/2502.17437 代码链接&#xff1a;https://github.com/LTH14/fractalgen 亮点直击 分形生成模型&#xff1a;首次将分形理论引入生成模型&#xff0c;提出了一种具有自相似性的递归生成框架。 递归模块化&#xff1a;通过递归调用生…