大数据技术原理(二):搭建hadoop伪分布式集群这一篇就够了

news2024/11/19 11:21:27

(实验一 搭建hadoop伪分布式

--------------------------------------------------------------------------------------------------------------------------------

一、实验目的

1.理解Hadoop伪分布式的安装过程

实验内容涉及Hadoop平台的搭建和配置,旨在提高对大数据处理框架的理解和实践能力。通过完成本实验,将能够独立完成Hadoop伪分布式环境的安装和配置。

2.学会JDK安装和编译hadoop源码包

同时,通过手动编译hadoop源码包,还将能够更深入地了解Hadoop的内部原理和工作机制,通过解决问题并不断思考,具备根据需求进行扩展和定制的能力。

3.学会Hadoop伪分布式安装和参数配置

修改Hadoop的配置文件,包括core-site.xml、hdfs-site.xml等,根据实际需求设置相应的参数,启动Hadoop集群服务,检查各个节点的运行状态是否正常。

二、实验环境

1.VMware WorkStation Pro 16

2.Jdk 1.8.0_241

3.hadoop2.7.5

三、实验原理

1.Hadoop架构概述

Hadoop是一个开源的分布式计算框架,主要用于存储和处理大规模数据集。它采用了分布式存储和计算的方式,将大型数据集分割成多个数据块,并将这些数据块分布式存储到多台计算机节点上。

2.伪分布式的安装

伪分布式实验是在单台计算机上模拟多个Hadoop节点的环境。通过在一台计算机上安装Hadoop软件并进行适当的配置,可以模拟一个包含多个节点的Hadoop集群,并让这些节点之间相互通信和协作。


四、实验步骤与实验结果

(一)服务器基础环境准备

1.修改好虚拟机主机名

vi /etc/hostname,将其改为node1

2.查看虚拟机IP地址

ifconfig,查看显示IP地址为192.168.88.100

3.修改主机名和IP的映射关系

vim /etc/hosts,输入:192.168.88.100 node1

与此同时,同步修改windows的C:\Windows\System32\drivers\etc\hosts文件

4.用主机名ping通:宿主机IP和外网IP

ping 192.168.88.100
ping www.baidu.com

5.关闭虚拟机防火墙和windows防火墙
(1)关闭虚拟机防火墙

#查看防火墙状态

systemctl status firewalld.service

#关闭防火墙

systemctl stop firewalld.service

#关闭防火墙开机启动

systemctl disable firewalld.service

(2)关闭windows防火墙

(二)在虚拟机上安装JDK

1.上传jdk

rz jdk-8u65-linux-x64.tar.gz,需要安装rz命令(yum install -y lrzsz)

2.解压jdk

tar -zxvf jdk-8u65-linux-x64.tar.gz -C /export/server

其中,tar命令参数解释如下:

-z:使用解压方式

-x:解压gz的文件

-v:显示解压信息

-f:带解压文件名

-C:指定解压路径

3.将java添加到环境变量中

vim /etc/profile

#在文件最后添加

export JAVA_HOME=/export/server/jdk1.8.0_241

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/

4.刷新配置文件

source /etc/profile

5.查看jdk安装情况

java -version

(三)重新编译hadoop

1.官方网站下载源码包

Index of /dist

2.下载对应版本编译包

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

hadoop-2.7.5-src.tar.gz      //source 源码包

hadoop-2.7.5.tar.gz         //官方编译后安装包

3.进行hadoop源码包编译

在源码的根目录下有编译相关的文件BUILDING.txt 指导如何编译。

使用maven进行编译 联网jar.

4.编译环境进行目录创建

mkdir -p /export/server

5.安装编译相关的依赖

yum install gcc gcc-c++ make autoconf automake libtool curl lzo-devel zlib-devel openssl openssl-devel ncurses-devel snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst zlib -y

yum install -y doxygen cyrus-sasl* saslwrapper-devel*

6.手动安装cmake

#yum卸载已安装cmake 版本低

yum erase cmake

#解压

tar zxvf CMake-3.19.4.tar.gz

#编译安装

cd /export/server/CMake-3.19.4

./configure

make && make install

#验证

[root@node1 ~]# cmake -version

cmake version 3.19.4

#如果没有正确显示版本 请断开SSH连接 重写登录

7.手动安装snappy

#卸载已经安装的

rm -rf /usr/local/lib/libsnappy*

rm -rf /lib64/libsnappy*

#上传解压

tar zxvf snappy-1.1.3.tar.gz

#编译安装

cd /export/server/snappy-1.1.3

./configure

make && make install

#验证是否安装

[root@node1 snappy-1.1.3]# ls -lh /usr/local/lib |grep snappy

-rw-r--r-- 1 root root 511K Nov  4 17:13 libsnappy.a

-rwxr-xr-x 1 root root  955 Nov  4 17:13 libsnappy.la

lrwxrwxrwx 1 root root   18 Nov  4 17:13 libsnappy.so -> libsnappy.so.1.3.0

lrwxrwxrwx 1 root root   18 Nov  4 17:13 libsnappy.so.1 -> libsnappy.so.1.3.0

-rwxr-xr-x 1 root root 253K Nov  4 17:13 libsnappy.so.1.3.0

8.安装maven

#解压安装包

tar zxvf apache-maven-3.5.4-bin.tar.gz

#配置环境变量

vim /etc/profile

export MAVEN_HOME=/export/server/apache-maven-3.5.4

export MAVEN_OPTS="-Xms4096m -Xmx4096m"

export PATH=:$MAVEN_HOME/bin:$PATH

source /etc/profile

#验证是否安装成功

[root@node1 ~]# mvn -v

Apache Maven 3.5.4

#添加maven 阿里云仓库地址 加快国内编译速度

vim /export/server/apache-maven-3.5.4/conf/settings.xml

<mirrors>

     <mirror>

           <id>alimaven</id>

           <name>aliyun maven</name>

           <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

           <mirrorOf>central</mirrorOf>

      </mirror>

</mirrors>

9.安装ProtocolBuffer 3.7.1

#卸载之前版本的protobuf

#解压

tar zxvf protobuf-3.7.1.tar.gz

#编译安装

cd /export/server/protobuf-3.7.1

./autogen.sh

./configure

make && make install

#验证是否安装成功

[root@node1 protobuf-3.7.1]# protoc --version

libprotoc 3.7.1

10.编译hadoop

#上传解压源码包

tar zxvf hadoop-2.7.5-src.tar.gz

#编译

cd /root/hadoop-2.7.5-src

mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

#参数说明:

Pdist,native :把重新编译生成的hadoop动态库;

DskipTests :跳过测试

Dtar :最后把文件以tar打包

Dbundle.snappy :添加snappy压缩支持【默认官网下载的是不支持的】

Dsnappy.lib=/usr/local/lib :指snappy在编译机器上安装后的库路径

11.编译后安装包路径

/root/hadoop-2.7.5-src/hadoop-dist/target

(四)安装hadoop伪分布式

1.上传Hadoop安装包

hadoop-2.7.5-Centos7-64-with-snappy.tar.gz

tar zxvf hadoop-2.7.5-Centos7-64-with-snappy.tar.gz -C /export/server/

2.切换到配置文件目录

cd /export/server/hadoop-2.7.5/etc/hadoop

3.修改hadoop-env.sh

export JAVA_HOME=/export/server/jdk1.8.0_241

#文件最后添加

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

4.修改core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://node1:8020</value>

</property>

<!-- 设置Hadoop本地保存数据路径 -->

<property>

    <name>hadoop.tmp.dir</name>

    <value>/export/data/hadoop-2.7.5</value>

</property>

<!-- 设置HDFS web UI用户身份 -->

<property>

    <name>hadoop.http.staticuser.user</name>

    <value>root</value>

</property>

<!-- 整合hive 用户代理设置 -->

<property>

    <name>hadoop.proxyuser.root.hosts</name>

    <value>*</value>

</property>

<property>

    <name>hadoop.proxyuser.root.groups</name>

    <value>*</value>

</property>

5.修改hdfs-site.xml

<configuration>

<!-- 指定SecondaryNameNode的主机和端口 -->

<property>

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

<value>node1:50090</value>

</property>

<!-- 指定namenode的页面访问地址和端口 -->

<property>

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

<value>node1:50070</value>

</property>

<!-- 指定namenode元数据的存放位置 -->

<property>

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

<value>file:///export/server/hadoop-2.7.5/hadoopDatas/namenodeDatas</value>

</property>

<!--  定义datanode数据存储的节点位置 -->

<property>

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

<value>file:///export/server/hadoop-2.7.5/hadoopDatas/datanodeDatas</value>

</property>

<!-- 定义namenode的edits文件存放路径 -->

<property>

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

<value>file:///export/server/hadoop-2.7.5/hadoopDatas/nn/edits</value>

</property>

<!-- 配置检查点目录 -->

<property>

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

<value>file:///export/server/hadoop-2.7.5/hadoopDatas/snn/name</value>

</property>

<property>

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

<value>file:///export/server/hadoop-2.7.5/hadoopDatas/dfs/snn/edits</value>

</property>

<!-- 文件切片的副本个数-->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<!-- 设置HDFS的文件权限-->

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

<!-- 设置一个文件切片的大小:128M-->

<property>

<name>dfs.blocksize</name>

<value>134217728</value>

</property>

<!-- 指定DataNode的节点配置文件 -->

<property>

 <name> dfs.hosts </name>

 <value>/export/server/hadoop-2.7.5/etc/hadoop/slaves </value>

</property>

</configuration>

6.修改mapred-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->

<property>

  <name>mapreduce.framework.name</name>

  <value>yarn</value>

</property>

<!-- MR程序历史服务器端地址 -->

<property>

  <name>mapreduce.jobhistory.address</name>

  <value>node1:10020</value>

</property>

<!-- 历史服务器web端地址 -->

<property>

  <name>mapreduce.jobhistory.webapp.address</name>

  <value>node1:19888</value>

</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>

7.修改yarn-site.xml

<!-- 设置YARN集群主角色运行机器位置 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>node1</value>

</property>

<property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>

</property>

<!-- 是否将对容器实施物理内存限制 -->

<property>

    <name>yarn.nodemanager.pmem-check-enabled</name>

    <value>false</value>

</property>

<!-- 是否将对容器实施虚拟内存限制。 -->

<property>

    <name>yarn.nodemanager.vmem-check-enabled</name>

    <value>false</value>

</property>

<!-- 开启日志聚集 -->

<property>

  <name>yarn.log-aggregation-enable</name>

  <value>true</value>

</property>

<!-- 设置yarn历史服务器地址 -->

<property>

    <name>yarn.log.server.url</name>

    <value>http://node1:19888/jobhistory/logs</value>

</property>

<!-- 保存的时间7天 -->

<property>

  <name>yarn.log-aggregation.retain-seconds</name>

  <value>604800</value>

</property>

8.修改slaves文件(3.0版本之后更名为works文件)

cd /export/server/hadoop-2.7.5/etc/hadoop
vim slaves       // 将主机名node1填进去

9.将hadoop添加到环境变量

vim /etc/proflie

export HADOOP_HOME=/export/server/hadoop-2.7.5

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

source /etc/profile

10.首次启动hadoop(格式化namenode)

hdfs namenode -format

#切记不可以多次格式化

(五)hadoop安装后初体验

1.启动hadoop软件

# 切换到启动脚本文件目录
cd /export/server/hadoop-2.7.5/sbin

# 运行一键启动hadoop服务的命令
./start-all.sh

# 查看节点上的服务情况
jps

2.启动hdfs的UI界面

# 在浏览器上输入
node1:50070

3.在hdfs上进行文件操作

# linux终端上进行命令行

hadoop fs -ls /

hadoop fs -mkdir /li-qi-liang

4.运行mapreduce程序

# 准备wordcount.txt文件,文件内容如下:

hello hello

world world

hadoop hadoop

hello world

hello flume

hadoop hive

hive kafka

flume storm

hive oozie

# 在hdfs上创建文件目录

hadoop fs -mkdir -p /wordcount/input

hadoop fs -put ./wordcount.txt /wordcount/input

# 切换到hadoop自带的mapreduce的jar包目录

cd /export/server/hadoop-2.7.5/share/hadoop/mapreduce

# 执行wordcount的mapreduce计算

hadoop jar hadoop-mapreduce-examples-2.7.5.jar wordcount

 /wordcount/input /wordcount/output

第一个参数:wordcount表示执行单词统计

第二个参数:指定输入文件的路径

第三个参数:指定输出结果的路径(该路径不能已存在)

5.关闭hadoop软件

# 切换到启动脚本文件目录
cd /export/server/hadoop-2.7.5/sbin

# 运行一键关闭hadoop服务的命令
./stop-all.sh
# 查看节点上的服务情况
jps

5.实验完毕,关闭虚拟机


# 方式一:

shutdown -h now


# 方式二:


init 0


# 方式三:


VMware上点击关机


五、实验总结

(一)发现问题与解决问题

1.编译hadoop出现警告消息

根据报错信息来看,编译hadoop过程中出现了找不到SASL库的错误。

解决方法如下:


yum install -y doxygen cyrus-sasl* saslwrapper-devel*

2.本地上传文件到linux上出现乱码

根据网上资料显示,当使用rz命令上传文件出现乱码时,可以采取添加参数。

解决方法如下:

输入rz -be  即可解决

rz命令的参数说明:

-a, –ascii

-b, –binary 用binary的方式上传下载,不解释字符为 ascii

-e, –escape 强制escape 所有控制字符,比如 Ctrl+x,DEL 等

-ary –o-sync

-a 表示使用ascii码格式传输文件,如果是Dos格式的文件,会转换为unix格式

-r 使用 Crash recovery mode. 即文件传输中断会重传

-y 表示文件已存在的时候会覆盖

–o-sync 采用同步写模式,以处理从缓存写到磁盘时中断丢失的情况

3.使用vim编辑器编辑文件粘贴失效

当使用vim编辑器进行粘贴配置文件信息时,常常粘贴的内容变成注释且很难取消,原因是vim编辑器没有处于粘贴模式(paste)。

解决方法如下:

令vim编辑器处于命令模式(ESC键+冒号):set paste

当粘贴结束后,set nopaste即可退出该模式。

4.伪分布式的集群时间不统一

当出现时间不统一的情况下,需要与阿里云服务器统一时间。

解决方法如下:

集群同步时间命令:ntpdate ntp5.aliyun.com

5.集群安全模式下不能修改删除

伪分布式集群误操作使得处于安全模式,需要退出安全模式才可以进行文件操作。

解决方法如下:

hadoop dfsadmin -safemode leave

6.hadoop中hdfs的9870端口用不了

通过查看版本差异,发现hadoop3.0以下的版本中默认端口号不是9870端口

解决方法如下:

node1:50070


(二)总结实验与思考感悟

搭建Hadoop伪分布式集群是学习和理解Hadoop分布式计算框架的重要一步。

1.规划和准备

在开始搭建伪分布式集群之前,需要充分规划和准备工作。首先,了解Hadoop的基本概念和架构,对其运行原理有清晰的理解。然后,确定使用的操作系统、网络设置和硬件配置。确保操作系统满足Hadoop的最低要求,并且网络配置和硬件资源能够支持集群的需求。

2.安装和配置Hadoop

根据操作系统选择适当版本的Hadoop,下载并解压安装包。在安装过程中,需要进行一些关键配置,例如修改核心配置文件(如hadoop-env.sh、core-site.xml、hdfs-site.xml等),指定必要的路径、端口、日志目录等。此外,还要设置SSH免密登录,以便节点之间能够相互通信。在此过程中,需要仔细阅读官方文档,并参考示例配置进行调整。

3.单节点测试

在搭建伪分布式集群之前,可以先在单个节点上进行测试和调试。这样可以确保Hadoop的基本功能正常工作。在单节点测试中,需要验证HDFS文件系统的正常操作(如上传、下载、移动文件等),以及MapReduce任务的执行情况。通过这些测试可以熟悉Hadoop的命令和工作流程,并排查可能出现的问题。

4.集群部署

完成单节点测试后,可以将配置好的Hadoop复制到其他节点上,以搭建伪分布式集群。确保所有节点都有相同的软件版本和配置文件。在部署过程中,需要注意各个节点之间的通信,包括网络连接、防火墙设置、主机名解析等。确保集群节点之间能够互相访问,并且能够正常启动和停止Hadoop服务。

5.集群测试和优化

完成集群部署后,进行一系列的测试和性能优化工作。可以使用一些标准的Hadoop测试任务(如WordCount、Sort等)对集群进行压力测试。观察任务的执行时间、资源占用情况、数据分布等指标,根据结果进行性能调优,包括调整配置参数、增加节点、优化数据存储和计算等方面。此外,还应进行故障模拟和容错测试,确保集群在部分节点故障的情况下依然能够正常运行。

6.学习和扩展

搭建伪分布式集群不仅是为了实现一个运行的Hadoop环境,更重要的是学习和理解分布式计算的核心概念和机制。在搭建过程中,要积极探索和研究Hadoop的原理,理解其如何管理数据、调度任务、处理故障等。此外,还可以尝试扩展集群规模,增加节点数量,进行更大规模的数据处理和并行计算,以进一步提升对Hadoop的理解。

总结起来,搭建Hadoop伪分布式集群是一个学习和实践的过程。需要有足够的耐心和细心,仔细阅读官方文档和参考资料,并能够灵活应对可能出现的问题和挑战。通过这个过程,不仅可以构建一个可用的分布式计算环境,还能够深入理解Hadoop的工作原理和分布式系统的设计思想。

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

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

相关文章

有史以来最大的苹果手机?iPhone 16屏幕模组大升级

随着科技的不断进步&#xff0c;用户对于手机屏幕的需求也在不断提高。从最初的触控体验到如今的高分辨率、高刷新率&#xff0c;屏幕技术的发展日新月异。而据最新的消息显示&#xff0c;即将到来的iPhone 16系列将在屏幕模组上进行一次重大升级&#xff0c;有望成为有史以来最…

建模:Maya

一、常用按键 1、alt 左键 —— 环绕查看 2、alt 中键 —— 拖动模型所在面板 3、空格 —— 进入三视图模式&#xff1b;空格 左键按住拖动 —— 切换到对应视图 二、骨骼归零 1、T Pose 旋转模式&#xff0c;点击模型&#xff0c;摆好T姿势即可 2、复制模型设置200距离…

c++ queue容器

在C标准库中&#xff0c;std::queue 是一个容器适配器&#xff0c;它提供了队列&#xff08;FIFO - First In First Out&#xff09;的数据结构。队列是一种特殊的线性数据结构&#xff0c;只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端…

做抖音小店找带货达人合作为什么不成功呢?

大家好&#xff0c;我是喷火龙。 做抖音小店&#xff0c;和带货达人合作的模式&#xff0c;流量是最稳定的&#xff0c;爆单几率也是最大的&#xff0c;也是最适合新手商家的&#xff0c;想和带货达人合作&#xff0c;那肯定是得让达人带你的产品的。 但有些朋友把样品寄给达…

【Linux】-Linux文件的上传和下载、压缩和解压[9]

目录 前言 一、上传和下载 1、使用finalshell对Linux系统进行上传下载 2、rz、sz命令 二、解压和压缩 1、压缩格式 2、tar命令压缩 3、tar命令压缩 4、zip命令压缩文件 5、unzip命令解压文件 前言 在Linux系统中&#xff0c;文件的上传和下载、压缩和解压是非常重要…

面向浏览器端免费开源的三维可视化编辑器,包含BIM轻量化,CAD解析预览等特色功能。

ES 3DEditor &#x1f30d;Github地址 https://github.com/mlt131220/ES-3DEditor &#x1f30d;在线体验 https://editor.mhbdng.cn/#/ 基于vue3与ThreeJs&#xff0c;具体查看Doc 主要功能&#xff1a; 模型导入展示&#xff0c;支持OBJ、FBX、GLTF、GLB、RVT、IFC、SEA、3…

FedSyn: Synthetic Data Generation using Federated Learning

arxiv2022,没找到是哪个刊物的,是没投中吗? 这篇是用GAN做数据生成,每个client都训练一个生成器,加噪声传到server端聚合,实验是衡量生成图片的质量。 论文地址:arxiv code:没找到 贡献 提出了提出了一种新颖的方法(FedSyn ),将联邦学习、使用 GAN的合成数据生成…

使用 ASM 修改字段类型,解决闪退问题

问题 我的问题是什么&#xff1f; 在桥接类 UnityBridgeActivity 中处理不同 unity 版本调用 mUnityPlayer.destroy(); 闪退问题。 闪退日志如&#xff1a; 闪退日志说在 UnityBridgeActivity中找不到类型为 UnityPlayer 的属性 mUnityPlayer。 我们知道&#xff0c;Android…

深度学习之Pytorch框架垃圾分类智能识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着城市化进程的加快和人们环保意识的提高&#xff0c;垃圾分类已成为城市管理的重要一环。然而&am…

【Linux学习】进程

下面是有关进程的相关介绍&#xff0c;希望对你有所帮助&#xff01; 小海编程心语录-CSDN博客 目录 1. 进程的概念 1.1 进程与程序 1.2 进程号 2. 进程的状态 2.1 fork创建子进程 2.2 父子进程间的文件共享 3. 进程的诞生与终止 3.1 进程的诞生 3.2 进程的终止 1. 进…

[4]CUDA中的向量计算与并行通信模式

CUDA中的向量计算与并行通信模式 本节开始&#xff0c;我们将利用GPU的并行能力&#xff0c;对其执行向量和数组操作讨论每个通信模式&#xff0c;将帮助你识别通信模式相关的应用程序&#xff0c;以及如何编写代码 1.两个向量加法程序 先写一个通过cpu实现向量加法的程序如…

算法刷题day52:区间DP

目录 引言一、石子合并二、环形石子合并三、能量项链四、加分二叉树 引言 关于区间DP&#xff0c;我其实觉得核心思想就是把一个区间拆分为任意两个区间&#xff0c;相当于是模拟枚举全部这种区间组合的过程&#xff0c;然后从中寻求最优解&#xff0c;本质上的思想不难&#…

PLC工程师按这个等级划分是否靠谱?

在工业自动化领域&#xff0c;PLC工程师扮演着至关重要的角色&#xff0c;他们负责构建、维护自动化系统&#xff0c;推动工业4.0进程的发展。成为一名优秀的PLC工程师需要经历不同境界的发展阶段&#xff0c;每个阶段都对应着不同的技能要求和责任。以下是PLC工程师的六种级别…

必应bing国内推广开户,全方位必应广告开户流程介绍!

在所有获客渠道中&#xff0c;搜索引擎广告成为企业扩大品牌影响力、精准触达目标客户的关键途径之一。作为全球领先的搜索引擎之一&#xff0c;必应&#xff08;Bing&#xff09;拥有庞大的用户群体和独特的市场优势&#xff0c;是企业不可忽视的营销阵地。云衔科技&#xff0…

声音转文本(免费工具)

声音转文本&#xff1a;解锁语音技术的无限可能 在当今这个数字化时代&#xff0c;信息的传递方式正以前所未有的速度进化。从手动输入到触控操作&#xff0c;再到如今的语音交互&#xff0c;技术的发展让沟通变得更加自然与高效。声音转文本&#xff08;Speech-to-Text, STT&…

微服务:利用RestTemplate实现远程调用

打算系统学习一下微服务知识&#xff0c;从今天开始记录。 远程调用 调用order接口&#xff0c;查询。 由于实现还未封装用户信息&#xff0c;所以为null。 下面我们来使用远程调用用户服务的接口&#xff0c;然后封装一下用户信息返回即可。 流程图 配置类中注入RestTe…

SAP销售手工发票录入

销售手工发票录入用于处理未启用 SD 模块标准处理流程的零星销售业务。 科目设置 收入类科目&#xff1a;设置税务类型&#xff0c;允许含税/不含税过账应收账款: 留空。其他应收款的设置类似 编辑选项设置 在中国&#xff0c;编辑选项一般设置为基于总额计税。使用事务码 FB…

Jenkins 构建 Web 项目:项目和服务器在一起的情况

构建的命令 node -v pnpm -v pnpm install pnpm build # 将dist打包成dist.zip zip -r dist.zip dist mv dist.zip /www/wwwroot/video.xxx.com/dist.zip cd /www/wwwroot/video.xxx.com # 解压并覆盖之前的文件 unzip -o dist.zip

期货学习笔记-横盘行情学习1

横盘行情的特征及分类 横盘行情的概念 横盘行情时中继形态的一种&#xff0c;一般常出现在大涨或大跌之后出现横盘行情是对当前趋势行情的修正&#xff0c;是对市场零散筹码的清理&#xff0c;是为了集中筹码更便于后期行情的展开 横盘行情的特征 1.水平运动&#xff1a;该…

1-4月我国5G用户、流量占比均过半,呈现平稳增长态势!

1-4月份&#xff0c;通信行业整体运行平稳。电信业务量收平稳增长&#xff1b;5G、千兆光网等新型基础设施建设持续推进&#xff0c;网络连接用户规模不断扩大&#xff0c;移动互联网接入流量较快增长。 一、总体运行情况 电信业务收入稳步增长&#xff0c;电信业务总量增速保持…