Kafka 01——Kafka的安裝及簡單入門使用

Kafka 01——Kafka的安裝及簡單入門使用

  • 1. 下載安裝
    • 1.1 JDK的安裝
    • 1.2 Zookeeper的安裝
      • 1.2.1 關于Zookeeper版本的選擇
      • 1.2.2 下載、安裝Zookeeper
    • 1.3 kafka的安裝
      • 1.3.1 下載
      • 1.3.2 解壓
      • 1.3.3 修改配置文件
  • 2. 啟動 kafka
    • 2.1 Kafka啟動
    • 2.2 啟動 kafka 遇到的問題
      • 2.2.1 問題1
      • 2.2.2 問題2
  • 3. 簡單實用
    • 3.1 創建topic
    • 3.2 查看已創建的topic
    • 3.3 發送消息
      • 3.3.1 發送消息命令
      • 3.3.2 遇到的問題
        • 3.3.2.1 問題1
        • 3.3.2.2 問題2
    • 3.4 接收消息
      • 3.4.1 接收消息演示
      • 3.4.2 接收消息的相關知識小點
    • 3.5 查看zk
  • 4. 總結
    • 4.1 Kafka 基本概念
    • 4.2 常見命令
      • 4.2.1 常用的基礎命令
      • 4.2.2 簡單實用命令
    • 4.3 數據日志
    • 4.4 結構圖

1. 下載安裝

1.1 JDK的安裝

  • 因為kafka本身的開發語言是Scala,而Scala是基于 jdk 開發的,所以要先安裝jdk,關于 jdk 的安裝,可以看下面的兩篇文章,如下:
    • Linux安裝JDK1.8.
    • linux下普通用戶(非root用戶)安裝JDK8.

1.2 Zookeeper的安裝

1.2.1 關于Zookeeper版本的選擇

  • 可以根據下面下載的 kafaka 的版本選擇對應的Zookeeper版本,怎么選擇,如下:
    • 方式1:直接看Kafka里libs下的jar包,如下:
      在這里插入圖片描述
    • 方式2:也可以通過查看源碼,看版本信息,如下:
      在這里插入圖片描述

1.2.2 下載、安裝Zookeeper

  • 去官網,根據需要下載對應的版本,如下:
    在這里插入圖片描述
  • 關于 Zookeeper 的安裝,可以看下面的文章
    zookeeper安裝與使用(win+linux).

1.3 kafka的安裝

1.3.1 下載

  • 去官網下載需要的版本,官網地址:
    https://kafka.apache.org/downloads.
    在這里插入圖片描述

1.3.2 解壓

  • 然后解壓,如下:
    tar -zxvf kafka_2.12-2.8.2.tgz
    
    在這里插入圖片描述

1.3.3 修改配置文件

  • 修改配置文件 server.properties ,如下:
    在這里插入圖片描述

  • 配置信息如下:
    在這里插入圖片描述

    在這里插入圖片描述

    # The id of the broker. This must be set to a unique integer for each broker.
    broker.id=0listeners=PLAINTEXT://內網IP:9092
    advertised.listeners=PLAINTEXT://公網IP:9092zookeeper.connect=zk的公網IP:2181# …… 其他配置,先默認即可
    

2. 啟動 kafka

2.1 Kafka啟動

  • 啟動命令如下:

    ./kafka-server-start.sh ../config/server.properties &
    

    在這里插入圖片描述

  • 啟動成功之后,顯示:
    在這里插入圖片描述

  • 查看進程:

    ps -ef | grep kafka
    

    在這里插入圖片描述

2.2 啟動 kafka 遇到的問題

2.2.1 問題1

  • 問題描述,如下:
    org.apache.kafka.common.KafkaException: Socket server failed to bind to XXX:9092: Cannot assign requested address.
    
    在這里插入圖片描述
  • 問題原因
    • 服務器的公網IP(對外暴露的ip)和真實ip(ifconfig顯示的ip)可能只是映射關系,用戶訪問對外ip時,OpenStack會轉發到對應的真實ip實現訪問。
    • 但此時如果配置文件中 server.properties 配置中的是listeners=PLAINTEXT://公網IP:9092 的時候無法啟動,因為socket無法綁定監聽,就會報上面的錯誤。
    • 解決方法也很簡單,將上面的配置,改成listeners=PLAINTEXT://內網IP:9092即可,其他使用時正常使用公網ip即可,跟真實的內網ip就沒有關系了。
  • 解決問題
    • 先查看內網IP

      ifconfig
      

      在這里插入圖片描述

    • 再修改配置文件 server.properties,如下:

      listeners=PLAINTEXT://內網IP:9092
      advertised.listeners=PLAINTEXT://公網IP:9092
      

      在這里插入圖片描述

  • 然后重新啟動即可。
    在這里插入圖片描述

2.2.2 問題2

3. 簡單實用

3.1 創建topic

  • 如下:
    ./kafka-topics.sh --create --zookeeper zookeeper服務的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
    
    在這里插入圖片描述

3.2 查看已創建的topic

  • 如下:
    ./kafka-topics.sh -list --zookeeper zookeeper服務的IP:2181
    
    在這里插入圖片描述

3.3 發送消息

3.3.1 發送消息命令

  • 如下:
    ./kafka-console-producer.sh --broker-list 內網IP:9092 --topic susu-topic或者./kafka-console-producer.sh --broker-list 公網IP:9092 --topic susu-topic
    
    在這里插入圖片描述

3.3.2 遇到的問題

3.3.2.1 問題1

  • 問題描述如下:
    [2023-08-10 09:01:57,758] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:02:15,979] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:02:49,538] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:02:50,562] ERROR Error when sending message to topic susu-topic with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)org.apache.kafka.common.errors.TimeoutException: Topic susu-topic not present in metadata after 60000 ms.>[2023-08-10 09:03:18,069] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:03:47,001] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    
    在這里插入圖片描述
  • 解決問題:
    這里我的處理是開放 9092 端口,關于開放端口和防火墻問題,可以看下面的文章:
    linux下查看防火墻狀態、關閉防火墻、開放關閉端口等.

3.3.2.2 問題2

  • 開放端口之后的問題,如下,問題描述:
     WARN [Producer clientId=console-producer] Connection to node -1 (/XXX:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
    
    在這里插入圖片描述
  • 解決問題:
    這里就是重啟服務,重啟kafka,問題就解決了,不知道啥問題,總之,重啟能解決百分之九十九的問題!!!

3.4 接收消息

3.4.1 接收消息演示

  • 如下:
    ./kafka-console-consumer.sh --bootstrap-server 外網IP或內網IP:9092 --topic susu-topic --from-beginning
    
    在這里插入圖片描述

3.4.2 接收消息的相關知識小點

  • 如下:
    • 消費方式1: 從頭開始消費
      ./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic susu-topic --from-beginning
      
    • 消費方式2: 從最后一條消息的偏移量+1開始消費
      ./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic susu-topic 
      
  • 具體如下:
    在這里插入圖片描述

3.5 查看zk

  • 如下:
    在這里插入圖片描述

4. 總結

4.1 Kafka 基本概念

  • Kafka 是一種消息隊列,主要用來處理大量數據狀態下的消息隊列,一般用來做日志的處理。既然是消息隊列,那么 Kafka 也就擁有消息隊列的相應的特性了。
  • Kafka 像其他MQ一樣,也有自己的基礎架構,主要存在生產者 Producer、Kafka 集群 Broker、消費者Consumer、注冊消息Zookeeper.
    • Topic:主題,一個虛擬的概念,由1到多個 Partitions 組成,可以理解為一個隊列,生產者和消費者都是面向一個Topic。
    • Partition:分區,實際消息存儲單位。為了實現擴展性,一個非常大的Topic可以分布到多個Broker上,一個Topic可以分為多個 Partition,每個 Partition 是一個有序的隊列(分區有序,不能保證全局有序)。
    • Producer:消息生產者,向 Kafka 中發布消息的角色。
    • Consumer:消息消費者,從 Kafka 中拉取消息消費的客戶端。
    • Broker:經紀人,一臺 Kafka 服務器就是一個 Broker,一個集群由多個 Broker 組成,一個 Broker 可以容納多個 Topic。

4.2 常見命令

4.2.1 常用的基礎命令

  • 啟動命令:
    ./kafka-server-start.sh ../config/server.properties &
    
  • 停止命令:
     ./kafka-server-stop.sh
    
  • 地點

4.2.2 簡單實用命令

  • 創建topic
    # 創建topic
    ./kafka-topics.sh --create --zookeeper zookeeper的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
    
  • 查看已經創建的topic信息
    # 查看已經創建的topic信息
    ./kafka-topics.sh -list --zookeeper zookeeper的IP:2181
    
  • 發送消息
    ./kafka-console-producer.sh --broker-list 內網IP:9092 --topic susu-topic或者./kafka-console-producer.sh --broker-list 公網IP:9092 --topic susu-topic
    
  • 接收消息
    ./kafka-console-consumer.sh --bootstrap-server 外網IP或內網IP:9092 --topic susu-topic --from-beginning
    

4.3 數據日志

  • 查看數據日志,存放路徑,看配置文件里配的哪個路徑 log.dirs,如下:
    在這里插入圖片描述

4.4 結構圖

  • 如下:
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39469.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39469.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39469.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python愛心光波

文章目錄 前言Turtle入門簡單案例入門函數 愛心光波程序設計程序分析 尾聲 前言 七夕要來啦,博主在閑暇之余創作了一個愛心光波,感興趣的小伙伴們快來看看吧! Turtle入門 Turtle 是一個簡單而直觀的繪圖工具,它可以幫助你通過簡…

面試筆記:Android 架構崗,一次4小時4面的體驗

作者:橘子樹 此次面試一共4面4小時,中間只有幾分鐘間隔。對持續的面試狀態考驗還是蠻大的。 關于面試的心態,保持悲觀的樂觀主義心態比較好。面前做面試準備時保持悲觀,盡可能的做足準備。面后積極做復盤,樂觀的接受最…

基于MIV的神經網絡變量篩選

1.案例背景 一般神經網絡中所包含的網絡輸人數據是研究者根據專業知識和經驗預先選擇好的,然而在許多實際應用中,由于沒有清晰的理論依據,神經網絡所包含的自變量即網絡輸入特征難以預先確定,如果將一些不重要的自變量也引入神經網絡,會降低模型的精度,因此選擇有意義的自變量特…

ECS服務器安裝docker

? 為了安裝并配置 Docker ,你的系統必須滿足下列最低要求: 64 位 Linux 或 Windows 系統 如果使用 Linux ,內核版本必須不低于 3.10 能夠使用 sudo 權限的用戶 在你系統 BIOS 上啟用了 VT(虛擬化技術)支持 on your s…

大數據課程I4——Kafka的零拷貝技術

文章作者郵箱:yugongshiyesina.cn 地址:廣東惠州 ▲ 本章節目的 ? 掌握Kafka的零拷貝技術; ? 了解常規的文件傳輸過程; 一、常規的網絡傳輸原理 表面上一個很簡單的網絡文件輸出的過程,在OS底層&…

【java】設計模式——單例模式

單例模式要點: 一個類只需要一個實例化對象;必須自行創建實例;必須自行向整個系統提供這個實例 實現: 只提供私有構造方法;有一個該類的靜態私有對象;提供一個靜態公有方法用于創建、獲取靜態私有對象&…

iOS_crash文件的獲取及符號化(解析)

文章目錄 1. 使用 symbolicatecrash 解析 .ips 文件:2. 使用 CrashSymbolicator.py 解析 ips 文件3. 使用 atos 解析 crash 文件4. Helps4.1 .ips 文件獲取4.2 .crash 文件獲取4.3 獲取 .dSYM 和 .app 文件4.4 使用 dwarfdump 查詢 uuid 5. Tips6. 總結 1. 使用 sym…

一百五十七、Kettle——Kettle最新的官網下載地址(之前的Kettle官網已經無法下載,真坑)

一、目的 之前使用的是kettle8.2,不需要額外下載pentaho-hadoop-shims-hdp30-8.2.2018.11.00-342.jar,因為kettle8.2本身自帶 但是kettle8.2在Linux上安裝后建立共享資源庫又有問題,沒辦法,只能換成kettle9.3 結果,k…

華為網絡篇 RIPv2的基礎配置-25

難度 1復雜度1 目錄 一、實驗原理 1.1 RIP的版本 1.2 RIP的路由更新方式 1.3 RIP的計時器 1.4 RIP的防環機制 二、實驗拓撲 三、實驗步驟 四、實驗過程 總結 一、實驗原理 RIP(Routing Information Protocol,路由信息協議)&am…

微服務概述-7

Shiro 框架 Shiro 是一個用于 Java 應用程序的安全框架。它提供了身份驗證、授權、加密和會話管理等功能,可以幫助開發人員構建安全可靠的應用程序。 Java 中針對權限管理常見的有 2 個著名的框架:spring security 和 shiro shiro 基本概念 credentia…

機器學習筆記 - 基于C++的??深度學習 二、實現卷積運算

一、卷積 卷積是信號處理領域的老朋友。最初的定義如下 在機器學習術語中: I(…)通常稱為輸入 K(…)作為內核,并且 F(…)作為給定K的I(x)的特征圖。 慮多維離散域,我們可以將積分轉換為以下求和 對于二維數字圖像,我們可以將其重寫為: <

編程練習(1)

目錄 一.選擇題 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題&#xff1a; 第五題&#xff1a; ?編輯 二.編程題 第一題&#xff1a; 第二題&#xff1a; 1.暴力方法&#xff1a; 2.數組法&#xff1a; 一.選擇題 第一題&#xff1a; 解析&…

【vue】簡潔優雅的火花線、趨勢線

來由 在github發現個好看易用的vue趨勢線組件&#xff0c;特此記錄。 效果 趨勢圖生成后效果如上&#xff0c;線條為漸變色&#xff0c;可設置是否平滑。具體線條走勢&#xff0c;根據數據動態生成。 使用 安裝 npm i vuetrend -S 引入 import Vue from "vue"…

MySQL性能分析之慢查詢日志查看

一、背景 MySQL的慢查詢日志是MySQL提供的一種日志記錄,他用來記錄在MySQL中響應的時間超過閾值的語句,具體指運行時間超過long_query_time(默認是10秒)值的SQL,會被記錄到慢查詢日志中。 慢查詢日志一般用于性能分析時開啟,收集慢SQL然后通過explain進行全面分析,一…

時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測

時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測 目錄 時序預測 | MATLAB實現WOA-CNN-BiLSTM鯨魚算法優化卷積雙向長短期記憶神經網絡時間序列預測預測效果基本介紹程序設計學習總結參考資料 預測效果 基本介紹 時序預測 | MATLAB實現…

Python案例|Pandas正則表達式

字符串的處理在數據清洗中占比很大。也就是說,很多不規則的數據處理都是在對字符串進行處理。Excel提供了拆分、提取、查找和替換等對字符串處理的技術。在Pandas中同樣提供了這些功能,并且在Pandas中還有正則表達式技術的加持,讓其字符串處理能力更加強大。 01、正則 正則就是…

TypeScript相關面試題

typeScript 1.什么是TypeScript?是什么&#xff1f;特性&#xff1f;區別&#xff1f; 2.TypeScript數據類型&#xff1f;3.說說你對 TypeScript 中枚舉類型的理解&#xff1f;應用場景&#xff1f;4.說說你對 TypeScript 中接口的理解&#xff1f;應用場景&#xff1f;使用方…

docker中的jenkins之流水線構建

docker中的jenkins之流水線構建項目 1、用node這種方式&#xff08;因為我用pipeline方式一直不執行&#xff0c;不知道為什么&#xff09; 2、創建項目 創建兩個參數&#xff0c;一個是宿主端口號&#xff0c;一個是docker中的端口號 3、使用git項目中的Jenkinsfile 4、編寫…

【AGI】世界首次實現室溫超導LK-99

論文&#xff1a;The First Room-Temperature Ambient-Pressure Superconductor GPT論文總結&#xff1a; 根據所提供的信息&#xff0c;這篇論文報道了一種在室溫和常壓下工作的室溫超導體LK-99。LK-99的超導性是通過微小的結構畸變引起的&#xff0c;而不是通過溫度和壓力等外…

09 - 連續的多個commit整理成1個

查看所有文章鏈接&#xff1a;&#xff08;更新中&#xff09;GIT常用場景- 目錄 文章目錄 將連續的多個commit整理成1個 將連續的多個commit整理成1個 將anranxiaohunzhang和xianglongshibazhang合并起來&#xff08;將anranxiaohunzhang合并到降龍十八掌上&#xff0c;生成新…