Flume 的安装和使用方法(Spark-2.1.0)

一、Flume的安装

1.下载压缩包

https://www.apache.org/dyn/closer.lua/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz

2.上传到linux中

3.解压安装包
cd
#进入加载压缩包目录

sudo tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /usr/local
# 将 apache-flume-1.7.0-bin.tar.gz 解压到/usr/local 目录下

sudo mv /usr/local/apache-flume-1.7.0-bin /usr/local/flume-1.7.0
将解压后的文件夹名称从 apache-flume-1.7.0-bin 改为 flume-1.7.0

cd /usr/local/

sudo chown -R qiangzi:qiangzi ./flume-1.7.0
#把/usr/local/flume-1.7.0 目录的权限赋予当前登录 Linux 系统的用户,这里假设是 qiangzi 用户


4.配置环境变量
cd /usr/local/

sudo vim ~/.bashrc

然后在首行加入如下代码:

export JAVA_HOME=/usr/local/jdk1.8.0/;
export FLUME_HOME=/usr/local/flume-1.7.0 
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$PATH:$FLUME_HOME/bin

注意,上面的 JAVA_HOME,如果以前已经在.bashrc 文件中设置过,就不要重复添加 了,使用以前的设置即可。比如,以前设置得 JAVA_HOME 可能是“export JAVA_HOME=/usr/lib/jvm/default-java”,则使用原来的设置即可。

使环境变量生效:

[qiangzi@master local]$ source ~/.bashrc
5.修改 flume-env.sh 配置文件
cd /usr/local/flume-1.7.0/conf
 
sudo cp ./flume-env.sh.template ./flume-env.sh

sudo vim ./flume-env.sh

打开 flume-env.sh 文件以后,在文件的最开始位置增加一行内容,用于设置 JAVA_HOME 变量

export JAVA_HOME=/usr/local/jdk1.8.0/;
6.查看 flume 版本信息
cd /usr/local/flume-1.7.0

./bin/flume-ng version #查看 flume 版本信息;

如果安装成功,出现如下图片

二、Flume的使用

1.使用 Avro 数据源测试 Flume

Avro 可以发送一个给定的文件给 Flume,Avro 源使用 AVRO RPC 机制。请对 Flume 的相关配置文件进行设置,从而可以实现如下功能:在一个终端中新建一个文件 helloworld.txt(里面包含一行文本“Hello World”),在另外一个终端中启动 Flume 以后, 可以把 helloworld.txt 中的文本内容显示出来。

(1)agent 配置文件
cd /usr/local/flume

sudo vim ./conf/avro.conf #在 conf 目录下编辑一个 avro.conf 空文件

然后,在 avro.conf 写入以下内容

a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = avro
a1.sources.r1.channels = c1
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 4141
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

上面 Avro Source 参数说明如下: Avro Source 的别名是 avro,也可以使用完整类别名 称 org.apache.flume.source.AvroSource,因此,上面有一行设置是 a1.sources.r1.type = avro,表示数据源的类型是 avro。bind 绑定的 ip 地址或主机名,使用 0.0.0.0 表示绑定机 器所有的接口。a1.sources.r1.bind = 0.0.0.0,就表示绑定机器所有的接口。port 表示绑定 的端口。a1.sources.r1.port = 4141,表示绑定的端口是 4141。a1.sinks.k1.type = logger, 表示 sinks 的类型是 logger。

(2)启动 flume agent a1
/usr/local/flume-1.7.0/bin/flume-ng agent -c /usr/local/flume-1.7.0/conf/ -f /usr/local/flume-1.7.0/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console

agent 窗口

(3)创建指定文件

先打开另外一个终端,在/usr/local/flume 下写入一个文件 log.00,内容为 hello,world

echo "hello, world" > /usr/local/flume-1.7.0/log.00

前面已经启动日志控制台,这里不再启动

再打开另外一个终端,执行:

cd /usr/local/flume-1.7.0

bin/flume-ng avro-client --conf conf -H localhost -p 4141 -F /usr/local/flume-1.7.0/log.00

此时我们可以看到第一个终端(agent 窗口)下的显示,也就是在日志控制台,就会把 log.00 文件的内容打印出来:

avro source 执行成功!

2. 使用 netcat 数据源测试 Flume
(1)创建 agent 配置文件
cd /usr/local/flume-1.7.0
sudo vim ./conf/example.conf   #在 conf 目录创建 example.conf

在 example.conf 里写入以下内容:

#example.conf: A single-node Flume configuration 
# Name the components on this agent 
a1.sources = r1 
a1.sinks = k1 
a1.channels = c1 
# Describe/configure the source 
a1.sources.r1.type = netcat 
a1.sources.r1.bind = localhost 
a1.sources.r1.port = 44444 
#同上,记住该端口名
# Describe the sink 
a1.sinks.k1.type = logger 
# Use a channel which buffers events in memory 
a1.channels.c1.type = memory 
a1.channels.c1.capacity = 1000 
a1.channels.c1.transactionCapacity = 100 
# Bind the source and sink to the channel 
a1.sources.r1.channels = c1 
a1.sinks.k1.channel = c1
(2)启动 flume agent (即打开日志控制台)
/usr/local/flume-1.7.0/bin/flume-ng agent --conf /usr/local/flume-1.7.0/conf --conf-file /usr/local/flume-1.7.0/conf/example.conf --name a1 -Dflume.root.logger=INFO,console

如图:

再打开一个终端,输入命令

telnet localhost 44444   

#上面不能使用,使用nc
nc localhost 44444

 然后我们可以在终端下输入任何字符,第一个终端的日志控制台也会有相应的显示,如 我们输入”hello,world”或者其他内容,得出

       第一个终端的日志控制台显示:

netcatsource 运行成功!

这里补充一点,flume 只能传递英文和字符,不能用中文,我们先可以在第二个终端输 入“中国河南省”等字样:

第一个终端的日志控制台显示:

3.使用 Flume 作为 Spark Streaming 数据源

Flume 是非常流行的日志采集系统,可以作为 Spark Streaming 的高级数据源。请把 Flume Source 设置为 netcat 类型,从终端上不断给 Flume Source 发送各种消息,Flume 把消息汇集 到 Sink,这里把 Sink 类型设置为 avro,由 Sink 把消息推送给 Spark Streaming,由自己编写 的 Spark Streaming 应用程序对消息进行处理。

(1)配置 Flume 数据源

登录 Linux 系统,打开一个终端,执行如下命令新建一个 Flume 配置文件 flume-to-spark.conf

cd /usr/local/flume-1.7.0
cd conf
vim flume-to-spark.conf

flume-to-spark.conf 文件中写入如下内容:

在上面的配置文件中,我们把 Flume Source 类别设置为 netcat,绑定到 localhost 的 33333 端口,这样,我们后面就可以通过“telnet localhost 33333”命令向 Flume Source 发 送消息。

同时,我们把 Flume Sink 类别设置为 avro,绑定到 localhost 的 44444 端口,这样, Flume Source 把采集到的消息汇集到 Flume Sink 以后,Sink 会把消息推送给 localhost 的 44444 端口,而我们编写的 Spark Streaming 程序一直在监听 localhost 的 44444 端口,一 旦有消息到达,就会被 Spark Streaming 应用程序取走进行处理。

特别要强调的是,上述配置文件完成以后,暂时“不要”启动 Flume Agent,如果这个时 候使用“flume-ng agent”命令启动 agent,就会出现错误提示“localhost:44444 拒绝连接”,也 就是 Flume Sink 要发送消息给 localhost 的 44444 端口,但是,无法连接上 localhost 的 44444 端口。为什么会出现这个错误呢?因为,这个时候我们还没有启动 Spark Streaming 应用程序,也就没有启动 localhost 的 44444 端口,所以,Sink 是无法向这个端口发送消息 的。

(2)Spark 的准备工作(版本2.4.8以下,新版本没有相关jar包

Kafka 和 Flume 等高级输入源,需要依赖独立的库(jar 文件)。按照我们前面安装好 的 Spark 版本,这些 jar 包都不在里面,为了证明这一点,我们现在可以测试一下。请打开 一个新的终端,然后启动 spark-shell:

cd /usr/local/spark-2.1.0
./bin/spark-shell

启动成功后,在 spark-shell 中执行下面 import 语句:

你可以看到,马上会报错,因为找不到相关的 jar 包。所以,现在我们就需要下载 spark-streaming-flume_2.11-2.1.0.jar,其中2.11表示对应的Scala版本号,2.1.0表示Spark 版本号。打开下方的网址 http://mvnrepository.com/artifact/org.apache.spark/spark-streaming-flume_2.11/2.1.0,里 面有提供 spark-streaming-flume_2.11-2.1.0.jar 文件的下载。

查看Spark和Scala版本(Spark安装版本最好在2.4.8版本之下,高版本没有相关jar包

Spark下载网址:Index of /dist/spark (apache.org)

进入网站,点击红框内的jar下载

下载好的文件上传到 Linux 登录用户目录下

现在,我们在“/usr/local/spark-2.1.0/jars”(由于版本不匹配)目录下新建一个“flume”目录,就把这个文件复制到 Spark 目录的“/usr/local/spark-2.1.0/jars/flume”目录下。请新打开一个终端,输入下面命令:      

cd /usr/local/spark-2.1.0/jars
mkdir flume
cd ~
mv ./spark-streaming-flume_2.12-2.4.8.jar /usr/local/spark-2.1.0/jars/flume

我们就成功地把 spark-streaming-flume_2.11-2.1.0.jar 文件拷贝到了 “/usr/local/spark/jars/flume”目录下。

下面还要继续把 Flume 安装目录的 lib 目录下的所有 jar 文件复制到 “/usr/local/spark-2.4.8/jars/flume”目录下,请在终端中执行下面命令:

cd /usr/local/flume-1.7.0/lib
ls
cp ./* /usr/local/spark-2.1.0/jars/flume
(3)编写 Spark 程序使用 Flume 数据源

新打开一个终端,然后,执行命令创建代码目录:

cd /usr/local/spark-2.1.0/mycode
mkdir flume
cd flume
mkdir -p src/main/scala
cd src/main/scala
vim FlumeEventCount.scala

在 FlumeEventCount.scala 代码文件中输入以下代码:

package org.apache.spark.examples.streaming
import org.apache.spark.SparkConf
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming._
import org.apache.spark.streaming.flume._
import org.apache.spark.util.IntParam
object FlumeEventCount {
    def main(args: Array[String]) {
        if (args.length < 2) {
            System.err.println(
                "Usage: FlumeEventCount <host> <port>")
            System.exit(1)
        }
        StreamingExamples.setStreamingLogLevels()
        val Array(host, IntParam(port)) = args
        val batchInterval = Milliseconds(2000)
        // Create the context and set the batch size
        val sparkConf = new SparkConf().setAppName("FlumeEventCount").setMaster("local[2]")
        val ssc = new StreamingContext(sparkConf, batchInterval)
        // Create a flume stream
        val stream = FlumeUtils.createStream(ssc, host, port, StorageLevel.MEMORY_ONLY_SER_2)
        // Print out the count of events received from this server in each batch
        stream.count().map(cnt => "Received " + cnt + " flume events." ).print()
        ssc.start()
        ssc.awaitTermination()
    }
}

保存 FlumeEventCount.scala 文件并退出 vim 编辑器。FlumeEventCount.scala 程序在 编译后运行时,需要我们提供 host 和 port 两个参数,程序会对指定的 host 和指定的 port 进行监听,Milliseconds(2000)设置了时间间隔为 2 秒,所以,该程序每隔 2 秒就会从指定 的端口中获取由 Flume Sink 发给该端口的消息,然后进行处理,对消息进行统计,打印出 “Received 0 flume events.”这样的信息。

然后再使用 vim 编辑器新建 StreamingExamples.scala 文件,输入如下代码,用于控 制日志输出格式:

package org.apache.spark.examples.streaming
import org.apache.log4j.{Level, Logger}
import org.apache.spark.internal.Logging
object StreamingExamples extends Logging {
    /** Set reasonable logging levels for streaming if the user has not configured log4j. */
    def setStreamingLogLevels() {
        val log4jInitialized = Logger.getRootLogger.getAllAppenders.hasMoreElements
        if (!log4jInitialized) {
          // We first log something to initialize Spark's default logging, then we override the
          // logging level.
            logInfo("Setting log level to [WARN] for streaming example." +" To override add a custom log4j.properties to the classpath.")
            Logger.getRootLogger.setLevel(Level.WARN)
        }
    }
}

保存 StreamingExamples.scala 文件并退出 vim 编辑器。

在“/usr/local/spark-2.4.8/mycode/flume/src/main/scala”目录下,就有了如下两个 代码文件:

然后,执行下面命令新建一个 simple.sbt 文件:

name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-flume_2.11" % "2.1.0" 

查看目录

保存文件退出 vim 编辑器。然后执行下面命令,进行打包编译:

cd /usr/local/spark-2.1.0/mycode/flume/
/usr/local/sbt/sbt package  #执行这一步之前需要先安装 sbt 插件

如果看到类似如下的屏幕信息,就表示打包成功了:

打包成功后,就可以执行程序测试效果了

(4)测试程序效果

关闭之前打开的所有终端。首先,请新建第 1 个 Linux 终端,启动 Spark Streaming 应 用程序,命令如下:

cd /usr/local/spark-2.1.0

./bin/spark-submit --driver-class-path /usr/local/spark-2.1.0/jars/*:/usr/local/spark-2.1.0/jars/flume/* --class "org.apache.spark.examples.streaming.FlumeEventCount" /usr/local/spark-2.1.0/mycode/flume/target/scala-2.11/simple-project_2.11-1.0.jar localhost 44444

通过上面命令,我们为应用程序提供 host 和 port 两个参数的值分别为 localhost 和 44444,程序会对 localhost 的 44444 端口进行监听,Milliseconds(2000)设置了时间间隔为 2 秒,所以,该程序每隔 2 秒就会从指定的端口中获取由 Flume Sink 发给该端口的消息, 然后进行处理,对消息进行统计,打印出“Received 0 flume events.”这样的信息。

执行该命令后,屏幕上会显示程序运行的相关信息,并会每隔 2 秒钟刷新一次信息, 大量信息中会包含如下重要信息:

因为目前 Flume 还没有启动,没有给 FlumeEventCount 发送任何消息,所以 Flume Events 的数量是 0。第 1 个终端不要关闭,让它一直处于监听状态。

现在,另外新建第 2 个终端,在这个新的终端中启动 Flume Agent,命令如 下:

cd /usr/local/flume-1.7.0
bin/flume-ng agent --conf ./conf --conf-file ./conf/flume-to-spark.conf --name a1 -Dflume.root.logger=INFO,console

启动 agent 以后,该 agent 就会一直监听 localhost 的 33333 端口,这样,我们下面就 可以通过“telnet localhost 33333”命令向 Flume Source 发送消息。第 2 个终端也不要关闭, 让它一直处于监听状态。

另外新建第 3 个终端,执行如下命令:

nc localhost 33333

执行该命令以后,就可以在这个窗口里面随便敲入若干个字符和若干个回车,这些消息 都会被 Flume 监听到,Flume 把消息采集到以后汇集到 Sink,然后由 Sink 发送给 Spark 的 FlumeEventCount 程序进行处理。然后,你就可以在运行 FlumeEventCount 的前面那个 终端窗口内看到类似如下的统计结果:

从屏幕信息中可以看出,我们在 telnet 那个终端内发送的消息,都被成功发送到 Spark 进行处理了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

透明加密软件推荐:哪款实用又高效?

透明加密软件是一种专门针对文件保密需求的计算机加密工具。 其核心在于“透明”二字&#xff0c;意味着整个加密过程对于使用者来说是无形且无感知的。 当用户进行文件的日常操作&#xff0c;如打开、编辑或保存时&#xff0c;透明加密软件会在后台自动进行加密和解密工作&a…

Microsoft Edge浏览器,便携增强版 v118.0.5993.69

01 软件介绍 Microsoft Edge浏览器&#xff0c;便携增强版&#xff0c;旨在无需更新组件的情况下提供额外的功能强化。这一增强版专注于优化用户体验和系统兼容性&#xff0c;具体包含以下核心功能的提升&#xff1a; 数据保存&#xff1a;通过优化算法增强了其数据保存能力&…

AI系列:大语言模型的RAG(检索增强生成)技术(下)-- 使用LlamaIndex

目录 前言什么是LlamaIndex?LlamaIndex代码设置embedding模型设置LLM模型索引查询机 验证使用感受参考资料 前言 继上一篇文章AI系列&#xff1a;大语言模型的RAG&#xff08;检索增强生成&#xff09;技术&#xff08;上&#xff09;&#xff0c;这篇文章主要以LlamaIndex为…

2024最新网络安全零基础入门学习路线,学网安看这篇就够了!

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“ 安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与…

高通QCC3071 ANC调试录音新方法

1, 从QCC307X和QCC517X的芯片开始ANC调试录音不再使用QACT软件了,而是使用Qualcomm ANC Filter Designer使用耳机进入Recording模式,再使用第三方的音频编辑软件来播放和录取声音。 2, 本文以QCC3071做Hybrid ANC,FF MIC使用数字MIC FB MIC使用模拟MEMS MIC为例来讲解具体…

IDEA里面数据库编辑数据库链接/重命名库的操作

选中数据库图标&#xff0c;点击号&#xff0c;打开MySql 图片的每一处都可以修改&#xff0c;改完再点test connection&#xff0c;没问题再点确定按钮就可以

4万字一文带你看懂车载摄像头技术、市场、发展前景

1、小孔成像 在战国初期&#xff0c;我国学者墨子&#xff08;公元前468年-公元前376年&#xff09;和弟子们完成了世界上第一个小孔成像的实验&#xff0c;并记录在《墨经》中&#xff1a;“景到&#xff0c;在午有端&#xff0c;与景长。说在端。”“景。光之人&#xff0c;煦…

从旺店通·企业奇门到金蝶云星空通过接口配置打通数据

从旺店通企业奇门到金蝶云星空通过接口配置打通数据 接通系统&#xff1a;旺店通企业奇门 慧策最先以旺店通ERP切入商家核心管理痛点——订单管理&#xff0c;之后围绕电商经营管理中的核心管理诉求&#xff0c;先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策的…

Spring事务和事务传播机制(@Transactional)

文章目录 Spring事务&#xff08;Transactional详解&#xff09;什么是事务为什么需要事务事务的操作(sql) Spring中的事务实现Spring编程式事务Spring声明式事务 TransactionalTransactional可以用来修饰方法或类对异常进行捕获细节&#xff1a; Transactional详解三个属性1. …

牛客NC363 开锁【中等 BFS Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/e7cbabbf7e0a41ec98055ee5f3d33bbe https://www.lintcode.com/problem/796 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#x…

在PyQt5中实现点击按钮打开新窗口功能—窗口的跳转功能实现

百度搜索“pyqt5中如何点击按钮打开新的窗口”&#xff0c;自动生成以下参考代码。 在PyQt5中&#xff0c;要实现点击按钮打开新窗口&#xff0c;你需要定义一个新的窗口类&#xff0c;并在按钮的点击信号&#xff08;clicked&#xff09;处理函数中创建并显示这个新窗口。以下…

Eclipse 里如何建立SAP应用服务层的CDS

关于Core Data Service(CDS) CDS:Core Data Ser vice.核心数据服务。CDS 是使用基于 SQL的数据定义语言(DDL)定义的&#xff0c;该语言基于标准 SQL 并带有一些附加概念。使用类似 SQL的灵活表达式可以进行复杂的数据建模。有两种类型的 CDS:ABAP CDS 和 HANA CDS。 S/4 HANA…

安装HTTPS证书后,网站安全性会有哪些提升?

在当今数字化时代&#xff0c;网络安全已成为一个不可忽视的话题。随着网络攻击的日益频繁&#xff0c;保护网站和用户数据的安全变得尤为重要。HTTPS作为一种加密的HTTP协议&#xff0c;为我们提供了一种安全的网络数据传输方式。本文将详细介绍HTTPS的工作原理、端口号以及如…

测试docker GPU性能损失

NVIDIA 3090 利用HSOpticalFlow代码测试docker GPU性能损失 docker介绍图如下&#xff1a; 形象生动展示了他们之间的关系 今天要测试docker容器运行HSOpticalFlow算法的性能损失&#xff0c;包括CPU和GPU 上一篇博客 http://t.csdnimg.cn/YW5kE 我已经介绍了使用docker和nvid…

如何判断海外住宅ip的好坏?

在海外IP代理中&#xff0c;住宅IP属于相对较好的资源&#xff0c;无论是用于工作、学习、还是娱乐&#xff0c;都能得到较好的使用效果。作为用户&#xff0c;该如何判断海外住宅IP的好坏呢&#xff1f; 稳定性与可靠性&#xff1a;海外住宅IP相比动态IP地址&#xff0c;通常具…

国际数字影像产业园近期活动一览

一、4月23日&#xff0c;在数媒大厦的春日里&#xff0c;我们共同迎来了第29个“世界读书日"。由数字影像联合工会委员会、树莓科技&#xff08;成都&#xff09;集团有限公司工会委员会主办&#xff0c;成都树莓信息技术有限公司、四川聚能文化传播公司承办的「共沐书香 …

“AI换脸”“一键脱衣” AI诈骗正在进行

这两年AI技术快速发展&#xff0c;从AI变声到AI换脸&#xff0c;AI技术在给我们带来震撼的同时&#xff0c;也有心术不正的人利用它做坏事。比如&#xff0c;近来媒体常报道的“一键脱衣”案件&#xff0c;一位广州女生在地铁拍的美照&#xff0c;被个别网友&#xff0c;用AI一…

(值得拥有)项目框架构建之7:提供工业互联网的框架基础,本文附带框架基础源码

很多读者&#xff0c;可能只是匆匆一看&#xff0c;感觉没啥东西。 但我要特意提醒各位读者&#xff1a;此源码&#xff0c;可是非常有价值的东西。我不一定会一直开放。 前述文章曾讲解了大概如何构建一个项目框架&#xff0c;本意是好的&#xff0c;无奈框架这种思想性的东西…

react18【系列实用教程】组件 (2024最新版 | 含父子组件传值、兄弟组件传值、越层组件传值、“插槽“)

什么是组件&#xff1f; 一个组件就是用户界面的一部分&#xff0c;它可以有自己的逻辑和外观。 组件之间可以互相嵌套&#xff0c;也可以复用多次 为什么要用组件&#xff1f; 组件能让开发者像搭积木一样快速构建一个完整的庞大应用&#xff0c;大大提升了开发效率&#xff…

【MySQL数据库】丨高可用之MHA集群部署

一、准备工作 1.1 修改主机名 vim /etc/hosts# 添加对应主机 192.168.28.128 mha1 192.168.28.131 mha2 192.168.28.132 mha31.2 关闭防火墙及修改selinux # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭自启动# 修改selinux vim /etc/sy…