当前位置: 首页 > news >正文

最新版本——Hadoop3.3.6单机版完全部署指南

538067752c84509357716d8eb723e6da.png

大家好,我是独孤风,大数据流动的作者。

本文基于最新的 Hadoop 3.3.6 的版本编写,带大家通过单机版充分了解 Apache Hadoop 的使用。本文更强调实践,实践是大数据学习的重要环节,也能在实践中对该技术有更深的理解,所以一些理论知识建议大家多阅读相关的书籍(都在资料包中)。

本文档版权归大数据流动所有,请勿商用,全套大数据、数据治理、人工智能相关学习资料,请关注大数据流动。

(本文所使用资料包位置: 大数据流动 VIP 知识库 》大数据技术 》Apache Hadoop 3.3.6 单机安装包)

一、Hadoop 概述

Apache Hadoop 是一个开源框架,用于存储和处理大规模数据集。它是用 Java 编写的,并支持分布式处理。Hadoop 的关键特点包括:

  1. 分布式存储:通过 Hadoop 分布式文件系统(HDFS),它可以跨多个节点存储大量数据,提供高可靠性和数据冗余。

  2. 分布式计算:Hadoop 使用 MapReduce 编程模型来并行处理大数据,这样可以有效地处理和分析存储在 HDFS 中的大规模数据集。

  3. 可扩展性:Hadoop 能够通过添加更多节点来轻松扩展,处理更大量的数据。

  4. 容错性:Hadoop 设计中考虑到了故障的可能性,能够在节点故障时继续运行,确保数据不丢失。

5. 生态系统:Hadoop 的生态系统包括各种工具和扩展(如 Hive、HBase、Spark 等),用于数据处理、分析和管理。

Hadoop 广泛应用于大数据分析、数据挖掘、日志处理等领域,特别是在需要处理 PB 级别数据的场景中非常有效。

所以我们可以理解为 Hadoop 是一个生态,有了 Hadoop 为基础,后续的 Spark,Flink 等组件才相继出现,让大数据技术持续的发展。

4de56e62c5e4ef7e25fea171b43d20f5.png

而从软件角度,Hadoop 本身自己是一个 Apache 的开源软件。

db6fb49cb3b71b9ca60a5f47b04fa0d8.png

Apache Hadoop 主要由以下几个核心组件组成,每个组件都有其独特的功能:

1. Hadoop Common:这是 Hadoop 的基础库集合,提供了 Hadoop 模块所需要的通用工具和接口。它包括文件系统、操作系统级别的抽象,以及必要的 Java 库文件。

  1. Hadoop MapReduce (MR):这是一个编程模型,用于处理大规模数据集的分布式计算。MapReduce 将作业分成两个阶段:Map(处理)和 Reduce(汇总)。这种方法使得并行处理大数据变得简单有效。

  2. Hadoop YARN (Yet Another Resource Negotiator):YARN 是 Hadoop 的资源管理和任务调度器。它将计算资源管理和作业调度功能从 MapReduce 中分离出来,提高了 Hadoop 的灵活性和可扩展性。

  3. Hadoop Distributed File System (HDFS):HDFS 是一个高度容错的分布式文件系统,设计用来存储大量数据。它可以在廉价的硬件上运行,提供高吞吐量以访问应用程序数据,并适用于具有大数据集的应用程序。

这些组件协同工作,使 Hadoop 成为一个强大的工具,用于存储、处理和分析大规模的数据集。

cea094a1b6ced98f2b99f00e7e19baf1.png

而 Common 是基础库,MapReduce 由于性能问题,分布式计算已经被更高效的 Spark,Flink 等计算引擎替代。

但是HDFS,YARN依然是最核心的两个组件,一定要认真学习,我也会单独发文章来学习这两个组件。

31650bf03cddeb48344d5ea4e144c95d.png

016fb4d32de6e7ba853a12925cff3ad4.png

d0147438f13591c699240e872a4d7442.png

31ba775920ca3a505a7bcab3e9e80d6b.png

二、Hadoop 历史

当然,以下是用 Markdown 格式概述 Apache Hadoop 的历史:

  • 2005 年 - 起源由 Doug Cutting 和 Mike Cafarella 创立,受 Google 的 MapReduce 和 GFS 论文启发。

    (Google 三篇理论中文版资料位置: 大数据流动 VIP 知识库 》大数据技术 》Google 三家马车)

  • 2006 年 - 加入Apache成为 Apache 软件基金会的一部分,最初是 Lucene 项目的一部分,后来在 2008 年成为顶级项目。

  • 2008 年及以后 - 发展与普及快速获得关注,生态系统不断发展,增加了如 HBase、Hive 等工具。

  • 2011 年 - Hadoop 1.0 发布标志着 Hadoop 的成熟,稳定 API 和核心组件,包括 HDFS 和 MapReduce。

  • 2013 年 - Hadoop 2.0 和YARN的推出引入 YARN,将 Hadoop 从以 MapReduce 为中心的平台转变为更加多功能的数据处理平台。

  • 持续演进 - Hadoop 不断更新,扩展其功能和生态系统,包括 Spark、Kafka、Flink 等工具。

  • 云集成 - 近年来,与云服务集成,提供更灵活、可扩展的数据处理解决方案。

Hadoop 也不光只有 Apache Hadoop,很多公司都有自己的发行版本,不同的发行版针对不同的用途和场景进行了优化,用户可以根据自己的需求选择最适合的版本。随着时间的推移,这些发行版可能会有所变化,包括新的版本推出或旧版本停止维护。

除了 Apache Hadoop,还有 Cloudera 的 CDH(Cloudera Distribution Including Apache Hadoop)、Hortonworks Data Platform (HDP),也就是 CDH 和 Ambari,我也会在其他文章演示,本文我们带来 Apache Hadoop 的单机版本演示,Apache Hadoop 也是被使用最多的版本。

三、Hadoop 3.3.6 单机安装

下面我们进行 Hadoop3.3.6 的单机版安装。

1、版本情况与安装包准备

Apache Hadoop 的官网地址是 https://hadoop.apache.org/

我们在这里可以看到,最新的版本是 3.3.6,这也是 2023 年新发布的版本,各方面都做了很大的优化,本文也基于此版本进行演示。

d587df13ff4f5246cc5b8340450af460.png

我们使用的 Hadoop 版本是 3.3.6,可以在官方网站进行下载:

https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/

696MB 这个。

8fce21427c41b27d681c8259c074bbc7.png

2、服务器环境准备

不管是服务器和虚拟机环境的准备,大家都可以参考我之前的文章,在本地搭一个虚拟机,也可以去买一个现成的,这里不做赘述。

我们使用的 CentOS 版本是 7.8,可以通过下面的命令来查看版本。

cat /etc/redhat-release

6a67753d3607f9d3d1996847e6029d4f.png

CentOS7 的安装步骤基本一致,都可以参考本文档。

服务器需要做一下免密登陆设置,不然后面会有问题

ssh-keygen -t rsa -P ""

回车即可,随后复制密钥

cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

可以验证一下

ssh bigdataflowing

正常会直接登录过去。

3、JDK 安装

先卸载系统自带的 java

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

上传安装包到服务器,安装包可在 Oracle 官网下载:https://www.oracle.com/java/technologies/downloads/

也可以用我的资料包里的。

jdk-8u221-linux-x64.tar.gz

建立文件夹。

mkdir /opt/jdk/

进入该文件夹,上传文件。

cd /opt/jdk/

a3e81d8f05193eec39ced43b03c2d547.png

解压安装包 tar -zxvf jdk-8u221-linux-x64.tar.gz

没有报错证明解压成功。

cf3597c616e98e8e051164301ee10987.png

随后我们把 JDK 配置到环境变量里就可以了。

vi /etc/profile

在最下面加入这两句,其实就是我们刚刚解压 jdk 的位置。

export JAVA_HOME=/opt/jdk/jdk1.8.0_221

export PATH=$PATH:$JAVA_HOME/bin

最后让环境变量生效

source /etc/profile

查看 java 版本验证一下,java -version 成功!

f4e94ff001197709e8707618870d11a5.png

这样我们这台机器就有 java 环境可用了。

4、Hadoop3.3.6 安装

有了 java 环境,hadoop 的依赖问题就解决了,可以直接进行安装。

将之前准备好的 hadoop 安装包,上传到 /opt/hadoop3.3.6 目录下

解压,tar -zxvf hadoop-3.3.6.tar.gz 没报错就是成功。

dec05f8ea4f5838e6b1135165292bf30.png

还是增加环境变量

vi /etc/profile

在最下面加入这三句,hadoop 的位置

export HADOOP_HOME=/opt/hadoop3.3.6/hadoop-3.3. 6

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

最后让环境变量生效

source /etc/profile

查看 java 版本验证一下,hadoop-version 成功!

abb7c185596c6ab649be3dee0260246c.png

使用 hadoop version 命令验证安装成功

926e11733ee6637a85794f5e8711eac8.png

5、配置

虽然安装成功,但是我们要使用的是单机伪集群,还需要进行一些配置。

hadoop 的目录有如下的文件夹

0946e7abb833a34b3380f4e64862b8b6.png

bin 目录:Hadoop 主服务脚本

etc 目录:Hadoop 的配置文件目录

lib 目录:存放 Hadoop 的本地库

sbin 目录:存放启动或停止 Hadoop 相关服务的脚本

首先进入 etc 配置文件夹 cd ``etc/hadoop 有如下配置,我们只修改核心的就可以。

cdc81f8fed357d2e629cf96988f3f472.png

首先修改 hadoop-env.sh 将 java 和 hadoop 的根路径加入

export JAVA_HOME=/opt/jdk/jdk1.8.0_221

export HADOOP_HOME=/opt/hadoop3.3.6/hadoop-3.3.6

同时加入 root 权限

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

修改 core-site.xml

在 configuration 标签中,添加如下内容:

<property><name>fs.defaultFS</name><value>hdfs://bigdataflowing:9090</value></property><!-- 指定 hadoop 数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop3.3.6/hdfs/tmp</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>

8ef30eb53797e8609bb50aa82f4a0d5f.png

修改 hdfs-site.xml,在 configuration 标签中,添加如下内容:

<property><name>dfs.replication</name>      <value>1</value></property>  <property><name>dfs.namenode.name.dir</name>  <value>/opt/hadoop3.3.6/hdfs/name</value>  <final>true</final></property>  <property><name>dfs.datanode.data.dir</name>  <value>/opt/hadoop3.3.6/hdfs/data</value>  <final>true</final></property>  <property><name>dfs.http.address</name><value>0.0.0.0:50070</value></property><property><name>dfs.permissions</name>  <value>false</value></property>

c89f668d36fefe12c20e9b3d7d416fbc.png

修改 mapre-site.xml,在 configuration 标签中,添加如下内容:

<property><name>mapreduce.framework.name</name><value>yarn</value></property>

0e29b212d30a90bc6179e09014fad4cb.png

修改 yarn-site.xml,在 configuration 标签中,添加如下内容:

<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>

03179acfbcc0c186c79b8dbd0cb5bf18.png

6、启动

首先格式化 HDFS,也就是对 hdfs 做最基本的配置:

hdfs namenode -format

10a3d9766e961460e40b2bc2c7ac64c6.png

格式化完成。

随后我们进入 sbin 目录

cd /opt/hadoop3.3.6/hadoop-3.3.6/sbin/

b4103baf258a696ecd8da9e1cbcc37c7.png

这里脚本较多,我们可以选择启动全部

./start-all.sh

正常不会有报错,同时使用 jps 命令查看,会有 Datanode,ResourceManager,SecondaryNameNode,NameNode,NodeManager 五个进程。

ed57eb7410515effb169f227ae8436d7.png

另一个验证启动成功的方法,是访问 Hadoop 管理页面

http://IP:50070/

f37c85f9fa6b425c9b2297d76bf1545f.png

http://IP:8088/

ed8602726e68d6679d60374b90494573.png

这些页面的使用,我们会在后续 Hdfs,Yarn 等章节再详细讲解。

7、报错汇总

启动报错,未设置 root 用户

ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [bigdataflowing]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation。

启动报错,为进行免密登陆设置

localhost: Permission denied (publickey,password

更多【大数据、数据治理、人工智能知识分享】【开源项目推荐】【学习社群加入】,请关注大数据流动

相关文章:

最新版本——Hadoop3.3.6单机版完全部署指南

大家好&#xff0c;我是独孤风&#xff0c;大数据流动的作者。 本文基于最新的 Hadoop 3.3.6 的版本编写&#xff0c;带大家通过单机版充分了解 Apache Hadoop 的使用。本文更强调实践&#xff0c;实践是大数据学习的重要环节&#xff0c;也能在实践中对该技术有更深的理解&…...

理解自我效能感:你的内在动力来源

1. 自我效能感&#xff1a;开启个人潜能的心理动力 想象一下&#xff0c;面对生活的挑战和机遇时&#xff0c;是什么内在力量驱使你去采取行动&#xff0c;或者让你犹豫不决&#xff1f;这种力量&#xff0c;与我们的心理状态紧密相关&#xff0c;其中一个关键因素就是我们的自…...

Java第二十一章

一.网络程序设计基础 1.网络协议 网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、电气(有效的电平范围)等特征&#xff0c;计算机之间的相互寻址规则&#xff0c;数据发送冲突的解决方式&#xff0c;长数据如何分段传送与接收等内容.就像不同的国家有不同的…...

Redis交互速度慢,CPU占用100%,集群方案,报错等问题

Redis交互速度很慢&#xff0c;达到几十到一百毫秒一次 问题描述&#xff1a; 执行top命令发现redis占用达到100% redis交互速度慢&#xff0c;一次要几十到一百毫秒一次 解决思路 查看redis数据量&#xff0c;比如我这里达到了30万 经过本地测试&#xff0c;redis交互的速…...

wpf 系统在显示器分辨率和缩放设置为非1920*1080和100%时,SelectionChanged事件响应问题分析?

系统在显示器分辨率和缩放设置为1920*1080和100%时&#xff0c;窗口四分格能正常响应SelectionChanged事件&#xff0c;但是当缩放为125%时&#xff0c;或是分辨率大于1920*1080时四分格其中一个格子的下侧和右侧点击不响应&#xff0c;什么原因&#xff1f; 描述的问题可能由以…...

刷题记录--算法--简单

第一题 2582. 递枕头 已解答 简单 相关标签 相关企业 提示 n 个人站成一排&#xff0c;按从 1 到 n 编号。 最初&#xff0c;排在队首的第一个人拿着一个枕头。每秒钟&#xff0c;拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾&#xff0c;传递…...

条码生成器与Zint使用

文章目录 目的条形码zint支持条形码种类下载编译qt pro配置code保存条形码目的 1: 了解条形码数据理论知识 2: 了解zint第三方库相关, 如何编译引用到项目中 条形码 条形码(Barcode)一维码 和二维码(QR code)都是用于存储信息的图形化表示方式,通常应用于商品标识、库…...

C#winform上下班打卡系统Demo

C# winform上下班打卡系统Demo 系统效果如图所示 7个label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3个按钮、1个dataGridView控件、2个groupBox控件 C#代码实现 using System; using System.Dat…...

P1 Qt的认识及环境配置

目录 前言 01 下载Qt Creator windows下载安装包拷贝到Linux Linux直接下载 02 Linux 安装Qt 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类…...

单元测试Nunit的几种断言

Nunit提供了一些辅助函数用于确定好某个被测试函数是否正常工作。通常把这些函数称为断言 断言是单元测试最基本的组成部分。因此&#xff0c;NUnit程序库以Assert类的静态方法的形式提供了不同形式的多种断言 1. Assert.AreEqual&#xff1a;比较两个值是否相等。用于比较数…...

前端中的响应式布局与各个端适配

什么是响应式布局&#xff1f; 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。在移动互联网高度发达的今天&#xff0c;我们在桌面浏览器上开发的网页已经无法满足在移动设备上查看的需求。传统的开发方式是PC端开发一套页面&#xff0c;手机端再开发一套页面。但是…...

2023年5个自动化EDA库推荐

EDA或探索性数据分析是一项耗时的工作&#xff0c;但是由于EDA是不可避免的&#xff0c;所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形&#xff0c;而是获得对数据集的理解&#xff0c;并获得对变量之间的分布和相关…...

7-1 查找书籍

给定n本书的名称和定价&#xff0c;本题要求编写程序&#xff0c;查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n&#xff08;<10&#xff09;&#xff0c;随后给出n本书的信息。每本书在一行中给出书名&#xff0c;即长度不超过30的字…...

【无线网络技术】——无线广域网(学习笔记)

&#x1f4d6; 前言&#xff1a;无线广域网(WWAN)是指覆盖全国或全球范围内的无线网络&#xff0c;提供更大范围内的无线接入&#xff0c;与无线个域网、无线局域网和无线城域网相比&#xff0c;它更加强调的是快速移动性。典型的无线广域网&#xff1a;蜂窝移动通信系统和卫星…...

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、sp…...

NGINX相关配置

全局配置 NGINX配置信息 nginx 官方帮助文档&#xff1a;http://nginx.org/en/docs/Nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;/conf/nginx.conf(/nginx/conf/nginx.conf) 子配置文件: include conf.d/*.conf#事件驱动相关的配置 同步 event { worker_…...

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候&#xff0c;需要将某个子文件夹识别为maven项目 解决方案...

CleanMyMac4.16中文最新版本下载

当很多人还在为电脑运行缓慢、工作问题不能快速得到解决而烦恼的时候&#xff0c;我已经使用过了多款系统清理工具&#xff0c;并找到了最适合我的那一款。我的电脑是超耐用的Mac book&#xff0c;接下来给大家介绍三种在众多苹果电脑清理软件的排名较高的软件。 一、Maintena…...

谷歌正式发布最强 AI 模型 Gemini

2023年12月6日&#xff0c;谷歌公司宣布推出其被认为是规模最大、功能最强大的人工智能模型 Gemini。 Gemini将分为三个不同的套件&#xff1a;Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被认为具备最强大的能力&#xff0c;Gemini Pro则可扩展至多任务&#x…...

无人机语音中继电台 U-ATC118

简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块&#xff0c;通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮&#xff0c;电台虚拟面板与真实面板布局…...

两种测量方式的自适应卡尔曼滤波数据融合

文章目录 测试效果代码CMakeLists.txt参考测试效果 代码 #include <iostream> #include <Eigen/Dense> #include...

.Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)

机缘 不知不觉,.NET8都已经面世,而我们一直还停留在.netframework4.5开发阶段,最近准备抽空研究一下.Net6,一是为了提高技术积累,一方面想着通过这次的学习,看有没有可能将老的FX版本替换到.Net6开发上,经过查找官方资料,对.Net6支持的系统版本做一个分享,方便大家后期…...

CopyOnWriteArraySet怎么用

简介 CopyOnWriteArraySet是一个线程安全的无序集合&#xff0c;它基于“写时复制”的思想实现。它继承自AbstractSet&#xff0c;可以将其理解成线程安全的HashSet。 CopyOnWriteArraySet在读取操作比较频繁、写入操作相对较少的情况下可以提高程序的性能和可靠性。它的线程…...

uniapp得app云打包问题

获取appid&#xff0c;具体可以查看详情 也可以配置图标&#xff0c;获取直接生成即可 发行 打包配置 自有证书测试使用时候不需要使用 编译打包 最后找到安装包apk安装到手机 打包前&#xff0c;图片命名使用要非中文&#xff0c;否则无法打包成功会报错...

Linux bin包生成

需求背景&#xff1a; 在实际项目时我们很少把源码用个tar给到客户&#xff0c;这样显得很不专业&#xff0c;且有的时候我们提供补丁&#xff0c;那么这个时候我们提供一个补丁的bin包可以直接安装运行就显得很高大上了。 物料准备 准备一台liunx&#xff0c;虚拟机亦可&am…...

Java多人聊天

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…...

自动驾驶:传感器初始标定

手眼标定 机器人手眼标定AxxB&#xff08;eye to hand和eye in hand&#xff09;及平面九点法标定 Ax xB问题求解&#xff0c;旋转和平移分步求解法 手眼标定AXXB求解方法&#xff08;文献总结&#xff09; 基于靶的方法 相机标定 (1) ApriTag (2) 棋盘格&#xff1a;cv::f…...

如何将 MySQL 数据库转换为 SQL Server

本文解释了为什么组织希望将其 MySQL 数据库转换为 Microsoft SQL 数据库。本文接着详细介绍了尝试转换之前需要记住的事项以及所涉及的方法。专业的数据库转换器工具将帮助您快速将 MySQL 数据库记录转换为 MS SQL Server。 在继续之前&#xff0c;我们先讨论一下 MySQL 到 M…...

【开源】基于Vue+SpringBoot的河南软件客服系统

文末获取源码&#xff0c;项目编号&#xff1a; S 067 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S067。} 文末获取源码&#xff0c;项目编号&#xff1a;S067。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、…...

《算法面试宝典》--深度学习常见问题汇总

第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 多层感知机中的特征神经元模型称为感知机,由Frank Rosenblatt于1957年发明。 其中 x 1 x_1 x...

【计算机网络实验】实验三 IP网络规划与路由设计(头歌)

目录 一、知识点 二、实验任务 三、头歌测试 一、知识点 IP子网掩码的两种表示方法 32位IP子网掩码&#xff0c;特点是从高位开始连续都是1&#xff0c;后面是连续的0&#xff0c;它有以下两种表示方法&#xff1a; 传统表示法&#xff0c;如&#xff1a;255.255.255.0IP前…...

CodeBlocks添加头文件,解决fatal error: ui.h No such file or directory

问题描述 在使用codeblocks工具进行LVGL仿真过程中报错&#xff0c;找不到头文件 原因分析&#xff1a; 没有将头文件加入编辑器搜索的目录中&#xff0c;编译时找不到头文件。 解决方案&#xff1a; 将要包含的头文件的目录加进去就可以了...

鸿蒙开发:UIAbility组件与UI的数据同步-使用EventHub进行数据通信【鸿蒙专栏-21】

文章目录 ArkTS应用模型中UIAbility组件与UI的数据同步使用EventHub进行数据通信使用globalThis进行数据同步1. UIAbility和Page之间使用globalThis2. UIAbility和UIAbility之间使用globalThis3. 使用globalThis的注意事项4. 使用globalThis的注意事项同名对象覆盖导致问题的场…...

云架构的思考3--云上开发

目录 1 DevOps--简单灵活性高2 服务化&#xff08;微服务&#xff09;--弹性&#xff08;可扩展&#xff09;、按需自主服务3 无状态&#xff08;Serverless&#xff09;--弹性&#xff08;可扩展&#xff09;4 日志--安全5 配置中心--安全6 设计模式6.1 使用“适配器模式”调用…...

vue3日常知识点学习归纳

1&#xff0c;父子组件传递&#xff1a; 父组件传递参数 <template><div><!-- 子组件 参数&#xff1a;num 、nums --><child :num"nums.num" :doubleNum"nums.doubleNum" increase"handleIncrease"></child>&l…...

策略模式终极解决方案之策略机

我们在开发时经常会遇到一堆的if else …, 或者switch, 比如我们常见的全局异常处理等, 像类似这种很多if else 或者多场景模式下, 策略模式是非常受欢迎的一种设计模式, 然而, 一个好的策略模式却不是那么容易写出来. 我在工作中也因为写烦了switch,if else 觉得很不优雅, 因…...

linux 常用指令目录大纲

Linux下的Signal信号处理及详解&#xff0c;test ok-CSDN博客 Linux下怎样判断一个binary是否可以debug//test ok_感知算法工程师的博客-CSDN博客 linux file命令的用法//test ok-CSDN博客 linux下生成core dump方法与gdb解析core dump文件//test ok-CSDN博客 linux readel…...

webpack该如何打包

1.我们先创建一个空的大文件夹 2.打开该文件夹的终端 输入npm init -y 2.1.打开该文件夹的终端 2.2在该终端运行 npm init -y 3.安装webpack 3.1打开webpack网址 点击“中文文档” 3.2点击“指南”在点击“起步” 3.3复制基本安装图片画线的代码 4.在一开始的文件夹下在创建一…...

【STM32】TIM定时器输入捕获

1 输入捕获 1.1 输入捕获简介 IC&#xff08;Input Capture&#xff09;输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff08;上升沿/下降沿&#xff09;&#xff0c;当前CNT的值将被锁存到CCR中&#xff08;把CNT的值读出来&#xff0c;写入到…...

webrtc 设置不获取鼠标 启用回声消除

数 getDisplayMedia()(属于 navigator.mediaDevices 的一部分)与 getUserMedia() 类似,用于打开显示内容(或部分内容,如窗口)。返回的 MediaStream 与使用 getUserMedia() 时相同。 显示鼠标与否 getDisplayMedia() 的约束条件与常规视频或音频输入资源的限制不同。 {…...

JVM虚拟机:如何查看JVM初始和最终的参数?

本文重点 在前面的课程中&#xff0c;我们学习了如何查看当前程序所处于的xx参数&#xff0c;本文再介绍一种如何参看JVM的xx参数&#xff1f; 查看JVM的所有初始化参数 方式一&#xff1a;java -XX:PrintFlagsInitial 方式二&#xff1a;java -XX:PrintFlagsInitial -versio…...

JVM Optimization Learning(五)

目录 一、JVM Optimization 1、G1 1、G1内存模型 2、基础概念 3、G1特点&#xff1a; 4、CMS日志分析 5、G1日志分析 2、GC参数 2.1、GC常用参数 2.2、Parallel常用参数 2.3、CMS常用参数 2.4、G1常用参数 一、JVM Optimization 1、G1 G1官网说明&#xff1a;Gar…...

Java项目学生管理系统一前后端环境搭建

在现代的软件开发中&#xff0c;学生管理系统是一个常见的应用场景。通过学生管理系统&#xff0c;学校能够方便地管理学生的信息、课程安排和成绩等数据。本文将介绍如何使用Java语言搭建一个学生管理系统的前后端环境&#xff0c;并提供一个简单的示例。 1.环境搭建 学生管…...

LeetCode:169.多数元素(哈希表)

题目 第一版 思路 直接开个哈希表&#xff0c;存储每个数组中的数字和对应出现的次数。然后排序后找出对应最大value值的key。 代码 class Solution {public int majorityElement(int[] nums) {Map<Integer,Integer>map new HashMap<Integer,Integer>();for(…...

Linux指令学习

目录 1.ls指令 2.pwd命令 3.cd 指令 4. touch指令 5.mkdir指令 6.rmdir指令 && rm 指令 7.man指令 8.cp指令 9.mv指令 10.cat指令 11.more指令 12.less指令 13.head指令 14.find指令&#xff1a; -name 15.grep指令 16.zip/unzip指令&#xff1a; 17.tar…...

vue2+datav可视化数据大屏(1)

开始 &#x1f4d3; 最近打算出一个前端可视化数据大屏的系列专栏&#xff0c;这次将很全面的教大家设计可视化大屏&#xff0c;从开始到打包结束&#xff0c;其中&#xff0c;包括如何设计框架&#xff0c;如何封装axios&#xff0c;等等&#xff0c;本次使用的数据均为mock数…...

Linux 多进程并发设计-进程对核的亲缘设置

1设计结构 2 设计优点 1 充分利用多核系统的并发处理能力2 负载均衡3 职责明确&#xff0c;管理进程仅负责管理&#xff0c;工作进程仅负责处理业务逻辑 3 演示代码: //main.cpp #define _GNU_SOURCE #include<sys/types.h> #include<sys/wait.h> #include <…...

Javascript 函数介绍

Javascript 函数介绍 很多教程书一上来就讲解一堆语法&#xff0c;例如函数定义、函数调用什么。等读者看完了函数这一章都没搞懂什么是函数。 在讲解什么叫函数之前&#xff0c;我们先看下面一段代码&#xff1a; <!DOCTYPE html> <html xmlns"http://www.w3.…...

php 粉丝关注功能实现

实现粉丝关注功能的步骤如下&#xff1a; 创建用户表&#xff08;user&#xff09;和关注表&#xff08;follow&#xff09;&#xff1a; CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,username varchar(255) NOT NULL,email varchar(255) NOT NULL,password varc…...

深入浅出理解kafka ---- 万字总结

1.Kafka简介 Kafka 本质上是一个 MQ&#xff08;Message Queue&#xff09;&#xff0c;使用消息队列的优点&#xff1a; 解耦&#xff1a;允许独立的扩展或修改队列两边的处理过程。可恢复性&#xff1a;即使一个处理消息的进程挂掉&#xff0c;加入队列中的消息仍然可以在系…...