基于zookeeper的Hadoop集群搭建详细步骤

news2025/2/27 1:53:51

目录

一、一些基本概念

二、集群配置图

三、Hadoop高可用集群配置步骤

1.在第一台虚拟机解压hadoop-3.1.3.tar.gz到/opt/soft/目录

2.修改文件名、属主和属组

3.配置windows四台虚拟机的ip映射

4.修改hadoop配置文件

(1)hadoop-env.sh

(2)workers

(3)crore-site.xml

(4)hdfs-site.xml

(5)mapred-site.xml

(6)yarn-site.xml

5.拷贝hadoop到其他三台虚拟机

6.分配环境变量

7.重启环境变量,检验四台虚拟机安装是否成功

四、首次启动hadoop集群 

1.高可用启动之前要启动zookeeper

2.三台机器启动JournalNode

3.第一台机器格式化

4.第一台机器启动namenode

5.在第二台机器同步namenode信息

6.第二台机器启动namenode

7.每台机器查看namenode的状态都是standby

8.关闭所有的与dfs有关的服务

9.格式化zookeeper

10.zkCli.sh

11.启动dfs

12.查看namenode节点状态

13.打开网页登录查看

14.每台虚拟机下载主备切换工具

15.启动yarn

16.有resourcemanager的主机名登录8088端口

17.查看resourcemanager节点状态

18.关闭集群


zookeeper集群的安装步骤参考博文《搭建zookeeper高可用集群详细步骤》,注意主机名,这里换了主机名ant161=ant165;ant162=ant166;ant163=ant167;ant164=ant168

一、一些基本概念

JournalNode的作用

Hadoop集群中的DFSZKFailoverController进程的作用

二、集群配置图

ant161ant162ant163ant164
NameNodeNameNode
DataNode  DataNodeDataNodeDataNode
NodeManagerNodeManagerNodeManagerNodeManager
ResourceManagerResourceManager
JournalNode监控NameNode是否同步JournalNodeJournalNode

DFSZKFailoverController监控NameNode是否存活

DFSZKFailoverController

zookeeper0zookeeper1zookeeper2
JobHistory

三、Hadoop高可用集群配置步骤

1.在第一台虚拟机解压hadoop-3.1.3.tar.gz到/opt/soft/目录

[root@ant161 install]# tar -zxf ./hadoop-3.1.3.tar.gz -C /opt/soft/

2.修改文件名、属主和属组

[root@ant161 soft]# mv ./hadoop-3.1.3/ hadoop313

[root@ant161 soft]# chown -R root:root ./hadoop313/

3.配置windows四台虚拟机的ip映射

C:\Windows\System32\drivers\etc目录下的host文件,添加以下的主机ip配置

4.修改hadoop配置文件

(1)hadoop-env.sh

# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/opt/soft/jdk180
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

(2)workers

        输入四台虚拟机主机名

ant161
ant162
ant163
ant164

(3)crore-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://gky</value>
        <description>逻辑名称,必须与hdfs-site.cml中的dfs.nameservices值保持一致</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/soft/hadoop313/tmpdata</value>
        <description>namenode上本地的hadoop临时文件夹</description>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
        <description>默认用户</description>
    </property>
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
        <description></description>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
        <description></description>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
        <description>读写文件的buffer大小为:128K</description>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>ant161:2181,ant162:2181,ant163:2181</value>
        <description></description>
    </property>
    <property>
        <name>ha.zookeeper.session-timeout.ms</name>
        <value>10000</value>
        <description>hadoop链接zookeeper的超时时长设置为10s</description>
    </property>
</configuration>

(4)hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
        <description>Hadoop中每一个block的备份数</description>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/soft/hadoop313/data/dfs/name</value>
        <description>namenode上存储hdfs名字空间元数据目录</description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/soft/hadoop313/data/dfs/data</value>
        <description>datanode上数据块的物理存储位置</description>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>ant161:9869</value>
        <description></description>
    </property>
    <property>
        <name>dfs.nameservices</name>
        <value>gky</value>
        <description>指定hdfs的nameservice,需要和core-site.xml中保持一致</description>
    </property>
    <property>
        <name>dfs.ha.namenodes.gky</name>
        <value>nn1,nn2</value>
        <description>gky为集群的逻辑名称,映射两个namenode逻辑名</description>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.gky.nn1</name>
        <value>ant161:9000</value>
        <description>namenode1的RPC通信地址</description>
    </property>
    <property>
        <name>dfs.namenode.http-address.gky.nn1</name>
        <value>ant161:9870</value>
        <description>namenode1的http通信地址</description>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.gky.nn2</name>
        <value>ant162:9000</value>
        <description>namenode2的RPC通信地址</description>
    </property>
    <property>
        <name>dfs.namenode.http-address.gky.nn2</name>
        <value>ant162:9870</value>
        <description>namenode2的http通信地址</description>
    </property>
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://ant161:8485;ant162:8485;ant163:8485/gky</value>
        <description>指定NameNode的edits元数据的共享存储位置(JournalNode列表)</description>
    </property>
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/soft/hadoop313/data/journaldata</value>
        <description>指定JournalNode在本地磁盘存放数据的位置</description>
    </property>
    <!-- 容错 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
        <description>启用NameNode故障自动切换</description>
    </property>

    <property>
        <name>dfs.client.failover.proxy.provider.gky</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        <description>失败后自动切换的实现方式</description>
    </property>
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
        <description>防止脑裂的处理</description>
    </property>
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
        <description>使用sshfence隔离机制时需要ssh免登陆</description>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
        <description>关闭HDFS操作权限验证</description>
    </property>
    <property>
        <name>dfs.image.transfer.bandwidthPerSec</name>
        <value>1048576</value>
        <description>1M</description>
    </property>
    <property>
        <name>dfs.block.scanner.volume.bytes.per.second</name>
        <value>1048576</value>
        <description>如果该值为0,则DataNode的块扫描程序将被禁用。如果这是正数,则这是DataNode的块扫描程序将尝试从每个卷扫描的每秒字节数。</description>
    </property>
</configuration>

(5)mapred-site.xml

<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
	<description>job执行框架: local, classic or yarn</description>
</property>
<property>
	<name>mapreduce.application.classpath</name>
	<value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>
	<description></description>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>ant161:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>ant161:19888</value>
  </property>
<property>
	<name>mapreduce.map.memory.mb</name>
	<value>1024</value>
	<description>设置map阶段的task工作内存</description>
</property>
<property>
	<name>mapreduce.reduce.memory.mb</name>
	<value>2048</value>
	<description>设置reduce阶段的task工作内存</description>
</property>

(6)yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
        <description>开启resourcemanager高可用</description>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yrcabc</value>
        <description>指定yarn集群中的id</description>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
        <description>指定resourcemanager的名字</description>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>ant163</value>
        <description>设置rm1的名字</description>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>ant164</value>
        <description>设置rm2的名字</description>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>ant163:8088</value>
        <description></description>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>ant164:8088</value>
        <description></description>
    </property>
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>ant161:2181,ant162:2181,ant163:2181</value>
        <description>指定zookeeper集群地址</description>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>运行mapreduce程序必须配置的附属服务</description>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/opt/soft/hadoop313/tmpdata/yarn/local</value>
        <description>nodemanager本地存储目录</description>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/opt/soft/hadoop313/tmpdata/yarn/log</value>
        <description>nodemanager本地日志目录</description>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
        <description>resource进程的工作内存</description>
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>2</value>
        <description>resource工作中所能使用机器的内核数</description>
    </property>
	<!--下面三个配置在公司要删除-->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>256</value>
        <description></description>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
        <description></description>
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
        <description>日志保留多少秒</description>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description></description>
    </property>
    <property>
        <name>yarn.application.classpath</name>
        <value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>
  </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

5.拷贝hadoop到其他三台虚拟机

[root@ant161 soft]# scp -r ./hadoop313/ root@ant162:/opt/soft/
[root@ant161 soft]# scp -r ./hadoop313/ root@ant163:/opt/soft/
[root@ant161 soft]# scp -r ./hadoop313/ root@ant164:/opt/soft/

6.分配环境变量

[root@ant161 soft]# scp /etc/profile root@ant162:/etc/
profile                                                                                                                          100% 2202     1.4MB/s   00:00    
[root@ant161 soft]# scp /etc/profile root@ant163:/etc/
profile                                                                                                                          100% 2202     1.4MB/s   00:00    
[root@ant161 soft]# scp /etc/profile root@ant164:/etc/
profile                                              

7.重启环境变量,检验四台虚拟机安装是否成功

source /etc/profile

hadoop 

hadoop version

四、首次启动hadoop集群 

1.高可用启动之前要启动zookeeper

[root@ant161 soft]# /opt/shell/zkop.sh start
------------ ant161 zookeeper -----------
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
------------ ant162 zookeeper -----------
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
------------ ant163 zookeeper -----------
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED



[root@ant161 soft]# /opt/shell/showjps.sh 
---------------- ant161 服务启动状态 -----------------
2532 QuorumPeerMain
2582 Jps
---------------- ant162 服务启动状态 -----------------
2283 QuorumPeerMain
2335 Jps
---------------- ant163 服务启动状态 -----------------
2305 Jps
2259 QuorumPeerMain
---------------- ant164 服务启动状态 -----------------
2233 Jps



[root@ant161 soft]# /opt/shell/zkop.sh status
------------ ant161 zookeeper -----------
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Mode: follower
------------ ant162 zookeeper -----------
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Mode: leader
------------ ant163 zookeeper -----------
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Mode: follower

2.三台机器启动JournalNode

[root@ant161 soft]# hdfs --daemon start journalnode
WARNING: /opt/soft/hadoop313/logs does not exist. Creating.

[root@ant162 soft]# hdfs --daemon start journalnode
WARNING: /opt/soft/hadoop313/logs does not exist. Creating.

[root@ant163 soft]# hdfs --daemon start journalnode
WARNING: /opt/soft/hadoop313/logs does not exist. Creating.

3.第一台机器格式化

[root@ant161 soft]# hdfs namenode -format

4.第一台机器启动namenode

[root@ant161 hadoop]# hdfs --daemon start namenode

5.在第二台机器同步namenode信息

[root @ant162 soft]# hdfs namenode -bootstrapStandby

6.第二台机器启动namenode

[root @ant162 soft]# hdfs --daemon start namenode

7.每台机器查看namenode的状态都是standby

[root @ant161 soft]# hdfs haadmin -getServiceState nn1
standby
[root @ant161 soft]#  hdfs haadmin -getServiceState nn2
standby

8.关闭所有的与dfs有关的服务

[root @ant161 soft]# stop-dfs.sh

9.格式化zookeeper

[root @ant161 soft]# hdfs zkfc -formatZK

10.zkCli.sh

11.启动dfs

12.查看namenode节点状态

[root@ant161 soft]# hdfs haadmin -getServiceState nn1
standby
[root@ant161 soft]# hdfs haadmin -getServiceState nn2
active

13.打开网页登录查看

14.每台虚拟机下载主备切换工具

[root@ant161 soft]# yum install psmisc -y

此时如果停止active那一台的namenode,7218是active那一台机器namenode的进程号

[root@ant162 soft]# kill -9 7218

此时active那一台网页无法连接,另一台没有关闭namenode的机器的网页变为active

再重新启动关闭的namenode,网页端的两个网址刷新,就会发现刚刚变为active的那一台机器,还是active状态,而另一台重启的机器就编程了standby等待状态

15.启动yarn

16.有resourcemanager的主机名登录8088端口

哪一台机器是active的状态,就会自动跳转到那一台机器的主机名

17.查看resourcemanager节点状态

[root@ant161 soft]# yarn rmadmin -getServiceState rm1
active
[root@ant161 soft]# yarn rmadmin -getServiceState rm2
standby

18.关闭集群

(1)关闭dfs

[root@ant161 soft]# stop-dfs.sh

(2)关闭yarn

[root@ant161 soft]# stop-yarn.sh

(3)关闭journalnode

[root@ant161 soft]# hdfs --daemon stop journalnode

(4)关闭zookeeper

[root@ant161 soft]# /opt/shell/zkop.sh stop

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

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

相关文章

微信小程序+gatewayworker+php+tp框架开发,websocke即时通讯

为了做小程序的即时通讯功能&#xff0c;查了一些资料和视频&#xff0c;记录一下。 gatewayworker在tp框架的安装 下载地址&#xff1a;https://www.workerman.net/doc/gateway-worker/ 由于我先是在本地电脑上做开发的&#xff0c;所以下载的windows的demo 解压之后&#xf…

IPv6的基础配置以及实战案例

IPv6基本配置配置IPv6静态路由[Huawei] ipv6 route-static dest-ipv6-address prefix-length { interface-type interface-number [ nexthop-ipv6-address ] | nexthop-ipv6-address } [ preference preference ]查看接口的IPv6信息[Huawei] display ipv6 interface [ interfac…

Keras实例教程(7)之构建模型的第三种方式

多年以前,在TensorFlow中搭建深度学习模型对于很多人来说其实仍然是比较困难的。相比之下,Keras作为独立于TensorFlow的一种深度学习框架则要简单很多。在TensorFlow与PyTorch的竞争中逐渐式微的情况下,TensorFlow团队终于宣布Keras将成为在tensorflow2.0中构建和训练模型的…

浅谈软件测试需求管理

什么是需求管理&#xff1f; 需求管理&#xff0c;指对产品、系统或工程的开发需求的搜集、定义、分析、评审、整理、维护、追溯和复用等相关的管理工作和流程。通常特指应用程序或软件系统的研发需求。需求管理和配置管理、测试管理、缺陷管理、风险管理、变更管理等管理流程…

Java真的不难(五十四)RabbitMQ的入门及使用

RabbitMQ的入门及使用 一、什么是RabbitMQ&#xff1f; MQ全称为Message Queue&#xff0c;即消息队列。消息队列是在消息的传输过程中保存消息的容器。它是典型的&#xff1a;生产者、消费者模型。生产者不断向消息队列中生产消息&#xff0c;消费者不断的从队列中获取消息。…

redis+token实现登录校验,前后端分离,及解跨域问题的4种方法

目录 一、使用自定义filter实现跨域 1、客户端向服务端发送请求 2、服务端做登录验证了&#xff0c;并生成登路用户对应的token&#xff0c;保存到redis 3、响应&#xff08;报错&#xff09;-----跨域问题 4、解决跨域问题--------服务器端添加过滤器&#xff0c;设置请求…

Mybatis流式游标查询-大数据DB查询OOM查询问题

问题场景Mysql数据处理类型分以下三种com.mysql.cj.protocol.a.result.ResultsetRowsStatic&#xff1a;普通查询&#xff0c;将结果集一次性全部拉取到内存com.mysql.cj.protocol.a.result.ResultsetRowsCursor&#xff1a;游标查询&#xff0c;将结果集分批拉取到内存&#x…

Pytorch入门教程

Pytorch入门教程 Pytorch简介 概念&#xff1a;由Facebook人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库。优势&#xff1a;简洁、上手快、具有良好的文档和社区支持、项目开源、支持代码调试、丰富的扩展库 Pytorch基础知识 1.张量Tensor 分类…

【Ubuntu新手入门2】深度学习环境配置 Anaconda+Pycharm+PyTorch

【Ubuntu新手入门2】深度学习环境配置 AnacondaPycharmpytorch前言安装PyTorch查看cuda版本mobaxterm软件远程连接linux服务器安装安装anaconda安装pycharm安装新环境pytorch前言 本系统&#xff1a;Ubuntu18.04&#xff0c;anaconda最新&#xff0c;Pycharm最新&#xff0c;P…

泛微采知连,为组织提供安全、合规、智能的数字化文控系统

作为市场主体&#xff0c;企业需要建立健全的质量管理体系&#xff0c;并且及时更新&#xff0c;以应对激烈的市场竞争&#xff0c;实现企业可持续发展。 质量体系在很大程度上通过文件化的形式表现出来。《质量管理体系要求》(GB/T19001—2016/ISO9001&#xff1a;2015)标准指…

ESP-IDF:TCP多线程并发服务器

核心代码&#xff1a; 核心思想就是主线程只处理socket监听功能&#xff0c;把数据处理部分分配到不同的线程中去处理。来了一个客户端连接&#xff0c;就分配新的线程去处理该客户端的数据请求。 代码&#xff1a; /多线程并发服务器/ #include <stdio.h> #include …

实用调试技巧【上篇】

&#x1f534;本文章是在 Visual Studio 2022&#xff08;VS2022&#xff09;编译环境下进行操作讲解 文章目录&#x1f973;1. 什么是bug&#xff1f;&#x1f973;2.调试有多重要&#xff1f;2.1. 我们是如何写代码的&#xff1f;2.2.调试是什么&#xff1f;2.3.调试的基本步…

uni-app 消息推送功能UniPush

uni-app 消息推送功能UniPush,这里用的是uni-app自带的UniPush1.0&#xff08;个推服务&#xff09;&#xff0c;所以只针对UniPush1.0介绍实现步骤。 建议查阅的文章&#xff1a; UniPush 1.0 使用指南[2] Unipush 常见问题[3] 当然现在已经出了UniPush2.0&#xff08;HBuilde…

如何编写一个 npm 插件?

提到写 npm 插件&#xff0c;很多没搞过的可能第一感觉觉得很难&#xff0c;无从下手&#xff0c;其实不然。 我们甚至写个简单的 console.log(hello word)&#xff0c;都是可以当成一个插件发布上去的。 其实无从下手的主要难点还是在于你的具体要做的功能逻辑&#xff0c;这…

FPGA纯verilog代码实现sobel 边缘检测,提供2套工程源码和技术支持

目录1、前言2、理论基础3、设计思路和架构4、图像输入5、RGB转灰度6、3x3卷积滑窗获取7、Sobel卷积运算8、FDMA图像缓存9、图像输出10、工程1详解&#xff1a;ov5640输入11、工程2详解&#xff1a;hdmi输入12、上板调试验证并演示13、福利&#xff1a;工程代码的获取1、前言 边…

vue 在线编辑、实时预览的代码交互组件 vue-code-view

文章目录前言实现安装依赖vue.config.js配置main.js 全局注册参数配置新建vue单文件组件库混合使用错误处理前言 vue-code-view是一个基于 vue 2.x、轻量级的代码交互组件&#xff0c;在网页中实时编辑运行代码、预览效果的代码交互组件。 官方手册&#xff1a; Vue Code Vie…

LeetCode 25. K 个一组翻转链表

原题链接 难度&#xff1a;hard\color{red}{hard}hard 题目描述 给你链表的头节点 headheadhead &#xff0c;每 kkk 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 kkk 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 kkk 的整数倍&#…

vue2配置cesium详细教程

1.简介 网络上现在关于vue配置cesium的教程有很多&#xff0c;包括csdn和掘金等。虽然这些教程在一定意义上提供了开发者如何配置cesium的方法&#xff0c;但是大部分的方法都不切实际&#xff0c;因为每个人的电脑中npm、node、cesium、vue、webpack的版本都基本不一致的&…

汽车直营模式下OTD全流程

概述 随着新能源汽车的蓬勃发展&#xff0c;造车新势力的涌入&#xff0c;许多新能源车企想通过直营的营销模式来解决新能源汽车市场推广速度缓慢问题&#xff0c;而直营模式下OTD&#xff08;Order-To-Delivery&#xff0c;订单-交付&#xff09;全流程的改革创新在这过程中无…

高压放大器在非线性超声传播研究中的应用

实验名称&#xff1a;高压放大器在非线性超声传播研究中的应用研究方向&#xff1a;超声波测试目的&#xff1a;超声波在混凝土中的传播是一个极为复杂的非线性过程。当超声波穿过混凝土材料时&#xff0c;携带了大量有关混凝土内部结构和构造的信息。传统的超声波检测方法虽然…