m1下利用dockerdesktop安装ELK

news2024/12/23 21:01:41

一、背景:公司有一个需求,就是将txt中的数据加载到es中,之前没用过es,想着先在本地安装一个,然后再做测试。

二、安装docker desktop

打开docker的官网,下载苹果芯片的docker
网址:https://www.docker.com/
在这里插入图片描述
然后就是为了安装ELK的准备工作了
首先,把内存调大一些,要不然后续会有内存不足的问题
在这里插入图片描述
为了以后安装其他镜像文件也快一些,一般我们都用国内的镜像源,镜像源有很多,我用的是阿里云的镜像源,但是这个相对来说麻烦一些,需要先申请阿里云的镜像加速器
阿里云的网址:https://www.aliyun.com/
下面的是怎么找到自己申请的阿里云的镜像加速器
在这里插入图片描述

下面介绍一下docker desktop配置阿里云的镜像加速器
选择docker engine
在这里插入图片描述

增加内容如下;
"registry-mirrors": [
"你的专属阿里云镜像加速器地址"
]

注意:删除“experimental": false, 后的内容,并添加在其后。在"registry-mirrors"的上一行的末尾需要添加一个英文状态下的逗号,否则会提示有语法错误。

看看修改前和修改后的配置文件
修改前:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  }
}

修改后:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
  "你的专属阿里云镜像加速器地址"
  ]
}

然后点击这个按钮,让配置文件修改生效
在这里插入图片描述
验证修改的配置文件是否生效?在终端下输入命令:docker info
显示出来你配置的阿里云镜像加速器地址则说明配置文件修改成功了

~/Downloads  docker info                                                                                   ✔  base Py  at 08:42:20 
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.10.4)
  compose: Docker Compose (Docker Inc., v2.17.2)
  dev: Docker Dev Environments (Docker Inc., v0.1.0)
  extension: Manages Docker extensions (Docker Inc., v0.2.19)
  init: Creates Docker-related starter files for your project (Docker Inc., v0.1.0-beta.2)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.25.0)
  scout: Command line tool for Docker Scout (Docker Inc., v0.9.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.24
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 2456e983eb9e37e47538f59ea18f2043c9a73640
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.15.49-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 6
 Total Memory: 23.45GiB
 Name: docker-desktop
 ID: 4K24:DB2B:6Y2C:UW6F:K62N:EXBN:K2GN:MRSB:DCQI:X457:JSNX:NWYE
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Registry Mirrors:
  你的专属阿里云镜像加速器地址
 Live Restore Enabled: false

docker常用命令汇总(没咋用过docker,以后慢慢更新)

命令命令说明
docker info
docker info
docker info
docker info
docker info
docker info
docker info
docker info

三、docker desktop安装elasticsearch

然后在这里搜索arm64v8/elasticsearch找自己想要安装的版本
在这里插入图片描述
然后就是选择一个版本进行下载
在这里插入图片描述
选择好版本以后,就可以往下拉镜像文件了
下面的两种方式都可以
一、直接点击PULL
在这里插入图片描述
二、在终端下执行

docker pull arm64v8/elasticsearch:7.17.6

然后在终端下执行 docker images 显示如下;
docker images是查询镜像的意思
在这里插入图片描述
然后按照官网的说法,先创建一个网络
创建网络的目的就是利用这个网络实现es、kibanna、logstash容器之间的通信,也可以这么理解,相当于一个局域网,内网的开发环境(😄,先这么理解吧)

docker network create somenetwork
执行完显示如下;
571029f86e441b2e5f2d0b682345489943c0c696b2a44c6572b6e6a3f260c287

在终端下执行运行elasticsearch的命令

 docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.6
 执行完显示如下;
 Unable to find image 'elasticsearch:7.17.6' locally
7.17.6: Pulling from library/elasticsearch
Digest: sha256:6c128de5d01c0c130a806022d6bd99b3e4c27a9af5bfc33b6b81861ae117d028
Status: Downloaded newer image for elasticsearch:7.17.6
85cb69aec5e49f0156f461a13b65209cc8a58ccaf61e03fcdaf8526c211de829

执行参数说明

参数参数说明
-d后台运行容器
–name指定容器别名
–net连接指定网络
-p(小写)映射端口号,主机端口:容器端口
-P(大写)随机为容器指定端口号
-e指定启动容器时的环境变量
-v进行容器的挂载
–privileged=true使容器有权限挂载目录

可以查看elasticsearch的状态,命令:docker ps

 ~  docker ps                                                                                     ✔  took 21s  base Py  at 10:54:11 
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS                                            NAMES
85cb69aec5e4   elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   17 seconds ago   Up 17 seconds   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

最后去浏览器中输入:地址如下,则说明elasticsearch安装成功了
在这里插入图片描述
也可以这么验证:在终端下输入,curl http://localhost:9200
在这里插入图片描述
上面的这种方法安装倒是简单,但是数据容易丢失,所以一般我们进行安装时,都采用挂载的方式进行,将容器中的配置文件和数据目录都挂载到宿主机上
首先查看在docker容器内的配置文件在什么位置

docker exec -it elasticsearch /bin/bash //进入容器内部,看左面的用户就可以看出来了,原来是root,现在是一堆字符串了

pwd:可以看到目前所在的目录
进入到config目录,就能看到容器内的配置文件位置了

在这里插入图片描述
该配置文件现在写的很简单
在这里插入图片描述
在本地新建es配置文件和数据文件要放的目录

我要创建挂载数据的位置
/Users/wuzhanxi/mac_soft/system_soft/code_environment  //我本地的目录如下

在上面的目录下新建
es_out_disk/elasticsearch     //配置文件放的位置
es_out_disk/elasticsearch/data   //数据存放的位置

将容器内

# 将容器内的配置文件拷贝到 /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/elasticsearch中

#执行下面的命令
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/elasticsearch/

# 修改文件权限
chmod 777 /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/elasticsearch/elasticsearch.yml  //外部的配置文件需要有写的权限,我就配置成777了

# 在elasticsearch 目录下再创建data目录(存放数据的目录),同时修改权限
chmod -R 777 /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/elasticsearch/data

注意:这里要修改文件的权限为可写,否则,进行挂载后,在外部修改配置文件,容器内部的配置文件不会更改。同时,创建 data 目录进行挂载。

运行容器如下

# 先删除旧的容器
docker rm -f elasticsearch (删除这里写上容器的ID就可以)

# 运行新的容器
docker run -d --name elasticsearch \
--net somenetwork \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
--privileged=true \
-v $PWD/es_out_disk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v $PWD/es_out_disk/elasticsearch/data/:/usr/share/elasticsearch/data \
elasticsearch:7.17.6

在这里插入图片描述
注意:$PWD,在不同路径下,你的写法是不一样的,直接去掉也可以,写成全路径

下面演示一下,修改外部的配置文件,都有哪些地方会有变化
在这里插入图片描述
现在的配置文件只有这两行

cluster.name: "docker-cluster"
network.host: 0.0.0.0

我修改cluster.name为wzx-es
然后我重新启动这个容器,看看容器内部的配置文件是否发生了变化

docker exec -it elasticsearch /bin/bash  //进入容器

发现已经变化了
root@cceb1eae3509:/usr/share/elasticsearch/config# cat elasticsearch.yml
cluster.name: "wzx-es"
network.host: 0.0.0.0

然后去浏览器端访问,发现集群的名称也变化了,说明配置容器内部和外部的映射没有问题了
在这里插入图片描述

四、docker desktop安装kibana

安装方式跟es差不多
启动命令:在终端下执行

docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.17.6
执行完显示如下;
Unable to find image 'kibana:7.17.6' locally
7.17.6: Pulling from library/kibana
Digest: sha256:ae5a501355903443b6cc7ff4a3af2dd76ba73f986d0612014b8370cd04bb6da8
Status: Downloaded newer image for kibana:7.17.6
67f5096b644fd38f8bcd9a659851e8ed1e2b895a9b87ed014ff4d5e99334c169

然后再验证下是否启动成功,docker ps,显示如下,成功启动起来了

 ~  docker ps                                                                                     ✔  took 39s  base Py  at 11:15:34 
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS                                            NAMES
67f5096b644f   kibana:7.17.6          "/bin/tini -- /usr/l…"   21 seconds ago   Up 20 seconds   0.0.0.0:5601->5601/tcp                           kibana
85cb69aec5e4   elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   21 minutes ago   Up 21 minutes   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

在浏览器端输入:localhost:5601,显示如下,则表示kibana安装成功了
在这里插入图片描述
现在的界面显示是纯英文的,下面我们要做一个配置的修改,让其显示成中文的
首先拷贝kibana的配置文件到挂载的目录下,然后对其进行修改

复制容器中的配置文件到挂载的目录下
docker cp kibana:/usr/share/kibana/config/kibana.yml /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/kibana/

给文件赋权限
chmod 777 kibana/kibana.yml

然后编辑这个配置文件,添加这行配置到该文件中
i18n.locale: zh-CN

然后将原来的容器删除,重新启动容器

#删除原来未挂载的容器
docker rm -f kibana

# 启动容器并挂载
docker run -d --name kibana \
-p 5601:5601 \
-v /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--net somenetwork \
kibana:7.17.6

在这里插入图片描述

注意:如果使用挂载配置文件的方式启动的话,elasticsearch.hosts 这需填写 http://ip:9200,而不能使用容器名了,否则后面 kibana 连接 es 会失败。这个IP地址最好是你本机的内网IP地址
然后通过浏览器访问,就支持中文了
在这里插入图片描述

五、docker desktop安装logstash

启动命令
docker run -d --name logstash --net somenetwork -p 4560:4560 logstash:7.17.6
执行完显示如下;
Unable to find image 'logstash:7.17.6' locally
7.17.6: Pulling from library/logstash
Digest: sha256:90a4cca2b81abef53a5ae17275d71dd928ed13de14c8ae00e3f0686baeb28e05
Status: Downloaded newer image for logstash:7.17.6
b986b6152aea825e02dd4ead1143c6d091a4dd47da87a1e1fb5a64b28c375edb

验证logstash是否启动成功,查看logstash的进程,命令:docker ps

 ~  docker ps                                                                                     ✔  took 21s  base Py  at 11:31:40 
CONTAINER ID   IMAGE                  COMMAND                  CREATED              STATUS              PORTS                                            NAMES
b986b6152aea   logstash:7.17.6        "/usr/local/bin/dock…"   About a minute ago   Up About a minute   5044/tcp, 0.0.0.0:4560->4560/tcp, 9600/tcp       logstash
67f5096b644f   kibana:7.17.6          "/bin/tini -- /usr/l…"   17 minutes ago       Up 17 minutes       0.0.0.0:5601->5601/tcp                           kibana
85cb69aec5e4   elasticsearch:7.17.6   "/bin/tini -- /usr/l…"   39 minutes ago       Up 39 minutes       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

下面以挂载的方式启动
首先还是在本地新建logstash的相应目录

/Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash

复制docker容器内的文件到挂载的路径下

docker cp logstash:/usr/share/logstash/config /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/
docker cp logstash:/usr/share/logstash/data /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/
docker cp logstash:/usr/share/logstash/pipeline /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/

给文件夹赋权限

chmod -R 777  /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/*

修改 logstash/config 下的 logstash.yml 文件,主要修改 es 的地址:

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.16.27.1:9200" ]

修改 logstash/pipeline 下的 logstash.conf 文件:

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    port => 5044
    codec => json_lines    # 数据格式
  }
}

output {
  elasticsearch {
      hosts  => ["http://172.16.27.1:9200"]   # ElasticSearch 的地址和端口
      index  => "elk"         # 指定索引名
      codec  => "json"
  }
  stdout {
    codec => rubydebug
  }
}

修改完成后,删除之前的镜像文件,并且重新启动

#注意先删除之前的容器
docker rm -f logstash


# 启动容器并挂载
docker run -d --name logstash --net somenetwork \
--privileged=true \
-p 5044:5044 -p 9600:9600 \
-v /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/data/:/usr/share/logstash/data \
-v /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/config/:/usr/share/logstash/config \
-v /Users/wuzhanxi/mac_soft/system_soft/code_environment/es_out_disk/logstash/pipeline/:/usr/share/logstash/pipeline \
logstash:7.17.6

然后可以查看启动日志,看看程序是否有问题

查看命令
docker logs logstash

今天测试的时候,我总是先访问浏览器,其实最省事儿,最直接的还是查看各个组件的启动日志,日志中没有特别明显错误,然后再去浏览器上,这样其实更省时省力(好习惯需要慢慢养成吧)

安装过程中遇到的问题及记录

stacktrace": ["org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: setting [cluster.initial_master_nodes] is not allowed when [discovery.type] is set to [single-node]",
"at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[elasticsearch-cli-7.17.6.jar:7.17.6]",
"at org.elasticsearch.cli.Command.main(Command.java:77) ~[elasticsearch-cli-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-7.17.6.jar:7.17.6]",
"Caused by: java.lang.IllegalArgumentException: setting [cluster.initial_master_nodes] is not allowed when [discovery.type] is set to [single-node]",
"at org.elasticsearch.cluster.coordination.ClusterBootstrapService.<init>(ClusterBootstrapService.java:89) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.cluster.coordination.Coordinator.<init>(Coordinator.java:253) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.discovery.DiscoveryModule.<init>(DiscoveryModule.java:189) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.node.Node.<init>(Node.java:885) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.node.Node.<init>(Node.java:309) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:234) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:234) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.17.6.jar:7.17.6]",
"at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.6.jar:7.17.6]",
"... 6 more"] }
uncaught exception in thread [main]
java.lang.IllegalArgumentException: setting [cluster.initial_master_nodes] is not allowed when [discovery.type] is set to [single-node]
        at org.elasticsearch.cluster.coordination.ClusterBootstrapService.<init>(ClusterBootstrapService.java:89)
        at org.elasticsearch.cluster.coordination.Coordinator.<init>(Coordinator.java:253)
        at org.elasticsearch.discovery.DiscoveryModule.<init>(DiscoveryModule.java:189)
        at org.elasticsearch.node.Node.<init>(Node.java:885)
        at org.elasticsearch.node.Node.<init>(Node.java:309)
        at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:234)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:234)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)
For complete error details, refer to the log at /usr/share/elasticsearch/logs/wzx-es.log

Kibana报错:

Unable to retrieve version information from Elasticsearch nodes

这个报错的原因是kibana配置外部挂载的方式启动,所以这个IP地址这里需要是本机的内网IP地址才行,Elasticsearch中的配置文件不需要进行修改

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

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

相关文章

当DevOps遇见AI,智能运维的黄金时代开启

文章目录 1. 当DevOps遇见AI&#xff0c;智能运维的黄金时代2. 什么是DevOpts&#xff1f;改变开发格局&#xff1a;测开、运开必然趋势3. 什么是Docker容器化&#xff0c;它会替代掉VM虚拟机吗&#xff1f;4. 运维的终点是开发5. 实际项目的部署案例6. 誉天程序员课程 1. 当De…

顶象推出应用隐私合规检测服务

为帮助开发者更高效地进行App隐私合规检测&#xff0c;顶象推出应用隐私合规检测服务&#xff0c;快速发现App可能存在的各类隐私安全漏洞&#xff0c;并提供详细的检测报告&#xff0c;给出专业的合规整改建议。该服务可应用于上架前和合规检测&#xff0c;通过个人信息保护分…

map<int,int>和map<int,int>::iterator

map< int,int >和map< int,int >::iterator 一、map<int,int>、map<string, string>的含义二、map<int,int>::iterator的作用三、map<int,XXX>的自动升序特点 一、map<int,int>、map<string, string>的含义 map容器是CSTL的一…

学成在线笔记+踩坑(7)——绑定媒资

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 8 绑定媒资 8.1 需求分析 8.1.1 业务流程 8.1.2 数据模型 8.2 接口定义 8.2.1 抽取模型类 8.2.2 定义接口层 8.3 接口开发 8.3.1…

23.4.21总结

正则表达式 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串&#xff0c;通常被用来检索、替换那些符合某个模式&#xff08;规则&#xff09;的文本。 正则表达式是一种对字符串操作的一种逻辑公式&#xff0c;就是用事先定义好的一些特定字符、及这些…

【Java 数据结构】十大排序 (动图解析)

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

微搭低代码学习之销售员销售目标采集系统开发

四月二十三&#xff0c;春意渐浓&#xff0c; 草木抽出新枝&#xff0c;鸟儿唱响欢融。 花开满园&#xff0c;香气袭人&#xff0c; 阳光明媚&#xff0c;人们心情舒畅。 愿这美好的日子&#xff0c;伴随你一生。 ——使用Notion AI提问“写一首关于4月23日的诗” 文章目录 前言…

【深度学习入门系列】 pytorch实现多层感知机(MLP)(内含分类、回归任务实例)

文章目录 0. BP和MLP1 分类1.0 数据集1.1 网络架构1.2 代码1.3 结果 2 回归2.0 数据集2.1 网络架构2.2 代码2.3 结果 3 代码&#xff08;可直接食用&#xff09; 众所周知&#xff0c;sklearn提供了MLP函数。个人认为这个东西虽然蛮好用的——有的时候比你自己写的效果都好&…

Linux应用程序开发:进程的一些事儿

目录 一、进程的简介1、什么是进程&#xff0c;进程的概念2、进程状态3、什么是进程号4、进程间的通信方法&#xff08;IPC&#xff09; 二、 fork()创建子进程三、父、 子进程间的文件共享1、实验12、实验2 四、使用execl函数执行新程序五、关于终端上对进程的一些指令操作六、…

AI绘图风格对照表/画风样稿详细研究记录及经验总结(分析Midjourney和Stable Diffusion风格提示词实际使用情况)不断更新中...

Midjourney和Stable Diffusion都可以通过输入文本生成出令人惊叹的AI图像。 Midjourney是一个收费的在线服务&#xff0c;通过discord对话的形式来生图&#xff0c;局限性较大&#xff0c;但由于后台官方模型做得好&#xff0c;因此出图效果非常完美&#xff1b; Stable Diffus…

3.Spring Security实现JWT token验证

目录 1. Spring Security详细介绍 2. Spring Security详细使用 3. Spring Security实现JWT token验证 4. JWT&#xff08;JSON Web Token&#xff0c;JSON令牌&#xff09; 5. Spring Security安全注解 Spring Security实现JWT token验证 Spring Security是Spring提供的一…

图数据库

1 前言 图数据结构&#xff0c;能够很自然地表征现实世界。比如用户、门店、骑手这些实体可以用图中的点来表示&#xff0c;用户到门店的消费行为、骑手给用户的送餐行为可以用图中的边来表示。使用图的方式对场景建模&#xff0c;便于描述复杂关系。在美团&#xff0c;也有比较…

超全实战操作详解合集——阿里云ECS服务器(CentOS 7.8 64位)安装rpm格式jdk、tomcat8、mysql8三件套

一、下载rpm格式的jdk 网上自行下载下载jdk&#xff0c;使用Xftp连接Linux主机&#xff0c;将jdk文件放入任意目录下&#xff08;为方便后续操作&#xff0c;重命名为1.rpm&#xff09; 二、安装jdk 进入存放jdk文件的目录&#xff0c;使用命令yum -y install 1.rpm 进行安装…

前端工具 Prettier 详细使用流程(兼容ESLint)

一、简介 中文文档&#xff0c;英文官网。 Prettier 是一个开箱即用的代码格式化程序。用来批量处理旧代码的统一&#xff0c;涉及引号、分号、换行、缩进等。支持目前大部分语言处理&#xff0c;包括 JavaScript、Flow、TypeScript、CSS、SCSS、Less、JSX、Vue、GraphQL、JSO…

【计算机视觉】华为天才少年谢凌曦:关于视觉识别领域发展的个人观点!

文章目录 一、前言二、CV的三大基本困难和对应研究方向三、以下简要分析各个研究方向3.1 方向1a&#xff1a;神经网络架构设计3.2 方向1b&#xff1a;视觉预训练3.3 方向2&#xff1a;模型微调和终身学习3.4 方向3&#xff1a;无限细粒度视觉识别任务 四、在上述方向之外五、结…

“踏浪”自动驾驶量产潮,商业化加速的知行科技奔赴IPO

今春过半&#xff0c;自动驾驶产业链扎堆上市的情况在延续&#xff0c;一位新的重量级选手加入了这场热潮。 4月4日&#xff0c;自动驾驶领域领先的解决方案提供商知行汽车科技(苏州)股份有限公司&#xff08;即“知行科技”&#xff09;&#xff0c;向港交所递交招股书&#…

全网多种方法解决error: failed to push some refs to ‘xxx‘

文章目录 1. 复现错误2. 分析错误3. 解决错误4. 解决该错误的其他方法 1. 复现错误 今天使用git status查看文件状态&#xff0c;发现有一个文件未提交&#xff0c;如下代码所示&#xff1a; D:\project\test>git status On branch master Your branch is up to date with …

【剑指offer】学习计划day1

目录 一. 前言 二. 用两个栈实现队列 a.题目 b.题解分析 c.AC代码 二. 包含min函数的栈 a.题目 b.题解分析 c.AC代码 一. 前言 本系列是针对Leetcode中剑指offer学习计划的记录与思路讲解。详情查看以下链接&#xff1a; 剑指offer-学习计划https://leetcode.cn/study-pla…

Java八大基本数据类型

Java八大基本数据类型 byteshortintlongfloatdoublebooleanchar byte byte数据类型是8位、有符号的&#xff0c;以二进制补码表示的整数 最小值是-128&#xff08;-2^7&#xff09;&#xff1b; 最大值是127&#xff08;2^7-1&#xff09;; 默认值是0&#xff1b; byte类型用在…

stm32读写内部Flash

stm32内部flash地址架构映射 因为我的stm32f407的内部flash是1M的所以块2不存在&#xff0c;但他的地址仍然存在&#xff0c;只是没有作用&#xff0c;这是stm32的整体框架。 主存储器 一般我们说 STM32 内部 FLASH 的时候&#xff0c;都是指这个主存储器区域&#xff0c;它…