Windows安裝kafka

壓縮包下載地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/3.6.1/kafka_2.13-3.6.1.tgz
在這里插入圖片描述

啟動kafka步驟

zookeeper-server-start.bat

rem 閉命令提示符窗口的命令回顯,這樣在運行腳本時不會顯示腳本的具體命令內容
@echo offrem 命令行啟動未提供參數則輸出: USAGE:命令 zookeeper.properties 中止
IF [%1] EQU [] (echo USAGE: %0 zookeeper.propertiesEXIT /B 1
)
rem 開始了一個局部環境,只在當前腳本執行過程中有效
SetLocal
rem 未設置值,則設置
IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] (set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../config/log4j.properties
)
IF ["%KAFKA_HEAP_OPTS%"] EQU [""] (set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M
)
rem %~dp0獲取命令的文件路徑,%* 讀取執行這個命令攜帶的鎖有參數
"%~dp0kafka-run-class.bat" org.apache.zookeeper.server.quorum.QuorumPeerMain %*rem 在腳本中限定變量的作用范圍,以防止對環境變量的更改影響到腳本之外的其他部分
EndLocal

kafka-run-class.bat

@echo offsetlocal enabledelayedexpansionIF [%1] EQU [] (echo USAGE: %0 classname [opts]EXIT /B 1
)rem Using pushd popd to set BASE_DIR to the absolute path
rem pushd表示切換目錄,這里作用是切換到%~dp0對應的上2級目錄
pushd %~dp0..\..
rem CD是系統變量,%CD%表示當前工作目錄的路徑
set BASE_DIR=%CD%
rem popd 切回原來的目錄
popdIF ["%SCALA_VERSION%"] EQU [""] (set SCALA_VERSION=2.13.11
)rem 延遲環境變量擴展后的一種變量訪問方式!var!
IF ["%SCALA_BINARY_VERSION%"] EQU [""] (for /f "tokens=1,2 delims=." %%a in ("%SCALA_VERSION%") do (set FIRST=%%aset SECOND=%%bif ["!SECOND!"] EQU [""] (set SCALA_BINARY_VERSION=!FIRST!) else (set SCALA_BINARY_VERSION=!FIRST!.!SECOND!))
)rem Classpath addition for kafka-core dependencies 為kafka核心依賴添加類路徑
rem for %%i in (...) do (...)這是一個 for 循環,用于遍歷指定路徑下滿足特定條件的文件
for %%i in ("%BASE_DIR%\core\build\dependant-libs-%SCALA_VERSION%\*.jar") do (rem call :concat "%%i"
)rem Classpath addition for kafka-examples
for %%i in ("%BASE_DIR%\examples\build\libs\kafka-examples*.jar") do (call :concat "%%i"
)rem Classpath addition for kafka-clients
for %%i in ("%BASE_DIR%\clients\build\libs\kafka-clients*.jar") do (call :concat "%%i"
)rem Classpath addition for kafka-streams
for %%i in ("%BASE_DIR%\streams\build\libs\kafka-streams*.jar") do (call :concat "%%i"
)rem Classpath addition for kafka-streams-examples
for %%i in ("%BASE_DIR%\streams\examples\build\libs\kafka-streams-examples*.jar") do (call :concat "%%i"
)for %%i in ("%BASE_DIR%\streams\build\dependant-libs-%SCALA_VERSION%\rocksdb*.jar") do (call :concat "%%i"
)rem Classpath addition for kafka tools 為kafka工具添加類路徑
for %%i in ("%BASE_DIR%\tools\build\libs\kafka-tools*.jar") do (call :concat "%%i"
)for %%i in ("%BASE_DIR%\tools\build\dependant-libs-%SCALA_VERSION%\*.jar") do (call :concat "%%i"
)
rem 兩層for循環
for %%p in (api runtime file json tools) do (for %%i in ("%BASE_DIR%\connect\%%p\build\libs\connect-%%p*.jar") do (call :concat "%%i")if exist "%BASE_DIR%\connect\%%p\build\dependant-libs\*" (call :concat "%BASE_DIR%\connect\%%p\build\dependant-libs\*")
)rem Classpath addition for release
for %%i in ("%BASE_DIR%\libs\*") do (call :concat "%%i"
)rem Classpath addition for core
for %%i in ("%BASE_DIR%\core\build\libs\kafka_%SCALA_BINARY_VERSION%*.jar") do (call :concat "%%i"
)rem JMX settings JMX的設置
IF ["%KAFKA_JMX_OPTS%"] EQU [""] (set KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false
)rem JMX port to use 使用的JMX端口
IF ["%JMX_PORT%"] NEQ [""] (set KAFKA_JMX_OPTS=%KAFKA_JMX_OPTS% -Dcom.sun.management.jmxremote.port=%JMX_PORT%
)rem Log directory to use 要使用的日志目錄
IF ["%LOG_DIR%"] EQU [""] (set LOG_DIR=%BASE_DIR%/logs
)rem Log4j settings
IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] (set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%BASE_DIR%/config/tools-log4j.properties
) ELSE (rem create logs directory 創建一個目錄文件夾IF not exist "%LOG_DIR%" (mkdir "%LOG_DIR%")
)set KAFKA_LOG4J_OPTS=-Dkafka.logs.dir="%LOG_DIR%" "%KAFKA_LOG4J_OPTS%"rem Generic jvm settings you want to add 要添加的通用jvm設置
IF ["%KAFKA_OPTS%"] EQU [""] (set KAFKA_OPTS=
)set DEFAULT_JAVA_DEBUG_PORT=5005
set DEFAULT_DEBUG_SUSPEND_FLAG=n
rem Set Debug options if enabled
IF ["%KAFKA_DEBUG%"] NEQ [""] (IF ["%JAVA_DEBUG_PORT%"] EQU [""] (set JAVA_DEBUG_PORT=%DEFAULT_JAVA_DEBUG_PORT%)IF ["%DEBUG_SUSPEND_FLAG%"] EQU [""] (set DEBUG_SUSPEND_FLAG=%DEFAULT_DEBUG_SUSPEND_FLAG%)set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=!DEBUG_SUSPEND_FLAG!,address=!JAVA_DEBUG_PORT!IF ["%JAVA_DEBUG_OPTS%"] EQU [""] (set JAVA_DEBUG_OPTS=!DEFAULT_JAVA_DEBUG_OPTS!)echo Enabling Java debug options: !JAVA_DEBUG_OPTS!set KAFKA_OPTS=!JAVA_DEBUG_OPTS! !KAFKA_OPTS!
)rem Which java to use
IF ["%JAVA_HOME%"] EQU [""] (set JAVA=java
) ELSE (set JAVA="%JAVA_HOME%/bin/java"
)rem Memory options
IF ["%KAFKA_HEAP_OPTS%"] EQU [""] (set KAFKA_HEAP_OPTS=-Xmx256M
)rem JVM performance options
IF ["%KAFKA_JVM_PERFORMANCE_OPTS%"] EQU [""] (set KAFKA_JVM_PERFORMANCE_OPTS=-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true
)IF not defined CLASSPATH (echo Classpath is empty. Please build the project first e.g. by running 'gradlew jarAll'EXIT /B 2
)
rem %?% 讀取環境變量 
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*
rem echo.
rem echo %COMMAND%
rem echo.
%COMMAND%rem 將控制權轉移到腳本的文件尾
goto :eof
:concat
rem 這是一個條件語句,用于檢查CLASSPATH環境變量是否已定義
IF not defined CLASSPATH (set CLASSPATH="%~1"
) ELSE (set CLASSPATH=%CLASSPATH%;"%~1"
)

啟動失敗日志

缺少啟動參數

在這里插入圖片描述

輸入行太長

組合起來的執行命令太長,Windows系統不支持。將項目放到盤符目錄下。
在這里插入圖片描述

找不到類

為了解決路徑太長,去掉了一級目錄。因為啟動命令中有通過當前命令的位置去加載jar包。
在這里插入圖片描述

絕對路徑配置文件加載報錯

# 文件地址錯誤
/kafka_2.13-3.6.1/bin/windows/zookeeper-server-start.bat /kafka_2.13-3.6.1/config/zookeeper.properties

在這里插入圖片描述

先對路徑無法啟動

./bin/windows/zookeeper-server-start.bat ./bin/windows/zookeeper.properties/bin/windows/zookeeper-server-start.bat /bin/windows/zookeeper.propertiesbin/windows/zookeeper-server-start.bat bin/windows/zookeeper.properties

在這里插入圖片描述

啟動成功

1. 啟動zookeeper

# 當前路徑下啟動
zookeeper-server-start.bat ../../config/zookeeper.properties# 將文件復制一份到啟動命令處
zookeeper-server-start.bat zookeeper.properties# 絕對路徑啟動
/kafka_2.13-3.6.1/bin/windows/zookeeper-server-start.bat /kafka_2.13-3.6.1/bin/windows/zookeeper.properties/kafka_2.13-3.6.1/bin/windows/zookeeper-server-start.bat /kafka_2.13-3.6.1/config/zookeeper.properties# Window使用相對路徑 系統找不到指定的路徑
/bin/windows/zookeeper-server-start.bat /bin/config/zookeeper.properties/kafka_2.13-3.6.1/bin/windows/zookeeper-server-start.bat /kafka_2.13-3.6.1/bin/config/zookeeper.properties# 相對路徑啟動
call ./bin/windows/zookeeper-server-start.bat ./config/zookeeper.propertiescall ./bin/windows/zookeeper-server-start.bat ./bin/windows/zookeeper.properties

在這里插入圖片描述
ctrl + C停止,或者關閉窗口

3.啟動kafka-server

# 當前路徑下啟動 將文件復制一份到啟動命令處
kafka-server-start.sh config/server.properties# 其他方式啟動同上

在這里插入圖片描述

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

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

相關文章

Proteus仿真--8×8LED點陣屏仿電梯數字滾動顯示

本文介紹基于88LED點陣屏仿電梯數字滾動顯示設計(完整仿真源文件及代碼見文末鏈接) 仿真圖如下 其中K1-K5的5個按鍵分別代表不同樓層,摁下按鍵后在8X8LED上便會顯示到對應樓層的跳變信息,模擬電梯的運作 仿真運行視頻 Proteus仿…

nodejs多線程,fork和Worker

一、前言 javascript是單線程執行的,如果想要多線程執行,那么相當于再運行一個node,其實不該理解成多線程,更像是多進程。 二、Worker(‘worker_threads’模塊) worker有點類似exec,直接再cmd執行node命令,不同的是兩…

《安富萊嵌入式周報》第328期:自主微型機器人,火星探測器發射前失誤故障分析,微軟推出12周24期免費AI課程,炫酷3D LED點陣設計,MDK5.39發布

周報匯總地址:嵌入式周報 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬漢嵌入式論壇 - Powered by Discuz! 更新一期視頻教程: 【實戰技能】 單步運行源碼分析,一期視頻整明白FreeRTOS內核源碼框架和運行…

【STM32】TIM定時器基本定時功能

第一部分:定時器基本定時的功能; 第二部分:定時器的輸出比較功能; 第三部分:定時器輸入捕獲的功能; 第四部分:定時器的編碼接口。 1 TIM簡介 TIM(Timer)定時器&#…

在OpenCV基于深度學習的超分辨率模型實踐

1. 引言 OpenCV是一個開源的計算機視覺庫,擁有大量優秀的算法。基于最新的合并,OpenCV包含一個易于使用的接口,主要用于實現基于深度學習方法的超分辨率(SR)。該接口包含預先訓練的模型,這些模型可以非常容…

redis中使用事務保護數據完整性

事務是指一個執行過程,要么全部執行成功,要么失敗什么都不改變。不會存在一部分成功一部分失敗的情況,也就是事務的ACID四大特性(原子性、一致性、隔離性、持久性)。但是redis中的事務并不是嚴格意義上的事務&#xff…

使用flutter_native_splash替換啟動圖片,iOS端替換不成功

使用flutter_native_splash替換啟動圖片,iOS端替換不成功 1、刪除App重啟手機;2、重新創建一個新的LaunchScreen.storyboard,比如命名為NewLaunchScreen.storyboard,在General里面設置Launch Screen File為這個新的NewLaunchScree…

藍橋杯 day01 奇怪的數列

題目描述 奇怪的數列 從 X 星截獲一份電碼,是一些數字,如下: 13 1113 3113 132113 1113122113 ?? YY 博士經徹夜研究,發現了規律: 第一行的數字隨便是什么,以后每一行都是對上一行"讀出來…

智能優化算法應用:基于蝗蟲算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用:基于蝗蟲算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用:基于蝗蟲算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.蝗蟲算法4.實驗參數設定5.算法結果6.參考文獻7.MA…

【數據挖掘】國科大蘇桂平老師數據庫新技術課程作業 —— 第二次作業

1 設 F { A B → C , B → D , C D → E , C E → G H , G → A } F\{AB\rightarrow C,B\rightarrow D, CD\rightarrow E, CE\rightarrow GH, G\rightarrow A \} F{AB→C,B→D,CD→E,CE→GH,G→A},用推理的方法證明 F ∣ A B → G F\;|AB\rightarrow G F∣AB→…

持續集成交付CICD:使用Maven命令上傳Nexus制品

目錄 一、實驗 1.使用Maven命令上傳Nexus制品(第一種方式) 2.使用Maven命令上傳Nexus制品(第二種方式) 一、實驗 1.使用Maven命令上傳Nexus制品(第一種方式) (1)指定一個 hoste…

說說React jsx轉換成真實DOM的過程?

在React中,JSX(JavaScript XML)是一種語法糖,用于描述用戶界面的結構和組件關系。當你編寫React組件并包含JS JSX解析:React中的JSX代碼首先會被解析成JavaScript對象。這個過程通常是通過Babel等工具進行的&#xff0…

Flutter視頻播放器在iOS端和Android端都能實現全屏播放

Flutter開發過程中,對于視頻播放的三方組件有很多,在Android端適配都挺好,但是在適配iPhone手機的時候,如果設置了UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationLandscapeRight都為false的情況下,無法…

pytorch 筆記:dist 和 cdist

1 dist 1.1 基本使用方法 torch.dist(input, other, p2) 計算兩個Tensor之間的p-范數 1.2 主要參數 input輸入張量other另一個輸入張量p范數 input 和 other的形狀需要是可廣播的 1.3 舉例 import torchxtorch.randn(4) x #tensor([ 1.2698, -0.1209, 0.0462, -1.3271…

基于PaddleOCR銀行卡識別實現(四)之uni-app離線插件

目的 在前三篇文章中完成了銀行卡識別整個模型訓練等工作,通過了解PaddleOCR的端側部署,我們也可以將銀行卡號檢測模型和識別模型移植到手機中,做成一款uni-app手機端離線銀行卡號識別的應用。 準備工作 為了不占用過多篇幅,這…

Nginx的性能優化、安全以及防盜鏈配置

目錄 一、nginx的日志分割 二、nginx性能優化之啟用epoll模型 三、nginx性能優化之設置worker進程數并與cpu進行綁核 四、nginx性能優化之調整worker的最大打開文件數和最大處理連接請求數量 五、nginx性能優化之啟用gzip壓縮,提高傳輸,減少帶寬 六…

字節iconpark基于vue使用

1.安裝 npm i icon-park/vue 2.導入 說明:導入并在main.js使用。 import { install } from icon-park/vue/es/all; import icon-park/vue/styles/index.css; Vue.use(install) 3.打開官網 ByteDance IconPark 4.復制 說明:點擊官方圖標庫&#xff0c…

Java-JDBC操作MySQL

Java-JDBC操作MySQL 文章目錄 Java-JDBC操作MySQL一、Java-JDBC-MySQL的關系二、創建連接三、登錄MySQL四、操作數據庫1、返回型操作2、無返回型操作 練習題目及完整代碼 一、Java-JDBC-MySQL的關系 #mermaid-svg-B7qjXrosQaCOwRos {font-family:"trebuchet ms",verd…

國產Type-C PD芯片—接口快充取電芯片

常用USB PDTYPE-C受電端,即設備端協議IC芯片(PD Sink,也叫PD誘騙芯片),誘導取電芯片。 產品介紹 LDR6328: ◇ 采用 SOP-8 封裝 ◇ 兼容 USB PD 3.0 規范,支持 USB PD 2.0 ◇ 兼容 QC 3.0 規范&#x…

TailwindCSS 支持文本文字超長溢出截斷、文字文本省略號

前言 文本文字超長截斷并自動補充省略號,這是前端日常開發工作中常用的樣式設置能力,文字超長截斷主要分為單行超長截斷和多行超長截斷。本文通過介紹基本CSS樣式、tailwindcss 類設置兩種基礎方式來實現文字超長截斷。 TailwindCSS 設置 單行文字超長…