GeoEvent使用kafka作為輸入

做了一回搬運(yùn)工和實(shí)踐者。原教程地址:http://www.arcgis.com/home/item.html?id=7f94ec2a3eb944c79e98fe854d60d671由GeoEvent團(tuán)隊(duì)提供。下載的教程附帶數(shù)據(jù)、腳本等。

一、部署過程

Apache Kafka安裝配置

1.安裝ArcGIS Server10.5.1 和ArcGIS GeoEvent Server10.5.1

2.下載并安裝jdk8 網(wǎng)址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

3.下載Apache Kafka version 0.10.1.1 網(wǎng)址:https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.1.1/kafka_2.11-0.10.1.1.tgz

4.解壓并移動(dòng)到c:\kafka目錄

5.設(shè)置KAFKA_HOME系統(tǒng)變量,值為C:\kafka\kafka_2.11-0.10.1.1

注意:kafka的ZooKeeper端口需要更改,因?yàn)楹虶eoEvent使用的Zookeeper端口沖突。

6.打開C:\kafka\Kafka_2.11-0.10.1.1\config

7.更改zookeeper.properties文件中的clientPort屬性從2181變成2183;server.properties文件中的zookeeper.connect屬性中的2181改為2183。

8.運(yùn)行教程中\(zhòng)scripts文件夾下的run-zookeeper命令

9.運(yùn)行教程中\(zhòng)scprits文件夾下的run-kafka命令

10.運(yùn)行教程中\(zhòng)scprits文件夾下的create-topics命令,默認(rèn)創(chuàng)建一個(gè)Flights topic

添加kafka傳輸?shù)紾eoEvent Server

1.打開ArcGIS GeoEvent Manager然后打開站點(diǎn)>組件>傳輸

2.點(diǎn)擊添加本地傳輸,瀏覽到教程中的\component文件夾中的kafka-transport-10.5.0.jar

3.點(diǎn)擊打開

4.點(diǎn)擊添加傳輸?shù)紾eoEvent Server,如果添加成功,將出現(xiàn)一個(gè)消息。

5.檢查列表中是否有Apache Kafka Inbound Transport 和 Apache Kafka Outbound Transport


添加傳輸

注意:如果kafka傳輸出現(xiàn)在傳輸列表中,則轉(zhuǎn)到下一節(jié)。如果在導(dǎo)入之后,kafka傳輸沒有出現(xiàn)在傳輸列表中,請(qǐng)按照以下步驟執(zhí)行:

1,進(jìn)入\deploy文件夾,將文件夾中的kafka-transport-10.5.0.jar文件后綴更改為kafka-transport-10.5.0.jar.OLD文件。注意后綴名是.jar.OLD,經(jīng)測(cè)試.OLD不可行,.jar.OLD才可以。2,然后再復(fù)制一個(gè)kafka-transport-10.5.0.jar文件到\deploy目錄下,這時(shí)目錄中存在一個(gè)kafka-transport-10.5.0.jar和一個(gè)kafka-transport-10.5.0.jar.OLD

3,在GeoEvent Manager的組件傳輸頁面中https://ip:6143/geoevent/manager/components.html,刷新此網(wǎng)頁,就會(huì)出現(xiàn)kafka出站和入站的兩個(gè)傳輸類型

導(dǎo)入一個(gè)GeoEvent Server配置

1.打開ArcGIS GeoEvent Manager然后打開站點(diǎn)>GeoEvent>配置存儲(chǔ) 點(diǎn)擊導(dǎo)入配置。

2.瀏覽到教程中\(zhòng)configurations文件夾中的kafka_config.xml。

3.點(diǎn)擊導(dǎo)入配置

4.訪問站點(diǎn)>GeoEvent>連接器,搜索kafka。可以看到Publish Text to Kafka 和 Receive Text from Kafka兩個(gè)連接器出現(xiàn)。


導(dǎo)入連接器配置

配置輸入連接器來接收kafka的消息

1.訪問服務(wù)>輸入,點(diǎn)擊添加輸入

2.選擇Receive Text from Apache Kafka輸入連接器類型

kafka輸入連接器

3.現(xiàn)在,如下設(shè)定Receive Text from Apache Kafka類型的輸入


輸入的設(shè)置

4.點(diǎn)擊保存

5.訪問 服務(wù)>輸出,添加輸出

6.選擇Write to a JSON File類型

7.注冊(cè)并使用文件夾c:/shuju,其余參數(shù)按默認(rèn)值。

8.點(diǎn)擊保存

9.訪問服務(wù)>監(jiān)控頁面,確認(rèn)新的輸入和輸出已存在。

10.訪問 服務(wù)>GeoEvent服務(wù),點(diǎn)擊添加服務(wù)

12.命名為KafkaInDataLogger點(diǎn)擊創(chuàng)建。

13.拖拽kafka-text-in 輸入和 file-json-out輸出,并使前者指向后者。

服務(wù)詳情

14.點(diǎn)擊發(fā)布

15.用記事本打開教程中\(zhòng)simulations文件夾中的Flights.csv文件,并復(fù)制第一行。

16.運(yùn)行\(zhòng)scrpits下的run-producer-test.bat命令。

17.在run-producer-test命令行中粘貼復(fù)制的數(shù)據(jù),敲擊回車鍵。


kafka生產(chǎn)者

18.在c:/shuju文件夾中,將看到此數(shù)據(jù)。


GeoEvent成功接收并輸出

19.在GeoEvent Manager中將看到,count增加了1。


count增加

20.在GeoEvent定義中,找到Flight,點(diǎn)擊編輯。


增加了一個(gè)topic同名定義

21.修改字段類型和標(biāo)簽,如下:


編輯定義

至此,GeoEvent成功接入kafka。

二、測(cè)試過程

主要測(cè)試此環(huán)境在重啟時(shí)的穩(wěn)定性。

重啟kafka,發(fā)送消息,GeoEvent依然正常收到

1.在kafka命令窗口ctrl+c,Y停止。

2.在zookeeper命令窗口ctrl+c,Y停止。


kafka停止

3.運(yùn)行教程中\(zhòng)scripts文件夾下的run-zookeeper命令

4.運(yùn)行教程中\(zhòng)scprits文件夾下的run-kafka命令

5.運(yùn)行\(zhòng)scrpits下的run-producer-test.bat命令。

6.在run-producer-test命令行中粘貼復(fù)制的一條數(shù)據(jù),敲擊回車鍵。

7.GeoEvent監(jiān)控頁面此服務(wù)輸入輸出數(shù)量+1,c:/shuju下的json文件中增加了相同內(nèi)容的json數(shù)據(jù)。

重啟GeoEvent,發(fā)送消息,GeoEvent依然正常收到

在windows服務(wù)中停止,然后開啟GeoEvent服務(wù)。其余步驟同上。

重啟計(jì)算機(jī),發(fā)送消息,GeoEvent依然正常收到

重啟計(jì)算機(jī),其余步驟基本一致,需要注意的是,若重啟計(jì)算機(jī)后GeoEvent服務(wù)自動(dòng)啟動(dòng),后啟動(dòng)zookeeper和kafka。那么有可能會(huì)出現(xiàn)輸入找不到的情況。

將ArcGIS GeoEvent Server服務(wù)設(shè)置為手動(dòng)啟動(dòng)。并且在每次此服務(wù)啟動(dòng)前,確保輸入端的kafka和zookeeper已運(yùn)行。即可解決。

只要保證kafka和GeoEvent啟動(dòng)的順序,kafka輸入沒有丟失情況。

需要注意的關(guān)鍵步驟如下:

1.一定要在kafka運(yùn)行狀態(tài)下并且創(chuàng)建完topic后,再在GeoEvent中導(dǎo)入kafka傳輸。

2.導(dǎo)入配置后,連接器自動(dòng)出現(xiàn),而不是手動(dòng)創(chuàng)建連接器。

3.注意kafka的版本為Kafka_2.11-0.10.1.1。

4.重啟時(shí)一定要保證kafka和zookeeper已運(yùn)行,再啟動(dòng)ArcGIS GeoEvent。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容