Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(上)

news2024/9/21 14:28:37

Hadoop运行模式

  • 前言
  • Hadoop运行模式
    • 1 本地运行模式(官方WordCount)
    • 2 完全分布式运行模式(开发重点)
      • 2.1 虚拟机准备
      • 2.2 编写集群分发脚本xsync
        • 1)scp(secure copy)安全拷贝
        • 2)rsync 远程同步工具
        • 3)xsync 集群分发脚本
      • 2.3 SSH无密登录配置
        • 1)配置ssh
        • 2)无密钥配置
        • 3).ssh 文件夹下(~/.ssh)的文件功能解释
      • 2.4 集群配置
        • 1)集群部署规划
        • 2)配置文件说明
        • 3)配置集群
        • 4)在集群上分发配置好的Hadoop配置文件
        • 5)去103和104上查看文件分发情况
      • 2.5 群起集群
        • 1)配置workers
        • 2)启动集群
        • 3)集群基本测试
  • 题外话

前言

今天我们具体来介绍一下Hadoop的运行模式具体内容移步正文。

Hadoop运行模式

1)Hadoop 官方网站:http://hadoop.apache.org/
2)Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
➢ 本地模式:单机运行,只是用来演示一下官方案例。==生产环境不用。 ==
➢ 伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模
拟一个分布式的环境。==个别缺钱的公司用来测试,生产环境不用。 ==
➢ 完全分布式模式:多台服务器组成分布式环境。==生产环境使用。 ==

1 本地运行模式(官方WordCount)

1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹

[atguigu@hadoop102 hadoop-3.1.3]$ mkdir wcinput

2)在wcinput文件下创建一个word.txt文件

[atguigu@hadoop102 hadoop-3.1.3]$ cd wcinput 

3)编辑word.txt文件

[atguigu@hadoop102 wcinput]$ vim word.txt 

➢ 在文件中输入如下内容

hadoop yarn 
hadoop mapreduce 
atguigu 
atguigu 

➢ 保存退出::wq
4)回到Hadoop目录/opt/module/hadoop-3.1.3
5)执行程序

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar 
share/hadoop/mapreduce/hadoop-mapreduce-examples3.1.3.jar 
wordcount wcinput wcoutput 

6)查看结果

[atguigu@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000 
看到如下结果: 
atguigu 2 
hadoop  2 
mapreduce       1 
yarn    1 

2 完全分布式运行模式(开发重点)

分析:
1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群

2.1 虚拟机准备

详细看这篇文章Hadoop学习指南:探索大数据时代的重要组成——运行环境搭建

2.2 编写集群分发脚本xsync

1)scp(secure copy)安全拷贝

(1)scp定义
scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法

scp-r$pdir/ $fname$ user@$ host: $ pdir/$fname
命令递归要拷贝的文件路径/名称目的地用户@主机:目的地路径/名称

(3)案例实操
前提:在 hadoop102、hadoop103、hadoop104 都已经创建好的/opt/module、
/opt/software 两个目录,并且已经把这两个目录修改为atguigu:atguigu

[atguigu@hadoop102 ~]$ sudo chown atguigu:atguigu -R 
/opt/module 

(a)在 hadoop102 上,将 hadoop102 中/opt/module/jdk1.8.0_212 目录拷贝到
hadoop103 上。

[atguigu@hadoop102 ~]$ scp -r/opt/module/jdk1.8.0_212  
atguigu@hadoop103:/opt/module 

(b)在 hadoop103 上,将 hadoop102 中/opt/module/hadoop-3.1.3 目录拷贝到
hadoop103 上。

[atguigu@hadoop103 ~]$ scp 
atguigu@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/ -r 

(c)在 hadoop103 上操作,将 hadoop102 中/opt/module 目录下所有目录拷贝到
hadoop104 上。

[atguigu@hadoop103 opt]$ scp -r 
atguigu@hadoop102:/opt/module/* 
atguigu@hadoop104:/opt/module 

2)rsync 远程同步工具

rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别:用 rsync 做文件的复制要比scp的速度快,rsync只对差异文件做更
新。scp是把所有文件都复制过去。
(1)基本语法

rsync-av$ pdir/$fname$ user@$ host: $ pdir/$fname
命令选项参数要拷贝的文件路径/名称目的地用户@主机:目的地路径/名称

选项参数说明

选项功能
-a归档拷贝
-v显示复制过程

(2)案例实操
显示复制过程
(a)删除hadoop103中/opt/module/hadoop-3.1.3/wcinput

[atguigu@hadoop103 hadoop-3.1.3]$ rm -rf wcinput/ 

(b)同步hadoop102中的/opt/module/hadoop-3.1.3 到

hadoop103 
[atguigu@hadoop102 
module]$ 
rsync -av 
atguigu@hadoop103:/opt/module/hadoop-3.1.3/ 
hadoop-3

3)xsync 集群分发脚本

(1)需求:循环复制文件到所有节点的相同目录下
(2)需求分析:
(a)rsync 命令原始拷贝:

rsync  -av     /opt/module   

(b)期望脚本:
xsync 要同步的文件名称
atguigu@hadoop103:/opt/
(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

[atguigu@hadoop102 ~]$ echo $PATH 
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atgu
 igu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bi
 n 

(3)脚本实现
(a)在/home/atguigu/bin 目录下创建 xsync 文件

[atguigu@hadoop102 opt]$ cd /home/atguigu 
[atguigu@hadoop102 ~]$ mkdir bin 
[atguigu@hadoop102 ~]$ cd bin 
[atguigu@hadoop102 bin]$ vim xsync 

在该文件中编写如下代码

#!/bin/bash 
#1. 判断参数个数 
if [ $# -lt 1 ] 
then 
echo Not Enough Arguement! 
exit; 
fi 
#2. 遍历集群所有机器 
for host in hadoop102 hadoop103 hadoop104 
do 
    echo ====================  $host  ==================== 
    #3. 遍历所有目录,挨个发送 
 
    for file in $@ 
    do 
        #4. 判断文件是否存在 
        if [ -e $file ] 
            then 
                #5. 获取父目录 
                pdir=$(cd -P $(dirname $file); pwd) 
 
                #6. 获取当前文件的名称 
                fname=$(basename $file) 
                ssh $host "mkdir -p $pdir" 
                rsync -av $pdir/$fname $host:$pdir 
            else 
                echo $file does not exists! 
        fi 
    done 
done 

(b)修改脚本 xsync 具有执行权限

[atguigu@hadoop102 bin]$ chmod +x xsync 

(c)测试脚本

[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin 

(d)将脚本复制到/bin中,以便全局调用

[atguigu@hadoop102 bin]$ sudo cp xsync /bin/ 

(e)同步环境变量配置(root所有者)

[atguigu@hadoop102 ~]$ sudo ./bin/xsync 
/etc/profile.d/my_env.sh 

==注意:如果用了sudo,那么xsync一定要给它的路径补全。 ==
让环境变量生效

[atguigu@hadoop103 bin]$ source /etc/profile 
[atguigu@hadoop104 opt]$ source /etc/profile

2.3 SSH无密登录配置

1)配置ssh

(1)基本语法
ssh另一台电脑的IP地址
(2)ssh连接时出现Host key verification failed的解决方法

[atguigu@hadoop102 ~]$ ssh hadoop103 

➢ 如果出现如下内容

Are you sure you want to continue connecting (yes/no)? 

➢ 输入yes,并回车
(3)退回到hadoop102

[atguigu@hadoop103 ~]$ exit 

2)无密钥配置

(1)免密登录原理
在这里插入图片描述
(2)生成公钥和私钥

[atguigu@hadoop102 .ssh]$ pwd 
/home/atguigu/.ssh 
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa 

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上

[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102 
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103 
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104 

==注意:
还需要在hadoop103 上采用 atguigu 账号配置一下无密登录到 hadoop102、hadoop103、
hadoop104 服务器上。
还需要在hadoop104 上采用 atguigu 账号配置一下无密登录到 hadoop102、hadoop103、
hadoop104 服务器上。
还需要在hadoop102 上采用 root 账号,配置一下无密登录到hadoop102、hadoop103、
hadoop104; ==

3).ssh 文件夹下(~/.ssh)的文件功能解释

known_hosts记录ssh访问过计算机的公钥(public key)
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过的无密登录服务器公钥

2.4 集群配置

1)集群部署规划

注意:
➢ NameNode和SecondaryNameNode 不要安装在同一台服务器
➢ ResourceManager 也很消耗内存,不要和NameNode、SecondaryNameNode配置在
同一台机器上。

NULLhadoop102hadoop103hadoop104
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager

2)配置文件说明

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认
配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:
在这里插入图片描述
(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在
$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。

3)配置集群

(1)核心配置文件
配置core-site.xml

[atguigu@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop
[atguigu@hadoop102 hadoop]$ vim core-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
    <!-- 指定NameNode的地址 --> 
    <property> 
        <name>fs.defaultFS</name> 
        <value>hdfs://hadoop102:8020</value> 
    </property> 
 
    <!-- 指定hadoop数据的存储目录 --> 
    <property> 
        <name>hadoop.tmp.dir</name> 
        <value>/opt/module/hadoop-3.1.3/data</value> 
    </property> 
 
    <!-- 配置HDFS网页登录使用的静态用户为atguigu --> 
    <property> 
        <name>hadoop.http.staticuser.user</name> 
        <value>atguigu</value> 
    </property> 
</configuration> 

(2)HDFS配置文件
配置hdfs-site.xml

[atguigu@hadoop102 hadoop]$ vim hdfs-site.xml 

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
 <!-- nn web端访问地址--> 
 <property> 
        <name>dfs.namenode.http-address</name> 
        <value>hadoop102:9870</value> 
    </property> 
 <!-- 2nn web端访问地址--> 
    <property> 
        <name>dfs.namenode.secondary.http-address</name> 
        <value>hadoop104:9868</value> 
    </property> 
</configuration> 

(3)YARN配置文件
配置yarn-site.xml

[atguigu@hadoop102 hadoop]$ vim yarn-site.xml 

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <!-- 指定MR走shuffle --> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
 
    <!-- 指定ResourceManager的地址--> 
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>hadoop103</value> 
    </property> 
 
    <!-- 环境变量的继承 --> 
    <property> 
        <name>yarn.nodemanager.env-whitelist</name> 
        
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
 NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
 RED_HOME</value> 
    </property> 
</configuration>

(4)MapReduce配置文件
配置mapred-site.xml

[atguigu@hadoop102 hadoop]$ vim mapred-site.xml 

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
 <!-- 指定MapReduce程序运行在Yarn上 --> 
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> 
    </property> 
</configuration> 

4)在集群上分发配置好的Hadoop配置文件

[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop
3.1.3/etc/hadoop/ 

5)去103和104上查看文件分发情况

[atguigu@hadoop103 ~]$ cat /opt/module/hadoop
3.1.3/etc/hadoop/core-site.xml 
[atguigu@hadoop104 ~]$ cat /opt/module/hadoop
3.1.3/etc/hadoop/core-site.xml 

2.5 群起集群

1)配置workers

[atguigu@hadoop102 hadoop]$ vim /opt/module/hadoop
3.1.3/etc/hadoop/workers 

在该文件中增加如下内容:

hadoop102
hadoop103
hadoop104

==注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。 ==
同步所有节点配置文件

[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc 

2)启动集群

(1)如果集群是第一次启动,需要在hadoop102 节点格式化NameNode(注意:格式
化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找
不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停
止namenode 和 datanode 进程,并且要删除所有机器的data 和 logs 目录,然后再进行格式
化。

[atguigu@hadoop102 hadoop-3.1.3]$ hdfs namenode -format 

(2)启动HDFS

[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh 

(3)在配置了ResourceManager的节点(hadoop103)启动YARN

[atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh 

(4)Web端查看HDFS的NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看HDFS上存储的数据信息
(5)Web端查看YARN的ResourceManager
(a)浏览器中输入:http://hadoop103:8088
(b)查看YARN上运行的Job信息

3)集群基本测试

(1)上传文件到集群
➢ 上传小文件

[atguigu@hadoop102 ~]$ hadoop fs -mkdir /input 
[atguigu@hadoop102 
~]$ 
hadoop 
$HADOOP_HOME/wcinput/word.txt /input 
fs -put 

➢ 上传大文件

[atguigu@hadoop102 ~]$ hadoop fs -put  /opt/software/jdk-8u212
linux-x64.tar.gz  / 

(2)上传文件后查看文件存放在什么位置
➢ 查看HDFS文件存储路径

[atguigu@hadoop102 subdir0]$ pwd 
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598
192.168.10.102-1610603650062/current/finalized/subdir0/subdir0

➢ 查看HDFS在磁盘存储文件内容

[atguigu@hadoop102 subdir0]$ cat blk_1073741825 
hadoop yarn 
hadoop mapreduce  
atguigu 
atguigu 

(3)拼接

  • -rw-rw-r–. 1 atguigu atguigu 134217728 5 月 23 16:01 blk_1073741836
  • -rw-rw-r–. 1 atguigu atguigu
    1048583 5 月 23 16:01 blk_1073741836_1012.meta
  • -rw-rw-r–. 1 atguigu atguigu 63439959 5 月 23 16:01 blk_1073741837
  • -rw-rw-r–. 1 atguigu atguigu 495635 5 月 23 16:01 blk_1073741837_1013.meta
[atguigu@hadoop102 subdir0]$ cat blk_1073741836>>tmp.tar.gz 
[atguigu@hadoop102 subdir0]$ cat blk_1073741837>>tmp.tar.gz 
[atguigu@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz 

(4)下载

[atguigu@hadoop104 software]$ hadoop fs -get /jdk-8u212-linux
x64.tar.gz ./ 

(5)执行wordcount程序

[atguigu@hadoop102 
hadoop-3.1.3]$ 
hadoop 
jar 
share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar 
wordcount /input /output

题外话

我整理了一些资源,如果你也对Python和大数据感兴趣,关注下方公众号免费提取资料。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

基于Springboot 猪场管理系统-计算机毕设 附源码11779

Springboot 猪场管理系统 摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对猪场管理系统等问题…

Linux--获取子进程退出码的代码

#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/wait.h>int main (void) {pid_t id fork();if (id 0) {int cnt 5; // 循环5次// childwhile (1) {// 五秒…

【Linux命令200例】paste一个用于合并文件的命令行实用工具

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入…

[安洵杯-不是文件上传]代码审计+文件上传+insert注入

文章目录 [安洵杯-不是文件上传]代码审计文件上传insert注入mysql特性 [安洵杯-不是文件上传]代码审计文件上传insert注入 首页是一个文件上传页面 测试只能上传图片&#xff0c;是白名单 题目给出了源码&#xff1a; upload.php <!DOCTYPE html> <html> <h…

00|Oracle学习(卸载、安装、创建删除数据库/数据库实例)

Oracle 12c卸载 1 如果数据库配置了自动存储管理&#xff08;ASM&#xff09;先删除聚类同步服务CSS。DOS指令&#xff1a; localconfig delete2 进入“任务管理器”&#xff08;ctrlshiftEsc&#xff09;&#xff0c;将所有运行中的Oracle进程全关闭。 3 在开始菜单中&#…

Jupyter Notebook 7重磅发布,新增多个特性!

本文分享Jupyter Notebook大版本v7.0.0更新亮点&#xff0c;及简单测试&#xff01; 近日&#xff0c;Jupyter Notebook大版本v7.0.0更新&#xff0c;Jupyter Notebook 7基于JupyterLab&#xff0c;因此它包含了过去几年JupyterLab中添加的许多新功能和改进&#xff0c;部分亮…

Python异步编程|ASGI 与 Django(附源码)

异步服务网关接口&#xff08;Asynchronous Server Gateway Interface&#xff0c;ASGI&#xff09;秉承WSGI统一网关接口原则&#xff0c;在异步服务、框架和应用之间提供一个标准接口&#xff0c;同时兼容WSGI。 01、ASGI ASGI是根据统一接口的思想重新设计的新标准&#xf…

【iOS】—— UIKit相关问题

文章目录 UIKit常用的UIKit组件懒加载的优势 CALayer和UIView区别关系 UITableViewUITableView遵循的两个delegate以及必须实现的方法上述四个必须实现方法执行顺序其他方法的执行顺序&#xff1a; UICollectionView和UITableView的区别UICollectionViewFlowLayout和UICollecti…

谐音标注外语发音的学习方式,早该终结了!

语言学习的热潮席卷全国&#xff0c;在多数80、90后记忆里尤为深刻&#xff0c;部分对外语过敏的同学&#xff0c;就像溺水的鱼&#xff0c;使劲扑棱也无济于事&#xff0c;难受但是死不了&#xff0c;在懵懂的年纪就被“摧残”了整个青春。 记忆中遇到记不住读音的单词&#x…

一文了解Angular、React 和 Vue.js的区别

前端开发人员在开始一个新项目时首先要回答的问题是&#xff1a;我应该选择哪个框架&#xff1f; 哪个框架更适合我的需求&#xff1f; 在本文中&#xff0c;我们将向您快速概述当前使用的最常见的前端框架&#xff0c;旨在帮助您选择最能满足您需求的框架。这些框架是 Angular…

1400*B. Swaps(排序)

Example input 3 2 3 1 4 2 3 5 3 1 2 4 6 5 7 5 9 1 3 2 4 6 10 8 output 0 2 3 题意&#xff1a; 每次交换相邻的两个数&#xff0c;问两个数列共同交换多少次&#xff0c;可以使得第一个数列的首个数字小于第二个数列的首个数字&#xff0c;求最少的交换次数。 解析&am…

springBootAdmin监控内存日志堆栈

概述 我的spring-boot版本&#xff1a;2.7.7 我的spring-boot-admin版本&#xff1a;2.7.10 jdk:1.8 平时测试环境服务不多的情况下&#xff0c;用linux命令看下日志和堆栈也不麻烦。但是要是服务数量上来了&#xff0c;有10几个服务这个时候用命令看已经有点麻烦了。特别是对…

安装了pyintaller后出现:‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

2023年7月31日&#xff0c;周一上午 我昨天晚上也遇到了这个问题&#xff0c;后来解决了 目录 出错原因解决方法怎么找到Scripts文件夹 出错原因 出现这个错误是因为你没给python的Scripts文件夹添加环境变量&#xff0c; Scripts存放着pip安装包时产生的可执行文件。 解决…

线性代数的学习和整理2:线性代数的基础知识(整理ing)

目录 0 写在前面的话 网上推荐的线性代数的课程 1 线性代数和矩阵的各种概念 1.1 各种逻辑图 2 关于线性代数入门的各种灵魂发问 2.1 什么是线性&#xff0c;什么是线性相关 &#xff1f; 为什么叫线性变换&#xff1f; 为什么叫线性代数&#xff1f; 2.2 线性代数是人造…

轻量级的工作流引擎:提质增效+灵活简便+拖拽式设计

低代码开发市场现在正是蓬勃发展的时期&#xff0c;由于低代码技术平台能够为当代企业节省很多宝贵时间&#xff0c;实现提质增效的办公效率&#xff0c;因此获得了大家的认可与喜爱。其中&#xff0c;工作流引擎是当中的主要功能&#xff0c;其拖拽式设计、易操作等优势特点也…

Linux 学习记录60(ARM篇)

Linux 学习记录60(ARM篇) 本文目录 Linux 学习记录60(ARM篇)一、SPI总线1. 概念2. 硬件连接 二、SPI总线协议三、SPI总线通信模式四、对比IIC总线和SPI总线1. 相同点2. 不同点 思维导图 一、SPI总线 1. 概念 1、SPI总结是Motorola首先提出的全双工三线/四线同步串行总线 2、采…

财务管理软件:推动企业数字化转型的关键驱动力

数字化转型是当下热议的话题&#xff0c;如今许多企业纷纷走向了数字化转型的道路。到底什么是数字化转型呢&#xff1f;财务管理软件如何帮助企业实现数字化转型&#xff1f; 什么是数字化转型&#xff1f; 数字化转型的核心要义是要将适应物质经济的发展方式转变为适应数字经…

二十、像素流送,软件即游戏,SaaG时代到来

有了像素流送插件,就可以在远程计算机上运行虚幻引擎应用,并将其渲染效果和音频流送到任意平台的现代网页浏览器上。此外,还可以在浏览器上与流互动,遥控虚幻引擎应用。 1、启用像素流插件 虚幻编辑器的主菜单中选择 编辑(Edit) > 插件(Plugins),在图像(Graph…

各大互联网公司面经分享:Java 全栈知识 +1500 道大厂面试真题

这篇文章给大家分享一下我遇到的一些质量较高的面试经历&#xff0c;具体经过就不多说了&#xff0c;就把面试题打出来供各位读者老哥参考如有不全的地方&#xff0c;各位海涵。 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最长的) lru 算法的实现 设计一…

第二季度财报超预期,利润率大幅提高,Meta股价将进一步上涨

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;Meta&#xff08;META&#xff09;公布了强劲的第二季度财报&#xff0c;超出市场预期&#xff0c;利润率也大幅提高&#xff0c;导致其股价上涨了5%。 &#xff08;2&#xf…