Windows平臺搭建Kafka原始碼開發環境(Eclipse版本)
最近在研究Kafka原始碼,需要自己搭建一個開發環境。官網上給出的提示略顯簡單,照著做了一遍也碰到了一些問題。特此記錄下來。
開發環境: Oracle Java 1.7_u71 + Eclipse 4.4.1 + Scala 2.10.4 + Gradle 2.3 + Kafka 0.8.2.1
一、Gradle安裝配置
Kafka程式碼自0.8.x之後就使用Gradle來進行編譯和構建了,因此首先需要安裝Gradle。Gradle整合並吸收了Maven主要優點的同時還克服了Maven自身的一些侷限性——你可以訪問https://www.gradle.org/downloads/ 下載最新的Gradle版本。下載解壓到一個目錄,然後建立一個環境變數GRADLE_HOME指向解壓的目錄,再將%GRADLE_HOME%\bin加到PATH環境變數中,Gradle就安裝配置好了。開啟一個cmd輸入gradle -v 驗證一下:
二、Kafka原始碼下載
安裝好Gradle之後我們開始下載Kafka的原始碼,當前最新的穩定版本是0.8.2.1,你可以從http://kafka.apache.org/downloads.html處下載原始碼包。下載之後解壓縮到一個目錄,目錄結構如下圖所示:
重要目錄的作用如下:
bin目錄: Windows和Unix平臺下的執行指令碼,比如kafka-server-start,console-producer,console-consumer等
clients目錄: Kafka客戶端程式碼
config目錄: Kafka配置檔案,其中比較重要的是server.properties,啟動Kafka
broker需要直接載入這個檔案
contrib目錄: Kafka與hadoop整合的程式碼,包括hadoop-consumer和hadoop-producer
core目錄: Kafka的核心程式碼,也是作者後面重點要學習的部分
examples目錄: Kafka樣例程式碼,例如如何使用Java編寫簡單的producer和consumer
system_test: 系統測試指令碼,主要用python編寫
其他的目錄和配置檔案大多和gradle配置有關,就不贅述了。
三、下載gradle wrapper類庫
將這個配置單獨作為一個步驟是因為官網的教程中並沒有詳細給出這方面的配置方法。如果直接從官網下載了原始碼進而執行gradlew eclipse生成專案工程就會報錯:
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
在Kafka原始碼的gradle子目錄中果然沒有wrapper類庫,因此我們要先安裝一個Gradle Wrapper庫,方法也很簡單,開啟個cmd視窗,在Kafka原始碼根目錄下執行gradle wrapper即可。你只需執行這個命令一次即可。如果是首次安裝需要花一些時間去下載所需的jar包。Kafka的原始碼是用Scala語言編寫的,下圖中清晰地顯示我們使用Scala版本是2.10.4。你可以在gradle.properties檔案中指定Scala版本。
命令執行成功之後,在kafka的gradle子目錄中會多出一個wrapper子目錄,裡面包含了一個jar包和一個配置檔案。至此Gradle wrapper已被成功安裝在本機:
四、生成Eclipse工程檔案並匯入到Eclipse中
上述準備工作一切就緒後,我們現在可以生成Eclipse工程檔案。具體做法為開啟一個cmd視窗,切換到kafka原始碼根路徑下,執行gradlew eclipse,如果是第一次執行,可能會花費一些時間去下載必要的jar包,在等待了一段時間之後,終於看到了BUILD SUCCESSFUL的字樣表示專案工程檔案生成成功:
一旦成功生成專案工程檔案,我們就可以將kafka工程匯入到Eclipse中。在Eclipse中Import->Existing Projects into Workspace的介面中可以看到有4個工程:
core工程就是最核心的kafka工程,也是作者後面要重點研究的部分。另外貌似core工程會依賴於clients工程,因此筆者匯入了core和clients兩個工程。匯入之後一切看似很順利,不過後面發現Eclipse提示說core工程報錯:
scalatest_2.10-1.9.1.jar of core build path is cross-compiled with an incompatible version of Scala (2.10.0). In case this report is mistaken, this check can be disabled in the compiler preference page.
看樣子是Scala compiler的版本問題,於是選中core工程,通過右鍵->Properties->Scala compiler進入Scala編譯器設定介面,將Scala版本設定為2.10,與gradle.properties中的保持一致,順手將target jvm的版本也調成了1.7。儲存重新build之後Eclipse報錯消失。
五、配置server.properties
kafka broker啟動時需要載入server.properties檔案。該檔案預設位置是在config目錄下,因此需要設定執行kafka.Kafka.scala時的Program arguments為../config/server.properties以保證Kafka.scala能夠找到該配置檔案。
另外,由於kafka broker會將一些後設資料資訊儲存在zookeeper中,因此在啟動kafka broker之前必須要先有一個啟動著的zookeeper例項或叢集,然後我們還需要在server.properties檔案更新zookeeper連線資訊(主機名:埠CSV列表),如下圖所示:
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=10.11.207.97:2181
# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000
六、啟動kafka broker
Okay! 現在可以說一切準備就緒了,可以執行kafka了,如果前面所有步驟都執行正確的話,一個kafka broker程式應該會正確地啟動起來,如下圖所示:
另外說一下,如果啟動時沒有看到任何log輸出,可以將config目錄下的log4j.properties檔案拷貝到core\src\main\scala目錄下,應該就能解決此問題。
好了,至此你就可以使用這個可執行的環境來研究Kafka原始碼了。祝大家好運:)
轉載: http://www.bubuko.com/infodetail-695974.html
相關文章
- Go Eclipse開發工具環境搭建(最新)GoEclipse
- GO語言eclipse開發環境搭建GoEclipse開發環境
- ODOO二開—windows開發環境搭建(13版本)OdooWindows開發環境
- GOLang開發環境搭建(Windows)Golang開發環境Windows
- windows開發genieacs環境搭建Windows
- qgroundcontrol開發環境搭建原始碼編譯開發環境原始碼編譯
- 【Kafka】基於Windows環境的Kafka有關環境(scala+zookeeper+kafka+視覺化工具)搭建、以及使用.NET環境開發的案例程式碼與演示KafkaWindows視覺化
- Eclipse + MinGW搭建C++開發環境踩坑EclipseC++開發環境
- Windows下Kafka2.8環境搭建教程WindowsKafka
- Hi3511平臺開發環境搭建資料開發環境
- 安卓開發環境配置之Windows+ADT+eclipse安卓開發環境WindowsEclipse
- Python 開發環境搭建(03):Linux 下 eclipse 安裝Python開發環境LinuxEclipse
- Go語言環境搭建(Windows版本)2020GoWindows
- 使用ansible搭建python多版本開發環境Python開發環境
- 搭建golang開發環境(1.14之後版本)Golang開發環境
- Windows下React Native開發環境的搭建WindowsReact Native開發環境
- windows 以太坊開發框架Truffle環境搭建Windows框架
- Windows系統中搭建python開發環境WindowsPython開發環境
- Flutter學習(一)——搭建開發環境(Windows)Flutter開發環境Windows
- Superset Windows二次開發環境搭建Windows開發環境
- 在Windows10搭建WebAssembly開發環境WindowsWeb開發環境
- jdk-8u261-windows-x64.exe——eclipse環境搭建JDKWindowsEclipse
- 直播平臺開發經驗分享——直播平臺搭建環境配置詳解及分析
- MacOs/Liunx主機搭建windows平臺雙機除錯環境MacWindows除錯
- Elasticsearch原始碼解析:環境搭建Elasticsearch原始碼
- 1、Spring原始碼環境搭建Spring原始碼
- 在 Windows 上搭建 React Native IOS 開發環境WindowsReact NativeiOS開發環境
- windows上python3開發環境的搭建WindowsPython開發環境
- windows 下搭建swoft2 本地開發環境Windows開發環境
- 【Hadoop】:Windows下使用IDEA搭建Hadoop開發環境HadoopWindowsIdea開發環境
- Windows10 Java Spring boot 開發環境搭建WindowsJavaSpring Boot開發環境
- 在windows下配置Eclipse + go環境WindowsEclipseGo
- 第二課 如何在WINDOWS環境下搭建以太坊開發環境Windows開發環境
- TensorFlow Java+eclipse下環境搭建JavaEclipse
- ESP32的SDK開發之window系統下eclipse開發環境搭建Eclipse開發環境
- 數字藏品nft系統開發平臺搭建原始碼原始碼
- JVM 原始碼分析(二):搭建 JDK 8 原始碼除錯環境(Windows 上使用 CLion)JVM原始碼JDK除錯Windows
- Django搭建個人部落格:在Windows中搭建開發環境DjangoWindows開發環境
- Flutter開發入門之開發環境搭建(VSCode搭建Flutter開發環境)Flutter開發環境VSCode