Hadoop入门学习笔记——四、MapReduce的框架配置和YARN的部署

视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7
课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8

Hadoop入门学习笔记(汇总)

目录

  • 四、MapReduce的框架配置和YARN的部署
    • 4.1. 配置MapReduce和YARN
    • 4.2. YARN集群启停脚本
      • 4.2.1. 一键启停脚本
      • 4.2.2. 单独进程启停
    • 4.3. 提交MapReduce示例程序到YARN运行
      • 4.3.1. 提交wordcount(单词统计)示例程序
      • 4.3.2. 提交根据Monte Carlo蒙特卡罗算法求圆周率的示例程序

四、MapReduce的框架配置和YARN的部署

本次YARN的部署结构如下图所示:
在这里插入图片描述
当前,共有三台服务器(虚拟机)构成集群,集群规划如下所示:

主机部署的服务
node1ResourceManager、NodeManager、ProxyServer、JobHistoryServer
node2NodeManager
node3NodeManager

MapReduce是运行在YARN上的,所以MapReduce只需要配置,YARN需要部署并启动。

4.1. 配置MapReduce和YARN

1、在node1节点,修改mapred-env.sh文件:

# 进入hadoop配置文件目录
cd /export/server/hadoop-3.3.4/etc/hadoop/
# 打开mapred-env.sh文件
vim mapred-env.sh

打开后,在文件中加入以下内容:

# 设置JDK路径
export JAVA_HOME=/export/server/jdk
# 设置JobHistoryServer进程的内存为1G
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
# 设置日志级别为INFO
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

2、再修改同目录下的mapred-site.xml配置文件,在其configuration标签内增加以下内容:

  <property><name>mapreduce.framework.name</name><value>yarn</value><description></description></property><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value><description></description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value><description></description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/mr-history/tmp</value><description></description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/data/mr-history/done</value><description></description></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value></property>

其中,
mapreduce.framework.name 表示MapReduce的运行框架,这里设置为Yarn;
mapreduce.jobhistory.address 表示历史服务器通讯地址和端口号,这里为node1:10020;
mapreduce.jobhistory.webapp.address 表示历史服务器Web端地址和端口号,这里为node1:19888;
mapreduce.jobhistory.intermediate-done-dir 表示历史信息在HDFS的记录临时路径,这里是/data/mr-history/tmp;
mapreduce.jobhistory.done-dir 表示历史信息在HDFS的记录路径,这里是/data/mr-history/done;
yarn.app.mapreduce.am.env 表示MapReduce HOME的路径,这里设置为HADOOP_HOME相同路径;
mapreduce.map.env 表示Map HOME的路径,这里设置为HADOOP_HOME相同路径;
mapreduce.reduce.env 表示Reduce HOME的路径,这里设置为HADOOP_HOME相同路径;

至此,MapReduce的配置完成。

3、接下来,配置YARN。在node1节点,修改yarn-env.sh文件:

# 进入hadoop配置文件目录
cd /export/server/hadoop-3.3.4/etc/hadoop/
# 打开yarn-env.sh文件
vim yarn-env.sh

在文件中添加以下内容:

# 设置JDK路径的环境变量
export JAVA_HOME=/export/server/jdk
# 设置HADOOP_HOME的环境变量
export HADOOP_HOME=/export/server/hadoop
# 设置配置文件路径的环境变量
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 设置日志文件路径的环境变量
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

4、修改同目录下的yarn-site.xml配置文件,在其configuration节点中添加以下内容:

  <!-- Site specific YARN configuration properties --><property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value><description></description></property><property><name>yarn.web-proxy.address</name><value>node1:8089</value><description>proxy server hostname and port</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>Configuration to enable or disable log aggregation</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/tmp/logs</value><description>Configuration to enable or disable log aggregation</description></property><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>node1</value><description></description></property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value><description></description></property><property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value><description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value><description>Comma-separated list of paths on the local filesystem where logs are written.</description></property><property><name>yarn.nodemanager.log.retain-seconds</name><value>10800</value><description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>Shuffle service that needs to be set for Map Reduce applications.</description></property>

其中,核心配置如下:
yarn.resourcemanager.hostname 表示ResourceManager设置在哪个节点,这里是node1节点;
yarn.nodemanager.local-dirs 表示NodeManager中间数据Linux系统本地存储的路径;
yarn.nodemanager.log-dirs 表示NodeManager数据Linux系统日志本地存储的路径;
yarn.nodemanager.aux-services 表示为MapReduce程序开启Shuffle服务;
额外配置如下:
yarn.log.server.url 表示历史服务器的URL;
yarn.web-proxy.address 表示代理服务器的主机和端口号;
yarn.log-aggregation-enable 表示是否开启日志聚合;
yarn.nodemanager.remote-app-log-dir 表示程序日志在HDFS中的存放路径;
yarn.resourcemanager.scheduler.class 表示选择Yarn使用的调度器,这里选的是公平调度器;

5、完成上述配置后,需要将MapReduce和YARN的配置文件分发到node2和node3服务器相同位置中,使用hadoop用户身份执行以下命令

# 将mapred-env.sh、mapred-site.xml、yarn-env.sh、yarn-site.xml四个配置文件,复制到node2的相同路径下
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:`pwd`/
# 将mapred-env.sh、mapred-site.xml、yarn-env.sh、yarn-site.xml四个配置文件,复制到node3的相同路径下
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:`pwd`/

4.2. YARN集群启停脚本

在启动YARN集群前,需要确保HDFS集群已经启动。同样,启停YARN集群也必须使用hadoop用户身份。

4.2.1. 一键启停脚本

  1. $HADOOP_HOME/sbin/start-yarn.shstart-yarn.sh 一键启动YARN集群
  • 会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager;
  • 会基于workers文件配置的主机启动NodeManager;
  • 在当前机器启动ProxyServer(代理服务器)。
    命令执行效果如下图所示:
    在这里插入图片描述
    此时通过jps命令查看进程,可以看到如下效果:
    在这里插入图片描述
    此时,可以看到ResourceManager、NodeManager和WebAppProxyServer都已经启动,还需要启动HistoryServer,可以通过后续章节介绍的mapred --daemon start historyserver命令启动。
    至此,整个YARN集群启动完成。
    此时,可以通过访问http://node1:8088/ 即可看到YARN集群的监控页面(即ResourceManager的WebUI)
    在这里插入图片描述
  1. $HADOOP_HOME/sbin/stop-yarn.shstop-yarn.sh 一键关闭YARN集群。
  2. 配置部署好YARN集群后,可以关闭YARN集群、关闭JobHistoryServer、关闭HDFS集群、关闭虚拟机之后,对虚拟机创建快照,保存好当前环境。

4.2.2. 单独进程启停

  1. 在每一台机器,单独启动或停止进程,可以通过如下命令执行:
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver

start和stop决定启动和停止;
可控制resourcemanager、nodemanager、webappproxyserver三种进程。
例如:

# 在node1启动ResourceManager
yarn --daemon start resourcemanager
# 在node1、node2、node3分别启动NodeManager
yarn --daemon start nodemanager
# 在node1启动WebProxyServer
yarn --daemon start proxyserver
  1. 历史服务器(JobHistoryServer)的启动和停止
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver

用法:

# 启动JobHistoryServer
mapred --daemon start historyserver
# 停止JobHistoryServer
mapred --daemon stop historyserver

4.3. 提交MapReduce示例程序到YARN运行

YARN作为资源调度管控框架,其本身提供资供许多程序运行,常见的有:

  • MapReduce程序
  • Spark程序
  • Flink程序

Hadoop官方提供了一些预置的MapReduce程序代码,存放于$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar文件内。
上述程序可使用hadoop har命令提交至YARN运行,其命令语法为:

hadoop jar 程序文件 java类名 [程序参数] ... [程序参数]

4.3.1. 提交wordcount(单词统计)示例程序

1、程序内容

  • 给定数据输入的路径(HDFS)、给定结果输出的路径(HDFS)
  • 将输入路径内的数据中的单词进行计数,将结果写到输出路径

2、准备一份待统计的数据文件并上传至HDFS中
使用vim words.txt命令,在Linux本地创建words.txt文件,其内容如下:

itheima itcast itheima itcast
hadoop hdfs hadoop hdfs
hadoop mapreduce hadoop yarn
itheima hadoop itcast hadoop
itheima itcast hadoop yarn mapreduce

使用命令hdfs dfs -mkdir -p /input在HDFS根目录创建input文件夹(用于存储待统计的文件),使用hdfs dfs -mkdir -p /output命令在HDFS根目录创建output文件夹(用于存储统计结果),使用hdfs dfs -put words.txt /input命令将本地的words.txt文件上传至HDFS系统中。

3、提交MapReduce程序
使用如下命令:

hadoop jar /export/server/hadoop-3.3.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount hdfs://node1:8020/input/ hdfs://8020/output/wc

其中,
hadoop jar 表示向YARN提交一个Java程序;
/export/server/hadoop-3.3.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar 表示所要提交的程序路径;
wordcount 表示要运行的java类名;
hdfs://node1:8020/input/ 表示参数1,在本程序中是待统计的文件夹,这里写了hdfs协议头,指明了是HDFS文件系统的路径(经测试,不写也可以,默认读取HDFS文件系统路径);
hdfs://8020/output/wc 表示参数2,在本程序中是统计结果输出的文件夹,这里写明了hdfs协议头,指明了是HDFS文件系统的路径(经测试,不写也可以,默认读取HDFS文件系统路径),这里需要确保该文件夹不存在,否则会报错
运行日志如下所示:

[hadoop@node1 ~]$ hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount hdfs://node1:8020/input hdfs://node1:8020/output/wc
2023-12-14 15:31:53,988 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at node1/192.168.88.101:8032
2023-12-14 15:31:55,818 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/hadoop/.staging/job_1702538855741_0001
2023-12-14 15:31:56,752 INFO input.FileInputFormat: Total input files to process : 1
2023-12-14 15:31:57,040 INFO mapreduce.JobSubmitter: number of splits:1
2023-12-14 15:31:57,607 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1702538855741_0001
2023-12-14 15:31:57,607 INFO mapreduce.JobSubmitter: Executing with tokens: []
2023-12-14 15:31:58,167 INFO conf.Configuration: resource-types.xml not found
2023-12-14 15:31:58,170 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
2023-12-14 15:31:59,119 INFO impl.YarnClientImpl: Submitted application application_1702538855741_0001
2023-12-14 15:31:59,406 INFO mapreduce.Job: The url to track the job: http://node1:8089/proxy/application_1702538855741_0001/
2023-12-14 15:31:59,407 INFO mapreduce.Job: Running job: job_1702538855741_0001
2023-12-14 15:32:23,043 INFO mapreduce.Job: Job job_1702538855741_0001 running in uber mode : false
2023-12-14 15:32:23,045 INFO mapreduce.Job:  map 0% reduce 0%
2023-12-14 15:32:37,767 INFO mapreduce.Job:  map 100% reduce 0%
2023-12-14 15:32:50,191 INFO mapreduce.Job:  map 100% reduce 100%
2023-12-14 15:32:51,220 INFO mapreduce.Job: Job job_1702538855741_0001 completed successfully
2023-12-14 15:32:51,431 INFO mapreduce.Job: Counters: 54File System CountersFILE: Number of bytes read=84FILE: Number of bytes written=553527FILE: Number of read operations=0FILE: Number of large read operations=0FILE: Number of write operations=0HDFS: Number of bytes read=248HDFS: Number of bytes written=54HDFS: Number of read operations=8HDFS: Number of large read operations=0HDFS: Number of write operations=2HDFS: Number of bytes read erasure-coded=0Job CountersLaunched map tasks=1Launched reduce tasks=1Data-local map tasks=1Total time spent by all maps in occupied slots (ms)=11593Total time spent by all reduces in occupied slots (ms)=9650Total time spent by all map tasks (ms)=11593Total time spent by all reduce tasks (ms)=9650Total vcore-milliseconds taken by all map tasks=11593Total vcore-milliseconds taken by all reduce tasks=9650Total megabyte-milliseconds taken by all map tasks=11871232Total megabyte-milliseconds taken by all reduce tasks=9881600Map-Reduce FrameworkMap input records=6Map output records=21Map output bytes=233Map output materialized bytes=84Input split bytes=98Combine input records=21Combine output records=6Reduce input groups=6Reduce shuffle bytes=84Reduce input records=6Reduce output records=6Spilled Records=12Shuffled Maps =1Failed Shuffles=0Merged Map outputs=1GC time elapsed (ms)=300CPU time spent (ms)=2910Physical memory (bytes) snapshot=353423360Virtual memory (bytes) snapshot=5477199872Total committed heap usage (bytes)=196218880Peak Map Physical memory (bytes)=228843520Peak Map Virtual memory (bytes)=2734153728Peak Reduce Physical memory (bytes)=124579840Peak Reduce Virtual memory (bytes)=2743046144Shuffle ErrorsBAD_ID=0CONNECTION=0IO_ERROR=0WRONG_LENGTH=0WRONG_MAP=0WRONG_REDUCE=0File Input Format CountersBytes Read=150File Output Format CountersBytes Written=54

4、查看运行结果

运行完毕后,使用hadoop fs -ls /output/wc可以看到运行结果输出的文件
在这里插入图片描述
使用hadoop fs -cat /output/wc/part-r-00000命令,可以看到程序运行的结果
在这里插入图片描述

除此之外,在YARN集群的监控页面http://node1:8088/ 点击左侧的Applications菜单,可以看到刚才运行过的任务
在这里插入图片描述
再点击任务的ID,可以进入任务详情页面
在这里插入图片描述
再点击某一个阶段的Logs链接,可以看到对应阶段的运行的客户端日志(在配置yarn-site.xml文件时,配置了开启日志聚合),这个页面本质上是JobHistoryServer提供的页面(19888端口)
在这里插入图片描述
在任务详情页面点击History链接,可以看到任务的历史运行状态,在其中可以看到其Map任务和Reduce任务,也可以继续点进Map和Reduce任务查看相关的日志等信息,对于程序出错时的排查很有帮助。
在这里插入图片描述

4.3.2. 提交根据Monte Carlo蒙特卡罗算法求圆周率的示例程序

1、提交程序

hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 3 1000

hadoop jar 表示向YARN提交一个Java程序;
/export/server/hadoop-3.3.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar 表示所要提交的程序路径;
pi 表示运行的Java类名;
3 表示使用3个Map任务;
1000 表示样本数为1000,样本数越多,求得的圆周率越准确,但是程序运行时长越长。
运行日志如下所示:

[hadoop@node1 ~]$ hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 3 1000
Number of Maps  = 3
Samples per Map = 1000
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Starting Job
2023-12-14 16:06:12,042 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at node1/192.168.88.101:8032
2023-12-14 16:06:13,550 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/hadoop/.staging/job_1702538855741_0002
2023-12-14 16:06:13,888 INFO input.FileInputFormat: Total input files to process : 3
2023-12-14 16:06:14,149 INFO mapreduce.JobSubmitter: number of splits:3
2023-12-14 16:06:14,658 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1702538855741_0002
2023-12-14 16:06:14,659 INFO mapreduce.JobSubmitter: Executing with tokens: []
2023-12-14 16:06:15,065 INFO conf.Configuration: resource-types.xml not found
2023-12-14 16:06:15,065 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
2023-12-14 16:06:15,256 INFO impl.YarnClientImpl: Submitted application application_1702538855741_0002
2023-12-14 16:06:15,403 INFO mapreduce.Job: The url to track the job: http://node1:8089/proxy/application_1702538855741_0002/
2023-12-14 16:06:15,404 INFO mapreduce.Job: Running job: job_1702538855741_0002
2023-12-14 16:06:32,155 INFO mapreduce.Job: Job job_1702538855741_0002 running in uber mode : false
2023-12-14 16:06:32,156 INFO mapreduce.Job:  map 0% reduce 0%
2023-12-14 16:06:47,156 INFO mapreduce.Job:  map 67% reduce 0%
2023-12-14 16:06:50,188 INFO mapreduce.Job:  map 100% reduce 0%
2023-12-14 16:06:57,275 INFO mapreduce.Job:  map 100% reduce 100%
2023-12-14 16:06:58,328 INFO mapreduce.Job: Job job_1702538855741_0002 completed successfully
2023-12-14 16:06:58,589 INFO mapreduce.Job: Counters: 54File System CountersFILE: Number of bytes read=72FILE: Number of bytes written=1108329FILE: Number of read operations=0FILE: Number of large read operations=0FILE: Number of write operations=0HDFS: Number of bytes read=786HDFS: Number of bytes written=215HDFS: Number of read operations=17HDFS: Number of large read operations=0HDFS: Number of write operations=3HDFS: Number of bytes read erasure-coded=0Job CountersLaunched map tasks=3Launched reduce tasks=1Data-local map tasks=3Total time spent by all maps in occupied slots (ms)=39354Total time spent by all reduces in occupied slots (ms)=7761Total time spent by all map tasks (ms)=39354Total time spent by all reduce tasks (ms)=7761Total vcore-milliseconds taken by all map tasks=39354Total vcore-milliseconds taken by all reduce tasks=7761Total megabyte-milliseconds taken by all map tasks=40298496Total megabyte-milliseconds taken by all reduce tasks=7947264Map-Reduce FrameworkMap input records=3Map output records=6Map output bytes=54Map output materialized bytes=84Input split bytes=432Combine input records=0Combine output records=0Reduce input groups=2Reduce shuffle bytes=84Reduce input records=6Reduce output records=0Spilled Records=12Shuffled Maps =3Failed Shuffles=0Merged Map outputs=3GC time elapsed (ms)=699CPU time spent (ms)=11980Physical memory (bytes) snapshot=775233536Virtual memory (bytes) snapshot=10945183744Total committed heap usage (bytes)=466890752Peak Map Physical memory (bytes)=227717120Peak Map Virtual memory (bytes)=2734153728Peak Reduce Physical memory (bytes)=113000448Peak Reduce Virtual memory (bytes)=2742722560Shuffle ErrorsBAD_ID=0CONNECTION=0IO_ERROR=0WRONG_LENGTH=0WRONG_MAP=0WRONG_REDUCE=0File Input Format CountersBytes Read=354File Output Format CountersBytes Written=97
Job Finished in 46.895 seconds
Estimated value of Pi is 3.14133333333333333333

2、查看运行情况
在在YARN集群的监控页面,可以查看对应任务的History信息,可以看到当前任务使用了3个Map任务和1个Reduce任务,同时,也可以查看相应的运行日志信息。
在这里插入图片描述

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

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

相关文章

缓存高可用:缓存如何保证高可用?

前面我们提到了缓存集群的负载均衡策略&#xff0c;保证缓存服务的高可用&#xff0c;集群策略是最常用的&#xff0c;本文我们以 Redis 为例&#xff0c;分析一下单点缓存如何扩展到集群&#xff0c;以及集群部署的几种常见模式。 Redis 的主从复制 集群实现依靠副本&#x…

爬虫字典生成工具,CeWL使用教程

爬虫字典生成工具,CeWL使用教程 1.工具概述2.参数解析3.使用实例1.工具概述 CeWL 是一个 ruby 应用程序,它将给定的 URL 爬到指定的深度,可以选择跟随外部链接,并返回一个单词列表,然后可用于密码破解者 Cewl 是黑客武器库中的强大工具,因为它允许创建有针对性的单词列…

使用 Spring Boot + MyBatis开发需要注意的事项以及开发模版

前言&#xff1a; 注意&#xff0c;本篇不适用于有相关开发经验的开发者&#xff0c;作为一个在职开发者&#xff0c;我经常在完成从0-1的模块&#xff0c;也就是从数据库表开始到创建实体类&#xff0c;以及dao层&#xff0c;Service层等业务需要添加相关注解&#xff0c;这样…

nn.LSTM个人记录

简介 nn.LSTM参数 torch.nn.lstm(input_size, "输入的嵌入向量维度&#xff0c;例如每个单词用50维向量表示&#xff0c;input_size就是50"hidden_size, "隐藏层节点数量,也是输出的嵌入向量维度"num_layers, "lstm 隐层的层数&#xff0c;默认…

计算机网络——网络层(四)

前言&#xff1a; 前面我们已经对物理层和数据链路层有了一个简单的认识与了解&#xff0c;现在我们需要对数据链路层再往上的一个层&#xff0c;网络层进行一个简单的学习与认识&#xff0c;网络层有着极其重要的作用&#xff0c;让我们对网络层进行一个简单的认识与学习吧 目…

Ubuntu:VS Code上C++的环境配置

使用 VSCode 开发 C/C 程序 , 涉及到 工作区的.vscode文件夹下的3个配置文件&#xff08;均可以手动创建&#xff09; : ① tasks.json : 编译器构建 配置文件 ; ② launch.json : 调试器设置 配置文件 ; ③ c_cpp_properties.json : 编译器路径和智能代码提示 配置文件 ; …

神经网络:机器学习基础

【一】什么是模型的偏差和方差&#xff1f; 误差&#xff08;Error&#xff09; 偏差&#xff08;Bias&#xff09; 方差&#xff08;Variance&#xff09; 噪声&#xff08;Noise&#xff09;&#xff0c;一般地&#xff0c;我们把机器学习模型的预测输出与样本的真实label…

Python中json模块的使用与pyecharts绘图的基本介绍

文章目录 json模块json与Python数据的相互转化 pyecharts模块pyecharts基本操作基础折线图配置选项全局配置选项 json模块的数据处理折线图示例示例代码 json模块 json实际上是一种数据存储格式&#xff0c;是一种轻量级的数据交互格式&#xff0c;可以把他理解成一个特定格式…

python dash 写一个登陆页 4

界面 代码&#xff1a; 这里引入了dash_bootstrap_components 进行界面美化 &#xff0c;要记一些className&#xff0c;也不是原来说的不用写CSS了。 from dash import Dash, html, dcc, callback, Output, Input, State import dash_bootstrap_components as dbcapp Dash(…

持续集成交付CICD:Jira 远程触发 Jenkins 实现更新 GitLab 分支

目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira新建模块 4. Jira 通过Webhook 触发Jenkins流水线 3.Jira 远程触发 Jenkins 实现更新 GitLab 分支 二、问题 1.Jira 配置网络钩子失败 2. Jira 远程触发Jenkins 报错 一、实验 1.环境 &#xff08;1&#xff09;主机 …

HarmonyOS构建第一个JS应用(FA模型)

构建第一个JS应用&#xff08;FA模型&#xff09; 创建JS工程 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。 选择Application应用开发&#xf…

Docker知识总结

Docker 学习目标&#xff1a; 掌握Docker基础知识&#xff0c;能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令 能够运用Dockerfile编写创建容器的脚本 能够…

全方位掌握卷积神经网络:理解原理 优化实践应用

计算机视觉CV的发展 检测任务 分类与检索 超分辨率重构 医学任务 无人驾驶 整体网络架构 卷积层和激活函数&#xff08;ReLU&#xff09;的组合是网络的核心组成部分 激活函数(ReLU&#xff09; 引入非线性&#xff0c;增强网络的表达能力。 卷积层 负责特征提取 池化层…

OpenCV | 霍夫变换:以车道线检测为例

霍夫变换 霍夫变换只能灰度图&#xff0c;彩色图会报错 lines cv2.HoughLinesP(edge_img,1,np.pi/180,15,minLineLength40,maxLineGap20) 参数1&#xff1a;要检测的图片矩阵参数2&#xff1a;距离r的精度&#xff0c;值越大&#xff0c;考虑越多的线参数3&#xff1a;距离…

快速安装方式安装开源OpenSIPS和CP控制界面

OpenSIPS是目前世界上主流的两个SIP软交换引擎(其中另外一个是kamailio)或者SIP信令服务器&#xff08;个人认为是比较正确的称谓&#xff09;。关于Opensips的基础和一些参数配置和安装方式笔者在很久以前的历史文档中有非常多的介绍。最近&#xff0c;很多用户使用OpenSIPS软…

《PySpark大数据分析实战》-18.什么是数据分析

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

EPROM 作为存储器的 8 位单片机

一、基本概述 TX-P01I83 是以 EPROM 作为存储器的 8 位单片机&#xff0c;专为多 IO 产品的应用而设计&#xff0c;例如遥控器、风扇/灯光控制或是 玩具周边等等。采用 CMOS 制程并同时提供客户低成本、高性能等显着优势。TX-P01I83 核心建立在 RISC 精简指 令集架构可以很容易…

【零基础入门Docker】什么是Dockerfile Syntax

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门Docker专栏https://blog.csdn.net/arthas777/category_12455882.html 目录 编写Dockerfile和Format的语法 2. MAINTAINER 3. RUN 4. ADD 6. ENTRYPOINT 7. CMD 8. EXPOSE 9. VOLUME 11. USER 12. ARG …

【iOS】UICollectionView

文章目录 前言一、实现简单九宫格布局二、UICollectionView中的常用方法和属性1.UICollectionViewFlowLayout相关属性2.UICollectionView相关属性 三、协议和代理方法&#xff1a;四、九宫格式的布局进行升级五、实现瀑布流布局实现思路实现原理代码调用顺序实现步骤实现效果 总…

论文推荐:大型语言模型能自我解释吗?

这篇论文的研究主要贡献是对LLM生成解释的优缺点进行了调查。详细介绍了两种方法&#xff0c;一种是做出预测&#xff0c;然后解释它&#xff0c;另一种是产生解释&#xff0c;然后用它来做出预测。 最近的研究发现&#xff0c;即使LLM是在特定数据上训练的&#xff0c;也不能认…