最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux環(huán)境kafka安裝及配置方式

 更新時間:2024年10月06日 14:53:48   作者:W_StackOverFlow_W  
在Linux環(huán)境中安裝Kafka需要下載對應版本的資源包,并安裝配置Zookeeper,此教程以kafka_2.12-2.5.1版本和apache-zookeeper-3.6.1為例,詳細介紹了單體及集群環(huán)境下的安裝步驟、配置修改、啟動驗證以及Kerberos認證配置,同時提供了kafka常用命令和注意事項,適合初學者參考

下載資源

1、linux環(huán)境安裝kafka,需要預先準備相關資源,我使用的是kafka_2.12-2.5.1版本,下載路徑為:http://archive.apache.org/dist/kafka/2.5.1/kafka_2.12-2.5.1.tgz,也可以通過命令wget http://archive.apache.org/dist/kafka/2.5.1/kafka_2.12-2.5.1.tgz進行資源獲??;

2、獲取并安裝zookeeper:(以apache-zookeeper-3.6.1-bin.tar.gz為例),官網(wǎng):https://zookeeper.apache.org/。

3、將下載好的kafka及zookeeper壓縮包上傳到虛擬機服務器,放置到/usr/local/目錄中:

安裝zookeeper

1、解壓apache-zookeeper-3.6.1-bin.tar.gz壓縮包,并重命名

#進入到壓縮包存放路徑
cd /usr/local/
#解壓
tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
#重命名
mv apache-zookeeper-3.6.1-bin zookeeper-3.6.1

2、配置啟動

#進入配置目錄
cd zookeeper-3.6.1/conf/
#復制配置文件,不直接修改源文件用于備份使用
cp zoo_sample.cfg zoo.cfg
#編輯zoo.cfg文件
vi zoo.cfg

修改zoo.cfg中的內(nèi)容為,主要修改dataDir路徑以及端口號:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper-3.6.1/data/
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

3、啟動zookeeper

sh /usr/local/zookeeper-3.6.1/bin/zkServer.sh start 

4、查看zookeeper狀態(tài)

sh /usr/local/zookeeper-3.6.1/bin/zkServer.sh status

另:停止zookeeper:

sh /usr/local/zookeeper-3.6.1/bin/zkServer.sh stop

以上為單體zookeeper安裝及啟動過程,以下為zookeeper集群的搭建方式:

與單體的搭建方式類似,只需要重復類似單體的部署模式,集群最少使用3臺,以下大概介紹相應的部署方式:

1、首先將解壓好的文件夾復制并重命名

#創(chuàng)建集群目錄
mkdir zookeeper-cluster
#將解壓好的zookeeper目錄復制到集群目錄中
cp -r zookeeper-3.6.1 zookeeper-cluster/
#進入集群目錄中
cd zookeeper-cluster/
#重命名復制過來的目錄為節(jié)點1目錄,同理復制出節(jié)點2和節(jié)點3的目錄
mv zookeeper-3.6.1 zookeeper-1
cp -r zookeeper-1 ./zookeeper-2
cp -r zookeeper-1 ./zookeeper-3

以下為復制完成后的目錄結(jié)構(gòu):

2、分別配置相關的配置文件,注意節(jié)點名稱及dataDir路徑不要沖突

vi zookeeper-1/conf/zoo.cfg
vi zookeeper-2/conf/zoo.cfg
vi zookeeper-3/conf/zoo.cfg

3、分別創(chuàng)建myid文件到data目錄中

echo "1" > zookeeper-1/data/myid
echo "2" > zookeeper-2/data/myid
echo "3" > zookeeper-3/data/myid

修改每個節(jié)點中的dataDir,clientPort的值,并增加節(jié)點之間的關聯(lián)屬性,以下是節(jié)點1的示例,其他節(jié)點以此類推:

配置完成后分別啟動三個節(jié)點:

/usr/local/zookeeper-cluster/zookeeper-1/bin/zkServer.sh start
/usr/local/zookeeper-cluster/zookeeper-2/bin/zkServer.sh start
/usr/local/zookeeper-cluster/zookeeper-3/bin/zkServer.sh start

集群啟動成功

連接測試,zkCli.sh腳本可以連接集群測試是否啟動成功:

如果(kerberos服務已經(jīng)安裝并配置完成)開啟Kerberos認證需要進行以下操作(以單體zookeeper為例):

1、生成keytab文件:

#登錄kerberos的命令行界面
kadmin.local
#生成隨機密碼
addprinc -randkey zookeeper/hadoop.test.com@TEST.COM
#生成keytab文件
 ktadd -k /etc/security/keytabs/zookeeper.keytab zookeeper/hadoop.test.com@TEST.COM
 #退出命令行
 exit
 #查看生成的keytab文件的用戶
 klist -ket /etc/security/keytabs/zookeeper.keytab

以下是執(zhí)行過程示例:

2、生成jaas文件:

vi /usr/local/zookeeper-3.6.1/conf/jaas.conf

jaas.conf文件內(nèi)容,注意keyTab屬性位置及principal用戶名配置正確

Server{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
principal="zookeeper/hadoop.test.com@TEST.COM"
useTicketCache=false;
};

Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
principal="zookeeper/hadoop.test.com@TEST.COM";
};

3、修改配置文件zoo.cfg添加配置,在結(jié)尾加入以下配置:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

4、添加java.env文件,并寫入相關的內(nèi)容,注意-Djava.security.auth.login.config為生成的jaas.conf文件的路徑:

echo 'export JVMFLAGS=" -Dsun.security.krb5.debug=true -Djava.security.auth.login.config=/usr/local/zookeeper-3.6.1/conf/jaas.conf"' > /usr/local/zookeeper-3.6.1/conf/java.env

5、啟動驗證,啟動成功,并連接成功

kafka安裝及配置

kafka安裝(單體)

1、解壓安裝包

#進入壓縮包存放路徑
cd /usr/local/
#解壓壓縮包
tar -zxvf kafka_2.12-2.5.1.tgz
#進入解壓后目錄中
cd kafka_2.12-2.5.1

2、修改配置

#修改服務配置文件
vi /usr/local/kafka_2.12-2.5.1/config/server.properties

配置中的內(nèi)容需要配置:

listeners=PLAINTEXT://192.168.4.130:9092
zookeeper.connect=192.168.4.130:2181

配置完成后(前提:zookeeper已正常啟動),即可啟動

服務端啟動命令(不加-daemon前臺啟動,關閉即停止服務,加了-daemon后臺啟動):

#啟動命令
/usr/local/kafka_2.12-2.5.1/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.5.1/config/server.properties
#停止命令
/usr/local/kafka_2.12-2.5.1/bin/zookeeper-server-stop.sh

查看服務日志命令:

tail -f /usr/local/kafka_2.12-2.5.1/logs/server.log

以上是kafka單體的配置及啟動方式。

kafka集群配置方式

本次主要記錄同一臺服務器上搭建集群,類似于單體的搭建方式,我們只需要配置每個節(jié)點的配置文件,然后分別啟動即可,如果是分不同的服務器搭建,類似于每臺服務器上搭建單體,然后在配置文件中增加相應集群相關的配置項即可使用了,以下默認已經(jīng)將壓縮包解壓好后的操作。

1、復制server.properties文件并重命名,復制出3(集群最好大于等于三個節(jié)點)份來

#復制配置文件
cp /usr/local/kafka_2.12-2.5.1/config/server.properties /usr/local/kafka_2.12-2.5.1/config/server-1.properties
cp /usr/local/kafka_2.12-2.5.1/config/server.properties /usr/local/kafka_2.12-2.5.1/config/server-2.properties
cp /usr/local/kafka_2.12-2.5.1/config/server.properties /usr/local/kafka_2.12-2.5.1/config/server-3.properties
#編輯配置文件
vi /usr/local/kafka_2.12-2.5.1/config/server-1.properties
vi /usr/local/kafka_2.12-2.5.1/config/server-2.properties
vi /usr/local/kafka_2.12-2.5.1/config/server-3.properties

之后分別配置復制出來的server-1.properties,server-2.properties,server-3.properties三個配置文件,分別配置以下配置

#節(jié)點id,不同的節(jié)點用不同的數(shù)字表示
broker.id=1
#對外的ip及端口,端口號每個文件不要用同一個,我使用的分別是9091,9092,9093
listeners=PLAINTEXT://192.168.4.130:9091
#數(shù)據(jù)存放位置,每個節(jié)點一個如/kafka-logs-1,/kafka-logs-2,/kafka-logs-3等,不同節(jié)點使用文件不可重復,如果重復了容易啟動失敗
log.dirs=/usr/local/kafka_2.12-2.5.1/data/cluster/kafka-logs-1
#填zookeeper的地址,多個用,隔開
zookeeper.connect=192.168.4.130:2181

分別配置好之后可以使用啟動命令分別啟動相關節(jié)點

#啟動節(jié)點1
/usr/local/kafka_2.12-2.5.1/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.5.1/config/server-1.properties
#啟動節(jié)點2
/usr/local/kafka_2.12-2.5.1/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.5.1/config/server-2.properties
#啟動節(jié)點3
/usr/local/kafka_2.12-2.5.1/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-2.5.1/config/server-3.properties
#查看服務日志
tail -f /usr/local/kafka_2.12-2.5.1/logs/server.log

啟動成功日志:

注:有時存在kafka啟動失敗報zookeeper連接超時拒絕連接時,可能引起的原因是防火墻沒有關閉,關閉防火墻的命令,也有可能是/etc/hosts文件配置不對引起的,遇到該問題可以多向考慮。

#方式一
#停止防火墻
service firewalld stop
#禁用防火墻
systemctl disable firewalld
#方式二:
chkconfig iptables off

另:如果之前啟動過zookeeper或者kafka,但是數(shù)據(jù)目錄沒有清除過的話也會影響我們的啟動,一定要仔細核對好。

kafka開啟kerberos認證

如果我們搭建的kafka(單體或集群)需要開啟kerberos認證,可以在安裝的時候這樣配置:

1、生成keytab文件:

#登錄kerberos的命令行界面
kadmin.local
#生成隨機密碼
addprinc -randkey kafka/hadoop.test.com@TEST.COM
#生成keytab文件
 ktadd -k /etc/security/keytabs/kafka.keytab kafka/hadoop.test.com@TEST.COM
 #退出命令行
 exit
 #查看生成的keytab文件的用戶
 klist -ket /etc/security/keytabs/kafka.keytab

以下是生成過程示例:

2、生成jaas文件:

vi /usr/local/kafka_2.12-2.5.1/config/jaas.conf

jaas.conf文件內(nèi)容,注意keyTab屬性位置及principal用戶名配置正確

KafkaServer{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/hadoop.test.com@TEST.COM";
};
KafkaClient{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/hadoop.test.com@TEST.COM"
userTicketCache=true;
};
Client{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
serviceName="kafka"
keyTab="/etc/security/keytabs/kafka.keytab"
principal="kafka/hadoop.test.com@TEST.COM"
userTicketCache=true;
};

3、修改kafka的配置文件,如果是單體僅需要修改一個,如果是集群,則需要修改每個節(jié)點對應的配置文件:

vi /usr/local/kafka_2.12-2.5.1/config/server.properties

配置文件中添加(配置)以下的屬性(非kerberos配置時需要的配置默認需要配置好)

listeners=SASL_PLAINTEXT://172.168.4.130:9093
advertised.listeners=SASL_PLAINTEXT://172.168.4.130:9093
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=kafka
kafka.security.protocol=SASL_PLAINTEXT
super.users=User:kafka

4、修改kafka服務啟動腳本,配置相關的jaas文件路徑

vi /usr/local/kafka_2.12-2.5.1/bin/kafka-server-start.sh

添加以下的內(nèi)容:

export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/usr/local/kafka_2.12-2.5.1/config/jaas.conf"

添加示例:

注意:如果kafka連接時,生產(chǎn)者或消費者連接開啟kerberos認證的kafka服務器時,需要在相應的腳本中也同樣添加該配置

#生產(chǎn)者連接腳本配置
vi /usr/local/kafka_2.12-2.5.1/bin/kafka-console-producer.sh
#消費者連接腳本配置
vi /usr/local/kafka_2.12-2.5.1/bin/kafka-console-consumer.sh
#topic連接腳本配置
vi /usr/local/kafka_2.12-2.5.1/bin/kafka-topics.sh

同時消費者或生產(chǎn)者的配置文件中需要增加以下配置:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka

添加示例(以生產(chǎn)者為例):

啟動kafka服務,連接并使用,參考普通kafka啟動及連接相關命令。

kafka自帶zookeeper使用

注:kafka安裝包中也自帶了zookeeper,如果不想安裝zookeeper,可以使用kafka安裝包中自帶的zookeeper。

如果使用kafka安裝包中帶的zookeeper,需要配置解壓后目錄中的zookeeper.properties

vi /usr/local/kafka_2.12-2.5.1/config/zookeeper.properties

如果不需要修改端口可以默認不修改,使用命令啟動自帶zookeeper:

#啟動zookeeper
/usr/local/kafka_2.12-2.5.1/bin/zookeeper-server-start.sh -daemon /usr/local/kafka_2.12-2.5.1/config/zookeeper.properties
#停止zookeeper
/usr/local/kafka_2.12-2.5.1/bin/zookeeper-server-stop.sh

如果zookeeper需要開啟kerberos認證需要給zookeeper.properties添加配置:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000

在啟動腳本zookeeper-server-start.sh中添加如下配置,注意jaas.conf文件的路徑,jaas文件生成方式同上。

export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/usr/local/zookeeper-3.6.1/conf/jaas.conf"

啟動命令如上。

kafka常用命令

#創(chuàng)建主題
/usr/local/kafka_2.12-2.5.1/bin/kafka-topics.sh --create --zookeeper 192.168.4.130:2181 --replication-factor 1 --partitions 3 --topic test01
#查看主題列表
/usr/local/kafka_2.12-2.5.1/bin/kafka-topics.sh --list --zookeeper 192.168.4.130:2181/kafka
#生產(chǎn)者連接并生產(chǎn)數(shù)據(jù)
/usr/local/kafka_2.12-2.5.1/bin/kafka-console-producer.sh --broker-list 192.168.4.130:9092  --topic test01 --producer.config /usr/local/kafka_2.12-2.5.1/config/producer.properties
#消費者連接并消費數(shù)據(jù)
/usr/local/kafka_2.12-2.5.1/bin/kafka-console-consumer.sh --bootstrap-server 192.168.4.130:9092 --topic test01 --from-beginning --consumer.config  /usr/local/kafka_2.12-2.5.1/config/consumer.properties
#kafka添加消息寫入partition時間戳的方法
#Kafka消息的時間戳,在消息中增加了一個時間戳字段和時間戳類型。目前支持的時間戳類型有兩種: CreateTime 和 LogAppendTime 前者表示producer創(chuàng)建這條消息的時間;后者表示broker接收到這條消息的時間(嚴格來說,是leader broker將這條消息寫入到log的時間)
/usr/local/kafka_2.12-2.5.1/bin/kafka-topics.sh --alter --topic test01 --zookeeper 192.168.4.130:2181 --config  message.timestamp.type=LogAppendTime
/usr/local/kafka_2.12-2.5.1/bin/kafka-console-consumer.sh --bootstrap-server 192.168.4.130:9092 --topic test01 --from-beginning --consumer.config  /usr/local/kafka_2.12-2.5.1/config/consumer.properties --property print.timestamp=true
#刪除主題內(nèi)的消息:kafka-delete-records --bootstrap-server <broker-host:port> --offset-json-file offsets.json
#–bootstrap-server:需要連接的 brokers 地址;
#–offset-json-file:包含刪除配置的 Json 文件。
/usr/local/kafka_2.12-2.5.1/bin/kafka-delete-records.sh --bootstrap-server 192.168.4.130:9092 --offset-json-file /usr/local/kafka_2.12-2.5.1/remove.json
#刪除附加:移除kerberos開啟的server中的數(shù)據(jù),同樣需要在相關配置文件中配置kerberos相關的配置,以及腳本中增加相關的配置
/usr/local/kafka_2.12-2.5.1/bin/kafka-delete-records.sh --bootstrap-server 192.168.4.130:9092 --command-config /usr/local/kafka_2.12-2.5.1/config/delete-kerb.properties  --offset-json-file /usr/local/kafka_2.12-2.5.1/remove.json

關于移除數(shù)據(jù)的remove.json配置文件內(nèi)容:

{
   "partitions": [
                  {"topic": "test01", "partition": 0, "offset": -1}
                 ],
                 "version":1
 }
  • topic:待刪除數(shù)據(jù)主題
  • partition:待刪除的分區(qū)
  • offset:刪除起始偏移量,設置為 -1,表示將刪除主題中所有數(shù)據(jù)。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • linux啟動后ubuntu屏幕變成紅色了的問題及解決

    linux啟動后ubuntu屏幕變成紅色了的問題及解決

    文章講述了當屏幕啟動后變成紅色背景時的常見原因和解決方法,包括進入TTY命令行界面修復、清除錯誤的NVIDIA驅(qū)動并恢復默認開源驅(qū)動,以及推薦使用系統(tǒng)自帶的NVIDIA驅(qū)動安裝方式
    2026-01-01
  • 如何解決yum無法安裝epel-release的問題

    如何解決yum無法安裝epel-release的問題

    這篇文章主要介紹了如何解決yum無法安裝epel-release的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • linux下PAC正向代理某個網(wǎng)址上網(wǎng)方式

    linux下PAC正向代理某個網(wǎng)址上網(wǎng)方式

    文章描述了在私有化場景下部署Kubernetes服務,并通過內(nèi)部代理服務器訪問互聯(lián)網(wǎng)的解決方案,通過創(chuàng)建一個PAC文件的Pod,文章展示了如何配置環(huán)境變量并驗證代理服務器是否正常工作
    2026-03-03
  • linux打包解壓命令方式

    linux打包解壓命令方式

    文章介紹了Linux系統(tǒng)中常用的打包和解壓命令,包括tar和zip,使用tar命令可以創(chuàng)建和解壓tar格式的歸檔文件,使用zip命令可以創(chuàng)建和解壓zip格式的壓縮文件,每種命令都有相應的選項來控制打包和解壓的過程
    2025-02-02
  • 在Centos下安裝python

    在Centos下安裝python

    這篇文章主要介紹了在Centos下安裝python,CentOS是Linux發(fā)行版之一,依照開放源代碼規(guī)定發(fā)布的源代碼所編譯而成,需要的朋友可以參考下
    2023-04-04
  • Linux命令搜索命令whereis與which的區(qū)別

    Linux命令搜索命令whereis與which的區(qū)別

    這篇文章主要介紹了Linux命令搜索命令whereis與which的區(qū)別的相關資料,這里舉例說明該如何區(qū)別他們之家的用法,需要的朋友可以參考下
    2017-08-08
  • apache使用.htaccess文件實現(xiàn)屏蔽wget下載網(wǎng)站內(nèi)容

    apache使用.htaccess文件實現(xiàn)屏蔽wget下載網(wǎng)站內(nèi)容

    wget是一個從網(wǎng)絡上自動下載文件的自由工具,支持通過HTTP、HTTPS、FTP三個最常見的TCP/IP協(xié)議下載,并可以使用HTTP代理。wget名稱的由來是“World Wide Web”與“get”的結(jié)合。
    2014-07-07
  • linux中設置nexus開機自啟動的方法

    linux中設置nexus開機自啟動的方法

    這篇文章主要介紹了linux中設置nexus開機自啟動的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • Linux查看系統(tǒng)版本最實用的三種方法

    Linux查看系統(tǒng)版本最實用的三種方法

    在Linux系統(tǒng)管理和日常運維中,準確獲取操作系統(tǒng)的版本信息是執(zhí)行軟件安裝、腳本兼容性判斷、系統(tǒng)升級以及問題排查等任務的基石,本文將深入探討并詳細對比在Linux環(huán)境下查看系統(tǒng)版本的幾種主流方法,需要的朋友可以參考下
    2025-10-10
  • Ubuntu18.04安裝Python虛擬環(huán)境

    Ubuntu18.04安裝Python虛擬環(huán)境

    這篇文章主要介紹了Ubuntu18.04安裝Python虛擬環(huán)境的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論

台州市| 盘山县| 博湖县| 桓仁| 金堂县| 遂平县| 滦平县| 海南省| 普陀区| 新丰县| 永平县| 乐平市| 临漳县| 新乡县| 巴青县| 汾阳市| 郎溪县| 北海市| 石泉县| 辽宁省| 宁波市| 沁阳市| 梁山县| 安溪县| 南部县| 镇巴县| 大宁县| 朝阳市| 通榆县| 东乡| 长海县| 台东县| 邯郸县| 竹北市| 阜新| 陆川县| 仪征市| 阳高县| 正安县| 闽清县| 镇沅|