亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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進行資源獲?。?/p>

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中的內容為,主要修改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

以下為復制完成后的目錄結構:

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服務已經安裝并配置完成)開啟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文件內容,注意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添加配置,在結尾加入以下配置:

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

4、添加java.env文件,并寫入相關的內容,注意-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

配置中的內容需要配置:

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é)點的配置文件,然后分別啟動即可,如果是分不同的服務器搭建,類似于每臺服務器上搭建單體,然后在配置文件中增加相應集群相關的配置項即可使用了,以下默認已經將壓縮包解壓好后的操作。

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文件內容,注意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

添加以下的內容:

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連接時,生產者或消費者連接開啟kerberos認證的kafka服務器時,需要在相應的腳本中也同樣添加該配置

#生產者連接腳本配置
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

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

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

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

啟動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
#生產者連接并生產數(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
#刪除主題內的消息: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配置文件內容:

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

總結

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

相關文章

  • Linux雙網(wǎng)卡綁定腳本的方法示例

    Linux雙網(wǎng)卡綁定腳本的方法示例

    linux運維及配置工作中,常常會用到雙網(wǎng)卡綁定,這篇文章主要介紹了Linux雙網(wǎng)卡綁定腳本的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 本地Windows遠程桌面連接阿里云Ubuntu 16.04服務器的操作方法

    本地Windows遠程桌面連接阿里云Ubuntu 16.04服務器的操作方法

    這篇文章主要介紹了本地Windows遠程桌面連接阿里云Ubuntu 16.04服務器的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Linux之計劃任務和調度命令at/cron詳解

    Linux之計劃任務和調度命令at/cron詳解

    這篇文章主要介紹了Linux之計劃任務和調度命令at/cron的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • CentOS 7 下使用 iptables

    CentOS 7 下使用 iptables

    禁用FireWallD,安裝&啟用iptables-services systemctl stop firewalld systemctl mask firewalld yum install iptables-services -y systemctl enable iptables
    2016-04-04
  • linux如何擴展磁盤容量(VMware虛擬機)

    linux如何擴展磁盤容量(VMware虛擬機)

    這篇文章主要介紹了linux如何擴展磁盤容量(VMware虛擬機)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Linux靜態(tài)鏈接庫與模板類的處理方式

    Linux靜態(tài)鏈接庫與模板類的處理方式

    這篇文章主要介紹了Linux下編譯使用靜態(tài)鏈接庫遇到模板類的時該如何處理。
    2017-11-11
  • 詳解ubuntu安裝opencv的正確方法

    詳解ubuntu安裝opencv的正確方法

    這篇文章主要介紹了ubuntu安裝opencv的正確方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Apache mod_rewrite實現(xiàn)HTTP和HTTPS重定向跳轉

    Apache mod_rewrite實現(xiàn)HTTP和HTTPS重定向跳轉

    這篇文章主要介紹了Apache mod_rewrite實現(xiàn)HTTP和HTTPS重定向跳轉,本文分別給出了HTTP重定向HTTPS和HTTPS重定向HTTP配置參考,需要的朋友可以參考下
    2015-06-06
  • Ubuntu刪除多余內核的方法

    Ubuntu刪除多余內核的方法

    這篇文章主要介紹了Ubuntu刪除多余內核的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 初窺Linux 之我最常用的20條命令總結

    初窺Linux 之我最常用的20條命令總結

    Linux中的命令的確是非常多,我們只需要了解常用的命令就可以了,本篇文章介紹了Linux 之我最常用的20條命令總結,有興趣的可以了解一下。
    2016-12-12

最新評論