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

大数据研发工程师课前环境搭建

大数据研发工程师课前环境搭建

第一章 VMware Workstation 安装

在Windows的合适的目录来进行安装,如下图

1.1 双击打开

1.2 下一步,接受协议

1.3 选择安装位置

1.4 用户体验设置

1.5 快捷方式

已经准备好安装,点击安装

1.6 安装中

1.7 安装完成

1.8 启动界面

注意,需要注册的时候,自己解决。

第二章 安装CentOS7操作系统

2.1 点击新建虚拟机

选择自定义安装

2.2 选择虚拟机硬件兼容性,默认即可

2.3 选择安装的操作系统位置

2.4 创建用户和密码

2.5 命名虚拟机并选择安装位置

2.6 处理器配置

根据自己的电脑的设置配置即可,后期可更改。

2.7 设置内存

根据自己的机器配置设置即可

2.8 设置网络类型

选择NAT即可

2.9 选择I/O控制器类型

默认即可

2.10 选择磁盘类型

默认即可

2.11 选择使用的磁盘

2.12 指定磁盘大小

尽量设置大一些,50gb往上。

2.13 指定磁盘文件

默认即可

2.14 已准备好创建虚拟机,确认页面

2.15 点击完成,进行安装

然后等待漫长的安装过程即可。

根据机器性能差异,安装时间在10-30分钟之间。

2.16 在安装过程中进行相关内容的设置

设置界面

2.17 设置时区

2.18 选择安装的内容

选择GUI,对初学者比较友好。

2.19 设置网络

2.20 设置之后的页面

2.21 继续安装页面

第三章 安装XShell和Xftp

首先准备软件

3.1 安装XShell

3.1.1 双击打开

3.1.2 点击接受协议

3.1.3 选择安装位置

选择自己的合适的目录即可

3.1.4 点击下一步,之后点击安装

3.1.5 安装过程

3.1.6 安装完成

3.1.7 点击完成,查看成功界面

3.2 安装Xftp

3.2.1 双击打开

3.2.2 点击接受协议

3.2.3 选择安装位置

3.2.4 点击下一步,之后点击安装

3.2.5 安装过程

3.2.6 安装完成

3.2.7 点击完成,查看成功界面

3.3 通过XShell连接虚拟机

3.3.1 在文件中点击新建

3.3.2 输入相应的信息

3.3.3 一些小操作

注意连接之前需要给虚拟机防火墙关闭

CentOS7查看防火墙状态

systemctl status firewalld.service

关闭防火墙

systemctl stop firewalld.service

永久关闭(重启也没有用)

systemctl enable firewalld.service

关闭selinux参考(其实不关闭也不影响):

临时关闭

[root@localhost ~]# setenforce 0

查看selinux状态

[root@localhost ~]# sestatus

永久关闭

可以修改配置文件/etc/selinux/config,将其中SELINUX设置为disabled。

[root@localhost ~]# vim /etc/selinux/config

注意,子网掩码的设置!!!

第四章 分布式集群安装前序准备

4.1 配置网络

网络配置修改成Manual手动的,并填写相应的ip地址

4.2 hostname查看并修改

CentOS6.x: vi /etc/sysconfig/network

CentOS7.4: vi /etc/hostname

修改主机名,修改之后要重启才能生效。

4.3 修改 /etc/hosts

修改hosts文件

vi /etc/hosts

192.168.22.136 hadoop10

192.168.22.137 hadoop11

192.168.22.138 hadoop12

示例如下:

4.4 防火墙策略

在虚拟机测试,关闭即可,阿里云主机上面需要配置策略

systemctl status firewalld.service

systemctl stop firewalld.service

只使用前面两行重启之后防火墙就开启了。

systemctl disable firewalld.service   永久关闭(重启也不行)

4.5 SSH相互免密码登录

先在hadoop0上面执行。

cd ~  也就是进入/root目录

ssh-keygen -t dsa

cd /root/.ssh/

cat id_dsa.pub >> authorized_keys

上面四步骤需要在三台虚机上做同样的操作

cat authorized_keys查看秘钥

若是有原来有秘钥先删除

rm -rf *

ssh-copy-id -i /root/.ssh/id_dsa.pub  hadoop2在hadoop0上执行上面一句将hadoop0上面的秘钥拷贝到hadoop2上然后再hadoop1上面再次执行上面一句将hadoop1上面的秘钥拷贝到hadoop2上scp   /root/.ssh/authorized_keys  hadoop0:/root/.ssh/在hadoop2上面执行上面一句将hadoop2上面的秘钥拷贝到hadoop0 上scp   /root/.ssh/authorized_keys  hadoop1:/root/.ssh/在hadoop2上面执行上面一句将hadoop2上面的秘钥拷贝到hadoop1 上

第五章 JDK安装

5.1 准备环境并上传软件

1、安装之前先查看一下有无系统自带jdk

rpm -qa |grep java

rpm -e --nodeps 软件名字

[root@hadoop0 /]# rpm -qa |grep java

tzdata-java-2020a-1.el7.noarch

java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

javapackages-tools-3.4.1-11.el7.noarch

java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64

python-javapackages-3.4.1-11.el7.noarch

[root@hadoop0 /]# rpm -e --nodeps tzdata-java-2020a-1.el7.noarch

[root@hadoop0 /]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

[root@hadoop0 /]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

[root@hadoop0 /]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch

[root@hadoop0 /]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

[root@hadoop0 /]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64

[root@hadoop0 /]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

[root@hadoop0 /]# rpm -qa |grep java

使用下面的语句可以快捷删除完

rpm -qa |grep java

rpm -e --nodeps tzdata-java-2020a-1.el7.noarch

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64

rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

rpm -qa |grep java

实际配置的内容:

[root@hadoop10 ~]# rpm -qa |grep java

tzdata-java-2020a-1.el7.noarch

python-javapackages-3.4.1-11.el7.noarch

java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

javapackages-tools-3.4.1-11.el7.noarch

[root@hadoop10 ~]# rpm -e --nodeps tzdata-java-2020a-1.el7.noarch

[root@hadoop10 ~]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

[root@hadoop10 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

[root@hadoop10 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

[root@hadoop10 ~]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch

[root@hadoop10 ~]# rpm -qa |grep java

[root@hadoop10 ~]#

为了方便,整理一下:

rpm -qa |grep java

rpm -e --nodeps tzdata-java-2020a-1.el7.noarch

rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch

rpm -qa |grep java

2、在根目录下面创建software文件夹,然后将文件上传到此文件夹下面,将所有的文件的安装都放到这个文件夹下面,方便统一管理。

5.2 上传解压重命名文件

上传到software文件夹下面

tar -zxvf jdk-8u202-linux-x64.tar.gz

mv jdk1.8.0_202/ jdk

重命名

5.3 修改配置

修改之前最好先备份一下配置文件

vi /etc/profile

export JAVA_HOME=/software/jdk

export PATH=.:$PATH:$JAVA_HOME/bin

source /etc/profile

java

java -version

javac

同理在其他节点上一样安装即可。

第六章 Hadoop安装

先在一台机器上面安装,然后复制到其他的机器上面即可。

6.1 在节点1上面上传解压重命名

tar -zxvf hadoop-3.3.1.tar.gz

mv hadoop-3.3.1 hadoop

3.2 添加环境变量

vi /etc/profile

export JAVA_HOME=/software/jdk

export HADOOP_HOME=/software/hadoop

export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

线上实际配置

export JAVA_HOME=/software/jdk

export PATH=.:$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/software/hadoop

export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

6.3 修改配置文件

在hadoop0上修改Hadoop的配置文件

cd  hadoop/etc/hadoop

6.3.1 在一个节点上配置

(1)配置hadoop-env.sh

vi hadoop-env.sh

export JAVA_HOME=/software/jdk

(2)配置hdfs-site.xml

<property>

    <name>dfs.datanode.data.dir</name>

    <value>file:///software/hadoop/data/datanode</value>

</property>

<property>

    <name>dfs.namenode.name.dir</name>

    <value>file:///software/hadoop/data/namenode</value>

</property>

<property>

    <name>dfs.namenode.http-address</name>

    <value>hadoop0:50070</value>

</property>

<property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>hadoop1:50090</value>

</property>

<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>

(3)配置yarn-site.xml

先使用默认的即可

(4)配置core-site.xml

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://hadoop0/</value>

</property>

 注意:端口可以不指定,默认是8020,也可以指定<value>hdfs://hadoop0:9000/</value>

(5)配置workers

hadoop1

hadoop2

6.3.2 将hadoop0上的配置拷贝到其他节点上

拷贝hadoop0上的配置到hadoop1和hadoop2上面

(1)拷背hadoop配置

scp -r /software/hadoop  hadoop1:/software/

scp -r /software/hadoop  hadoop2:/software/

(2)拷贝

scp /etc/profile hadoop11:/etc/

scp /etc/profile hadoop12:/etc/

source /etc/profile

(3)或者手动配置

export HADOOP_HOME=/software/hadoop

export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3.4 启动/停止Hadoop集群

3.4.1 格式化文件系统

hdfs namenode -format

执行上面的命令后,在后面的提示中如果看到successfully formatted的字样,说明hdfs格式化成功!

3.4.2 第一次启动时候遇到的问题

start-all.sh或者start-dfs.sh 和 start-yarn.sh来启动

出现问题如下:

解决方案:

cd /software/hadoop/etc/hadoop

修改hadoop-env.sh。(只需要在主节点上面配置一些即可,因为只在主节点上启动)

在最上面添加如下内容:

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

配置结果如下:

3.4.3 正确启动关闭

查看进程

[root@hadoop0 hadoop]# jps

5538 Jps

5196 ResourceManager

4733 NameNode

[root@hadoop1 hadoop]# jps

3681 SecondaryNameNode

3860 Jps

3770 NodeManager

3567 DataNode

[root@hadoop2 software]# jps

51234 DataNode

51362 NodeManager

51452 Jps

3.4.4 查看页面

3.4.5 在页面创建文件夹时候出现的问题

问题如下:

Permission denied: user=dr.who, access=WRITE, inode="/":root:supergroup:drwxr-xr-x

解决方案:

配置权限:

[root@hadoop0 hadoop]# hadoop fs -chmod -R 777 /

修改之后创建文件夹以及上传文件都正常了

相关文章:

大数据研发工程师课前环境搭建

大数据研发工程师课前环境搭建 第一章 VMware Workstation 安装 在Windows的合适的目录来进行安装&#xff0c;如下图 1.1 双击打开 1.2 下一步&#xff0c;接受协议 1.3 选择安装位置 1.4 用户体验设置 1.5 快捷方式 已经准备好安装&#xff0c;点击安装 1.6 安装中 1.7 安装…...

Qt图形视图框架:QGraphicsItem详解

Qt图形视图框架&#xff1a;QGraphicsItem详解 Chapter1 Qt图形视图框架&#xff1a;QGraphicsItem详解Chapter2 自定义QGraphicsItem实现平移、改变尺寸和旋转1. 平移2. 改变尺寸3. 旋转完整代码如下&#xff1a;头文件源文件 Chapter1 Qt图形视图框架&#xff1a;QGraphicsIt…...

defer和async

如果两个属性浏览器都不兼容&#xff0c;推荐把<script>标签放到底部 一般情况下&#xff0c;浏览器在解析html源文件时&#xff0c;如果遇到外部的<script>标签&#xff0c;解析过程就会先暂停&#xff0c;这时会对script进行加载&#xff0c;执行两个过程&…...

数电实验-----实现74LS139芯片扩展为3-8译码器以及应用(Quartus II )

目录 一、74LS139芯片介绍 芯片管脚 芯片功能表 二、2-4译码器扩展为3-8译码器 1.扩展原理 2.电路图连接 3.仿真结果 三、3-8译码器的应用&#xff08;基于74ls139芯片&#xff09; 1.三变量表决器 2.奇偶校验电路 一、74LS139芯片介绍 74LS139芯片是属于2-4译码器…...

洋葱架构、三层架构及两者区别

前言 洋葱架构它的名称来源于洋葱的层次结构&#xff0c;即软件代码的各层次之间的关系。在这种架构中&#xff0c;应用程序的各个组件通过一系列层次结构被逐层包裹在一起&#xff0c;形成一个类似于洋葱的结构。 一、经典三层架构 三层架构是一种软件设计模式&#xff0c;…...

JavaEE进阶学习:Spring 的创建和使用

Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能&#xff1a; 将对象存储到容器&#xff08;Spring&#xff09;中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目&#xff0c;创建 Spring 项目和 Servlet 类似&a…...

音视频项目—基于FFmpeg和SDL的音视频播放器解析(十四)

介绍 在本系列&#xff0c;我打算花大篇幅讲解我的 gitee 项目音视频播放器&#xff0c;在这个项目&#xff0c;您可以学到音视频解封装&#xff0c;解码&#xff0c;SDL渲染相关的知识。您对源代码感兴趣的话&#xff0c;请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...

Tomcat无法映射到activiti-app导致activiti无法启动页面

原因之一&#xff1a;JDK版本与Tomcat版本不匹配&#xff0c;jdk8 yyds 我使用的是JDK11&#xff0c;Tomcat是9.0的&#xff0c;都是最新的&#xff0c;但还是不行&#xff0c;最后JDK改为8&#xff0c;tomcat的cmd后台没有报错&#xff0c;activiti-pp也可以正常访问了,很神奇…...

c语言常见的面试问题

在C语言编程中&#xff0c;面试官可能会询问你以下一些常见问题&#xff1a; 什么是C语言&#xff1f; C语言是一种通用的、过程式的计算机编程语言&#xff0c;由Dennis Ritchie在1972年创建。它是Unix操作系统的核心语言&#xff0c;也是许多其他编程语言&#xff08;如Go、…...

image图片之间的间隙消除

多个图片排列展示&#xff0c;水平和垂直方向的间隔如何消除 垂直方向 vertical-align 原因&#xff1a; vertical-align属性主要用于改变行内元素的对齐方式&#xff0c;行内元素默认垂直对齐方式是基线对齐&#xff08;baseline&#xff09; 这是因为图片属于行内元素&…...

asp.net心理健康管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 心理健康管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 系统视频链接 https://www.bilibili.com/video/BV19w411H7P4/ 二、功能介绍 本系统使用Microsoft Visual Studio…...

CnosDB有主复制演进历程

分布式存储系统的复杂性涉及数据容灾备份、一致性、高并发请求和大容量存储等问题。本文结合CnosDB在分布式环境下的演化历程&#xff0c;分享如何将分布式理论应用于实际生产&#xff0c;以及不同实现方式的优缺点和应用场景。 分布式系统架构模式 分布式存储系统下按照数据复…...

【前沿学习】美国零信任架构发展现状与趋势研究

转自&#xff1a;美国零信任架构发展现状与趋势研究 摘要 为了应对日趋严峻的网络安全威胁&#xff0c;美国不断加大对零信任架构的研究和应用。自 2022 年以来&#xff0c;美国发布了多个零信任战略和体系架构文件&#xff0c;开展了多项零信任应用项目。在介绍美国零信任战略…...

Toolformer论文阅读笔记(简略版)

文章目录 引言方法限制结论 引言 大语言模型在zero-shot和few-shot情况下&#xff0c;在很多下游任务中取得了很好的结果。大模型存在的限制&#xff1a;无法获取最新的信息、无法进行精确的数学计算、无法理解时间的推移等。这些限制可以通过扩大模型规模一定程度上解决&…...

Pytorch torch.dot、torch.mv、torch.mm、torch.norm的用法详解

torch.dot的用法&#xff1a; 使用numpy求点积&#xff0c;对于二维的且一个二维的维数为1 torch.mv的用法&#xff1a; torch.mm的用法 torch.norm 名词解释&#xff1a;L2范数也就是向量的模&#xff0c;L1范数就是各个元素的绝对值之和例如&#xff1a;...

Jave 定时任务:使用Timer类执行定时任务为何会发生任务阻塞?如何解决?

IDE&#xff1a;IntelliJ IDEA 2022.2.3 x64 操作系统&#xff1a;win10 x64 位 家庭版 JDK: 1.8 文章目录 一、Timer类是什么&#xff1f;二、Timer类主要由哪些部分组成&#xff1f;1.TaskQueue2. TimerThread 三、示例代码分析四、自定义TimerTask为什么会发生任务相互阻塞的…...

Visual Studio Code配置c/c++环境

Visual Studio Code配置c/c环境 1.创建项目目录2.vscode打开项目目录3.项目中添加文件4.文件内容5.配置编译器6.配置构建任务7.配置调试设置 1.创建项目目录 d:\>mkdir d:\c语言项目\test012.vscode打开项目目录 3.项目中添加文件 4.文件内容 #include <iostream> u…...

漏洞利用工具的编写

预计更新网络扫描工具的编写漏洞扫描工具的编写Web渗透测试工具的编写密码破解工具的编写漏洞利用工具的编写拒绝服务攻击工具的编写密码保护工具的编写情报收集工具的编写 漏洞利用工具是一种常见的安全工具&#xff0c;它可以利用系统或应用程序中的漏洞来获取系统权限或者窃…...

ChatGPT之父被OpenAI解雇

首席技术官 Mira Murati 任命临时首席执行官领导 OpenAI&#xff1b;山姆阿尔特曼&#xff08;Sam Altman&#xff09;离开公司。 阿尔特曼先生的离职是在董事会经过深思熟虑的审查程序之后进行的&#xff0c;审查程序得出的结论是&#xff0c;他在与董事会的沟通中始终不坦诚…...

linux中利用fork复制进程,printf隐藏的缓冲区,写时拷贝技术,进程的逻辑地址与物理地址

1.prinf隐藏的缓冲区 1.思考:为什么会有缓冲区的存在? 2.演示及思考? 1).演示缓存区没有存在感 那为什么我们感觉不到缓冲区的存在呢?我们要打印东西直接就打印了呢? 我们用代码演示一下: 比如打开一个main.c,输入内容如下: #include <stdio.h>int main(){printf…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注&#xff1a;文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件&#xff1a;STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...

CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx

“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网&#xff08;IIoT&#xff09;场景中&#xff0c;结合 DDS&#xff08;Data Distribution Service&#xff09; 和 Rx&#xff08;Reactive Extensions&#xff09; 技术&#xff0c;实现 …...

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架

1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...