Elasticsearch 安装(二)

news2024/11/24 0:22:21

目录

  • 前言
  • 一、Linux 安装
    • 1、下载安装包
      • ⑴、选择需要的安装包
      • ⑵、下载解压到安装目录
    • 2、查看解压后目录结构
    • 3、启动 Elasticsearch
      • ⑴、正常启动流程
      • ⑵、启动过程遇到的问题
        • ①、启动报错
        • ②、创建运行 Elasticsearch 的用户,启动成功,但无法访问
        • ③、停止Elasticsearch,修改配置文件重新启动
        • ④、JDK 问题
  • 二、Windows 安装
    • 1、下载安装包
    • 2、启动 Elasticsearch
      • ⑴、正常启动流程
      • ⑵、启动过程遇到的问题
        • ①、同Linux 默认开启安全认证,启动后无法直接访问


前言

上一篇简单了解了一下 Elasticsearch 的发展史,特性和使用场景,为了方便接下来的数据测试,本篇内容先开始安装 Elasticsearch。

官网下载


一、Linux 安装

1、下载安装包

⑴、选择需要的安装包

进入 官网 选择自己需要版本,我这里选择 Linux x86_64

登录服务器查看系 Linux 内核版本:

a[root@VM-0-12-centos ~]# arch
x86_64
[root@VM-0-12-centos ~]# uname -a
Linux VM-0-12-centos 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

⑵、下载解压到安装目录

进入 /usr/local/ 目录,这个目录是我的安装目录,根据自己的习惯选择,下载安装包并解压:

[root@VM-0-12-centos ~]# cd /usr/local/
[root@VM-0-12-centos local]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.6.1-linux-x86_64.tar.gz
--2023-02-14 09:45:52--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.6.1-linux-x86_64.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 34.120.127.130, 2600:1901:0:1d7::
Connecting to artifacts.elastic.co (artifacts.elastic.co)|34.120.127.130|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 581763080 (555M) [application/x-gzip]
Saving to: ‘elasticsearch-8.6.1-linux-x86_64.tar.gz’

100%[=====================================================================>] 581,763,080 12.2MB/s   in 46s    

2023-02-14 09:46:38 (12.2 MB/s) - ‘elasticsearch-8.6.1-linux-x86_64.tar.gz’ saved [581763080/581763080]

[root@VM-0-12-centos local]# tar -zvxf elasticsearch-8.6.1-linux-x86_64.tar.gz 
[root@VM-0-12-centos local]# rm -f elasticsearch-8.6.1-linux-x86_64.tar.gz 
[root@VM-0-12-centos local]# ll -a
total 80
drwxr-xr-x. 20 root  root  4096 Feb 14 14:11 .
drwxr-xr-x. 13 root  root  4096 Aug  8  2018 ..
drwxr-xr-x.  2 root  root  4096 Dec 21 16:33 bin
drwxr-xr-x   9 root  root  4096 Jan 25 05:47 elasticsearch-8.6.1
drwxr-xr-x.  2 root  root  4096 Apr 11  2018 etc
drwxr-xr-x   6 root  root  4096 Dec 21 16:21 freetype
drwxr-xr-x.  2 root  root  4096 Apr 11  2018 games
drwxr-xr-x.  3 root  root  4096 Dec 21 16:23 include
drwxr-xr-x.  4 root  root  4096 Dec 21 16:23 lib
drwxr-xr-x.  2 root  root  4096 Apr 11  2018 lib64
drwxr-xr-x.  2 root  root  4096 Apr 11  2018 libexec
drwxr-xr-x   3 root  root  4096 Dec 21 16:20 man
drwxr-xr-x  10 mysql mysql 4096 Dec 21 16:22 mysql
drwxr-xr-x  11 root  root  4096 Dec 22 10:40 mysql-master-slave
drwxr-xr-x  11 root  root  4096 Dec 21 16:37 nginx
drwxr-xr-x  10 root  root  4096 Dec 21 16:33 php
drwxr-xr-x  17 root  root  4096 Dec 21 16:07 qcloud
drwxr-xr-x.  2 root  root  4096 Apr 11  2018 sbin
drwxr-xr-x.  8 root  root  4096 Dec 21 16:20 share
drwxr-xr-x.  2 root  root  4096 Apr 11  2018 src
[root@VM-0-12-centos local]# 

2、查看解压后目录结构

[root@VM-0-12-centos local]# cd elasticsearch-8.6.1/
[root@VM-0-12-centos elasticsearch-8.6.1]# ll -X
total 2224
drwxr-xr-x  2 root root    4096 Jan 25 05:47 bin
drwxr-xr-x  3 root root    4096 Feb 14 14:06 config
drwxr-xr-x  8 root root    4096 Jan 25 05:47 jdk
drwxr-xr-x  5 root root    4096 Jan 25 05:47 lib
drwxr-xr-x  2 root root    4096 Jan 25 05:43 logs
drwxr-xr-x 69 root root    4096 Jan 25 05:47 modules
drwxr-xr-x  2 root root    4096 Jan 25 05:43 plugins
-rw-r--r--  1 root root    8106 Jan 25 05:34 README.asciidoc
-rw-r--r--  1 root root    3860 Jan 25 05:34 LICENSE.txt
-rw-r--r--  1 root root 2235851 Jan 25 05:43 NOTICE.txt

以下为 Elasticsearch 目录及主要配置文件介绍:

目录|文件描述
bin/二进制脚本包含启动节点的elasticsearch
    |-- elasticsearchelasticsearch的启动命令,Linux下加”-d”参数以服务的形式后台运行。
    |-- …
config/配置文件目录(elasticsearch、log、jvm、role、user)
    |-- elasticsearch.yml配置文件中可进行端口、是否允许外部访问、端口等的设置。
    |-- jvm.optionsjvm 配置文件
    |-- log4j2.properties日志配置文件
    |-- …
data/在节点上申请的每个index/shard的数据文件的位置,可容纳多个位置
jdk/jdk包(7.0版本以后自带jdk环境,如果已经配置了jdk,会优先使用外部 jdk 环境)
lib/引用的相关类库的存放目录,elasticsearch.jar本身也放于该目录
logs/日志文件位置
modules/功能模块的存放目录,如aggs、reindex、geoip、xpack、eval。。。
plugins/插件文件位置。每个插件将包含在一个子目录中
README.asciidocreadme文档
LICENSE.txt证书
NOTICE.txt通知

注意事项:

  • es依赖jdk环境,现在7.0以后的es压缩包中自带有jdk。
  • 若已提前安装了jdk环境,则es启动时,会优先找linux中的jdk。若此时jdk的版本不一致,就会造成jdk不能正常运行。
  • 所以,若Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错。

3、启动 Elasticsearch

⑴、正常启动流程

  • 1、创建用户 elastic,专门用于管理 Elasticsearch。
    [root@VM-0-12-centos elasticsearch-8.6.1]# useradd elastic
    [root@VM-0-12-centos elasticsearch-8.6.1]# chown -R elastic:elastic /usr/local/elasticsearch-8.6.1/
    
  • 2、修改配置文件 elasticsearch.yml,这里为了验证是否安装成功,关闭安全认证:xpack.security.enabledxpack.security.http.ssl: enabled 都改为 false,否则无法直接通过浏览器访问 9200端口,后正式应用的时候在启用。
    # Enable security features
    xpack.security.enabled: false
    
    # Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
    xpack.security.http.ssl:
     	enabled: false
    	keystore.path: certs/http.p12
    
  • 3、切换到 elastic 用户,后台启动 Elasticsearch,浏览器访问 9200端口:http://你的IP:9200/;Linux 记得在安全组配置9200端口允许访问。
    [root@VM-0-12-centos elasticsearch-8.6.1]# su elastic
    [elastic@VM-0-12-centos elasticsearch-8.6.1]$ ./bin/elasticsearch -d
    

⑵、启动过程遇到的问题

①、启动报错

运行 bin/ 目录下的 elasticsearch 脚本,启动 elasticsearch:

[root@VM-0-12-centos elasticsearch-8.6.1]# ./bin/elasticsearch
[2023-02-14T17:44:22,531][ERROR][o.e.b.Elasticsearch      ] [VM-0-12-centos] fatal exception while booting Elasticsearchjava.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.server@8.6.1/org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:260)
        at org.elasticsearch.server@8.6.1/org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166)
        at org.elasticsearch.server@8.6.1/org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:66)

See logs for more details.

ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/elasticsearch-8.6.1/logs/elasticsearch.log

ERROR: Elasticsearch exited unexpectedly
[root@VM-0-12-centos elasticsearch-8.6.1]# 

报错了,提示 can not run elasticsearch as root,不能使用root用户启动会报错。

②、创建运行 Elasticsearch 的用户,启动成功,但无法访问

[root@VM-0-12-centos elasticsearch-8.6.1]# useradd elastic
[root@VM-0-12-centos elasticsearch-8.6.1]# chown -R elastic:elastic /usr/local/elasticsearch-8.6.1/
[root@VM-0-12-centos elasticsearch-8.6.1]# su elastic
[elastic@VM-0-12-centos elasticsearch-8.6.1]$ ./bin/elasticsearch

启动成功,这时候我们试着访问你的 9200端口 :http://你的IP:9200/ ,失败。

并且启动台那边也报错了 http client did not trust this server's certificate,如下:

[2023-02-14T18:04:06,931][WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [VM-0-12-centos] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/172.17.0.12:9200, remoteAddress=/218.81.82.139:2348}
[2023-02-14T18:06:25,213][WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [VM-0-12-centos] http client did not trust this server's certificate, closing connection Netty4HttpChannel{localAddress=/172.17.0.12:9200, remoteAddress=/218.81.82.139:2349}
[2023-02-14T18:06:25,214][WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [VM-0-12-centos] http client did not trust this server's certificate, closing connection Netty4HttpChannel{localAddress=/172.17.0.12:9200, remoteAddress=/218.81.82.139:2350}

原因是因为 Elasticsearch 默认开启了安全认证,虽然启动台启动成功,但访问 9200 端口失败。

解决办法:找到config/目录下面的elasticsearch.yml配置文件,把安全认证开关从原先的true都改成false,实现免密登录访问即可,修改这两处都为false后,重新启动:

③、停止Elasticsearch,修改配置文件重新启动

新开一个SSH连接,停止Elasticsearch:

[root@VM-0-12-centos ~]# ps -ef | grep elastic
root     26132 24103  0 18:23 pts/4    00:00:00 su elastic
elastic  26133 26132  0 18:23 pts/4    00:00:00 bash
elastic  26178 26133  2 18:23 pts/4    00:00:02 /usr/local/elasticsearch-8.6.1/jdk/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=./bin/elasticsearch -Dcli.libs=lib/tools/server-cli -Des.path.home=/usr/local/elasticsearch-8.6.1 -Des.path.conf=/usr/local/elasticsearch-8.6.1/config -Des.distribution.type=tar -cp /usr/local/elasticsearch-8.6.1/lib/ *:/usr/local/elasticsearch-8.6.1/lib/cli-launcher/ * org.elasticsearch.launcher.CliToolLauncher
elastic  26246 26178 31 18:23 pts/4    00:00:31 /usr/local/elasticsearch-8.6.1/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -Djava.security.manager=allow -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-2471405775610397709 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Xms999m -Xmx999m -XX:MaxDirectMemorySize=524288000 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.distribution.type=tar --module-path /usr/local/elasticsearch-8.6.1/lib --add-modules=jdk.net -m org.elasticsearch.server/org.elasticsearch.bootstrap.Elasticsearch
elastic  26275 26246  0 18:23 pts/4    00:00:00 /usr/local/elasticsearch-8.6.1/modules/x-pack-ml/platform/linux-x86_64/bin/controller
root     26681 26605  0 18:24 pts/5    00:00:00 grep --color=auto elastic
[root@VM-0-12-centos ~]# kill -9 26133
[root@VM-0-12-centos ~]# kill -9 26178


修改配置文件 elasticsearch.yml,把这两处改为 false

# Enable security features
xpack.security.enabled: false

xpack.security.enrollment.enabled: true

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

重新启动 Elasticsearch,访问 9200 端口成功。

或者curl 访问:

[root@VM-0-12-centos ~]# curl localhost:9200/
{
  "name" : "VM-0-12-centos",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "3e6bNn6dS_G7bEfl7YhXcA",
  "version" : {
    "number" : "8.6.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "180c9830da956993e59e2cd70eb32b5e383ea42c",
    "build_date" : "2023-01-24T21:35:11.506992272Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.2",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}
[root@VM-0-12-centos ~]# 

④、JDK 问题

这里安装了一下 JDK,但是 Elasticsearch8.6 仍会自动选择自己内置的JDK。如果其他版本优先选择系统环境变量中的JDK可以参考这篇博客 Elasticsearch JDK选择。

[elastic@VM-0-12-centos elasticsearch-8.6.1]$ ps -ef | grep elastic
root     20695 17356  0 13:40 pts/3    00:00:00 su elastic
elastic  20697 20695  0 13:40 pts/3    00:00:00 bash
elastic  21252     1 93 13:41 pts/3    00:00:30 /usr/local/elasticsearch-8.6.1/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -Djava.security.manager=allow -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-16881426132015000451 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Xms999m -Xmx999m -XX:MaxDirectMemorySize=524288000 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.distribution.type=tar --module-path /usr/local/elasticsearch-8.6.1/lib --add-modules=jdk.net -m org.elasticsearch.server/org.elasticsearch.bootstrap.Elasticsearch
elastic  21280 21252  0 13:41 pts/3    00:00:00 /usr/local/elasticsearch-8.6.1/modules/x-pack-ml/platform/linux-x86_64/bin/controller
elastic  21434 20697  0 13:42 pts/3    00:00:00 ps -ef
elastic  21435 20697  0 13:42 pts/3    00:00:00 grep --color=auto elastic
[elastic@VM-0-12-centos elasticsearch-8.6.1]$ java -version
java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)
[elastic@VM-0-12-centos elasticsearch-8.6.1]$ 

二、Windows 安装

1、下载安装包


下载后解压:

2、启动 Elasticsearch

⑴、正常启动流程

由于 Elasticsearch 默认开启安全认证所以无法直接通过端口访问成功,先修改 config 目录下的配置文件elasticsearch.yml,把这两处改为 false。:

进入 bin 目录下,双击 elasticsearch.bat 文件启动 ES,访问 http://localhost:9200/:

⑵、启动过程遇到的问题

①、同Linux 默认开启安全认证,启动后无法直接访问

和Linux 一样启动后无法访问,进入logs/ 查看 elasticsearch.log 日志文件信息看到提示 received plaintext http traffic on an https channel,所以找到原因了:同上,默认开启了安全认证,不允许直接访问。

解决办法:修改配置文件 elasticsearch.yml,把这两处改为 false

再次启动,访问9200端口成功:

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

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

相关文章

【pytorch框架】对模型知识的基本了解

文章目录TensorBoard的使用1、TensorBoard启动:2、使用TensorBoard查看一张图片3、transforms的使用pytorch框架基础知识1 nn.module的使用2 nn.conv2d的使用3、池化(MaxPool2d)4 非线性激活5 线性层6 Sequential的使用7 损失函数与反向传播8 优化器9 对现有网络的使…

Flink X Hologres 构建企业级 Streaming Warehouse

摘要:本文整理自阿里云资深技术专家,阿里云 Hologres 负责人姜伟华(果贝),在 FFA 实时湖仓专场的分享。本篇内容主要分为四个部分:实时数仓分层的技术需求阿里云一站式实时数仓 Hologres 介绍Flink x Holog…

30个题型+代码(冲刺2023蓝桥杯)

愿意的可以跟我一起刷,每个类型做1~5题 ,4月前还可以回来系统复习 2月13日 ~ 3月28日,一共32天 一个月时间,0基础省三 --> 省二;基础好点的,省二 --> 省一 目录 🌼前言 &#x1f33c…

1.1配置单区域OSPF

实验1:配置单区域OSPF[1] 1.实验目的 实现单区域OSPF的配置描述OSPF在多路访问网络中邻居关系建立的过程2.实验拓扑 单区域的OSPF实验拓扑如图1-2所示。 图1-2 配置单区域OSPF 3.实验步骤 IP地址的配置[2] R1的配置

Framebuffer驱动程序框架

Framebuffer驱动程序框架 文章目录Framebuffer驱动程序框架一、 怎么编写字符设备驱动程序二、 Framebuffer驱动程序框架三、 怎么编写Framebuffer驱动程序致谢一、 怎么编写字符设备驱动程序 驱动主设备号构造file_operations结构体,填充open/read/write等成员函数…

获取本机的IP地址,看似简单的获取,实则蕴含非常多的操作

这篇文章讲述了PowerJob获取本地IP离奇曲折的经过,以及开放了诸多的可配置参数,打开了我新世界的大窗户。求个关注,求个点赞,求一个评论。 获取地址的操作,本来不应该作为什么重点,但是因为一点小小的意外&…

再创荣誉 | Softing工业荣获CAIMRS 2023 数字化创新奖

在刚刚结束的中国工控-第二十一届“自动化及数字化”年度评选(CAIMRS 2023)中,Softing凭借edgeAggregator产品荣获“数字化创新奖”! 经层层筛选,Softing edgeAggregator边缘聚合服务器从中脱颖而出,摘得C…

隐马尔科夫模型基础

一、定义是一种生成模型,是隐藏的马尔科夫链随机生成不可观测的状态序列,再由各个状态生成观测序列的过程二、符号含义其中:Q是所有可能的状态集合V是所有的可能的观测集合N是可能的状态数,M是可能的观测数其中:I是长度…

想搞钱,先培养商业思维!

昨天谈借助 ChatGPT 挣点房贷钱的时候,看评论区大家留言的时候,发现很多人不知道这个东西可以赚钱,或者说知道这个东西且也做了功课,无奈太忙最后也没搞到钱。可以看到,大家的问题,归根于自己有没有商业思维…

小白系列Vite-Vue3-TypeScript:010-封装svg

上一篇我们介绍了ViteVue3TypeScript项目中mockjs的安装和配置i。本篇我们来介绍封装SVG图标组件。svg特征Preloading所有图标都是在项目运行时生成的,只需要操作一次dom即可。高性能内置缓存,仅在文件被修改时才会重新生成。安装插件vite-plugin-svg-ic…

QHash源码解读

QT版本 v5.12.10 元素 // 重点说明QHashData的函数,QHashData是QHash的基础 struct QHashData {struct Node {Node *next;uint h;};Node *fakeNext; // 永为nullNode **buckets; // Node *数组QtPrivate::RefCount ref;int size; // node个数int nodeSize; /…

koa2结合MySQL实现简单的考试系统

项目需求:1. 数据库采用mysql实现, 后台服务Koa2框架, 通过postman调试所有接口2. 接口功能&#xff1a;(1)实现对科目表的增删改查(2)实现对试题表的增删改(3)实现对试题表的查询操作&#xff0c;要求&#xff1a;<1>显示科目名称和类型名称 <2> 可以按照科目名称…

第一章 - 对数据库和SQL的简单了解

第一章 - 对数据库和SQL的简单了解1 了解数据库&#xff1a;2 什么是数据库&#xff1a;3 什么是SQL&#xff1a;4 SQL的优点&#xff1a;5 数据库的一些常用术语&#xff1a;6 什么是MySQL&#xff1a;1 了解数据库&#xff1a; 其实你一直都在使用数据库&#xff0c;只是你并…

【观察】从消费级SSD AM6A1,看忆联的优势与胜势

毫无疑问&#xff0c;目前SSD&#xff08;固态硬盘&#xff09;已取代HDD&#xff08;机械硬盘&#xff09;成为电脑中常见的存储设备&#xff0c;特别是在技术创新的持续推动下&#xff0c;如今SSD的速度和效率都在不断地提高&#xff0c;从SATA2 3GB发展到SATA3 6GB&#xff…

四、常用样式讲解二

文章目录一、常用样式讲解二1.1 元素隐藏1.2 二级菜单1.3 相对定位和绝对定位1.4 定位的特殊情况1.5 表格1.6 表格的css属性1.7 表格中新增的标签一、常用样式讲解二 1.1 元素隐藏 如何让一个元素隐藏 1、不定义颜色 占用空间 2、display: none 不占用空间 3、visibility: hi…

在Linux和Windows上安装Nacos-2.1.1

记录&#xff1a;377场景&#xff1a;在CentOS 7.9操作系统安装Nacos-2.1.1。在Windows操作系统上安装Nacos-2.1.1。Nacos&#xff1a;Nacos: Dynamic Naming and Configuration Service。Nacos提供动态配置服务、服务发现及管理、动态DNS服务功能。版本&#xff1a;JDK 1.8 Na…

dva + antd 报错

学习 dva 》 按照dva指南学习、安装 dva-cli、引入antd的报错问题解决 1、在执行命令 npm install antd babel-plugin-import --save时报错 报错类似“A complete log of this run can be fund in : … " 解决&#xff1a;换成cnpm 或者 yarn 进行安装 举例在安装history的…

Java常见问题总结三

一、ArrayList 和 LinkedList的区别 1. 底层数据结构不同。ArrayList底层是基于数组实现的&#xff0c;LinkedList底层是基于链表文现的 2. 由于底层数缺结构不同&#xff0c;他们所适电的场景也不同&#xff0c;Araylist史适合随机查战&#xff0c;LinkedList史适合期余和添…

自动化测试工程师的发展前景怎么样?

根据各大网络招聘平台的数据显示&#xff0c;越来越多的企业在招聘测试工程师的时候&#xff0c;都开始重视自动化测试这一重要技能。早在四年前&#xff0c;自动化测试的人才需求和薪资待遇就开始一路上涨。如果你问&#xff1a;自动化测试工程师的发展前景怎么样&#xff1f;…

基于redis实现分布式锁

前言 我们的系统都是分布式部署的&#xff0c;日常开发中&#xff0c;秒杀下单、抢购商品等等业务场景&#xff0c;为了防⽌库存超卖&#xff0c;都需要用到分布式锁。 分布式锁其实就是&#xff0c;控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或…