iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
Software Development

用30天介紹 open source 專案 Ohara 系列 第 21

Day 21 部署自訂義的 Source Connector

延續前二天介紹要如何撰寫以及測試 Source Connector 的部份,今天要使用 Ohara manager 的 UI,把撰寫完 connector 的 jar 上傳到 Worker Cluster 上,並且使用 Pipeline Graph 建立實作的 RandomNumberSourceConnector 把亂數產生的資料寫入到 topic 上,然後再使用 Console Sink Connector 程式把 topic 資料,使用 log 的方式印到 Worker 的服務裡。

今天的 Demo 使用的 ohara 版本為 0.8.0-SNAPSHOT,所以需要先 pull 以下的 docker image,指令如下:

$ docker pull oharastream/zookeeper:0.8.0-SNAPSHOT 
$ docker pull oharastream/broker:0.8.0-SNAPSHOT 
$ docker pull oharastream/connect-worker:0.8.0-SNAPSHOT 
$ docker pull oharastream/streamapp:0.8.0-SNAPSHOT 
$ docker pull oharastream/configurator:0.8.0-SNAPSHOT 
$ docker pull oharastream/manager:0.8.0-SNAPSHOT 

把 Docker Image pull 下來之後,就會先啟動 Ohara configurator 服務的 container,指令如下:

$ docker run --rm -p 12345:12345 -d oharastream/configurator:0.8.0-SNAPSHOT --hostname 192.168.56.103 --port 12345 

以上的指令主要是使用 SSH 的 mode 來啟動 Ohara configurator 服務的 container,--hostname 主要是指定啟動 configurator 服務的 container 主機的 IP 或是 hostname,--port 指定了啟動 configurtor 服務的 port number。

啟動完 configurator 的服務之後就可以來啟動 Ohara manager 的部份,指令如下:

$ docker run --rm -d -p 5050:5050 oharastream/manager:0.8.0-SNAPSHOT --port 5050 --configurator http://192.168.56.103:12345/v0 

啟動了 Ohara configurator 和 manager 的服務之後,就可以開始使用 Ohara manager 的 Web UI 來進行部署 RandomNumberSourceConnector 的部份,步驟如下:

1.使用 gralde 把 RandomNumberSourceConnector 的程式打包成 jar 檔,指令如下:

$ gradle clean build -x test 

執行完以上的指令之後,jar 檔會產生在 build/libs 的資料夾底下,檔案名稱為 ohara-connector-demo.jar

2.進入到 ohara 的 web UI 裡,建立 Node 完成之後的畫面如下:
https://ithelp.ithome.com.tw/upload/images/20191006/20103456A0UE7Q4y1v.png

3.建立 Workspace,畫面如下:
https://ithelp.ithome.com.tw/upload/images/20191006/20103456Vuawha1xgN.png

在建立 Workspace 時,會先按下 NEW PLUGIN 的按鈕之後,選擇在第1步 build 好的 ohara-connector-demo.jar 檔,之後在打勾,就可以按下 ADD 建立 Workspace,建立完成的 Workspace 畫面如下:
https://ithelp.ithome.com.tw/upload/images/20191006/201034567iziSmLJ00.png

4.當 Workspace 建立完成之後就可以建立 topic,建立完成的 topic 畫面如下:
https://ithelp.ithome.com.tw/upload/images/20191006/20103456mv38dlOFzk.png

  1. Workspace 設定完成之後,就可以到 Pipeline 來建立 RandomNumberSourceConnector 的部份,畫面如下:
    https://ithelp.ithome.com.tw/upload/images/20191006/20103456nrlOiEPwih.png

在上面的 connector 列表就會看到自訂義的 RandomNumberSourceConnector 載入到 Source Connector 列表了。後面版本的 unknown 代表在實作 connector 少實作了以下的方法:

override protected def _version: ConnectorVersion = ConnectorVersion.DEFAULT 

以上的方法實作在 RandomNumberSourceConnector.scala 的 class 裡就不會看到 unknown 的訊息了。

  1. Pipeline 建立完成的畫面如下:
    https://ithelp.ithome.com.tw/upload/images/20191006/20103456V4PeX0as59.png

以上 Pipeline Graph 主要的目的是先亂數產生資料寫入到 topic 之後,會透過 Console Sink Connector 程式把資料,印到 Worker 服務的 log 裡。

  1. 執行 Pipeline 的畫面如下:
    https://ithelp.ithome.com.tw/upload/images/20191006/20103456uBlO4O1NEw.png

從 Pipeline 的執行畫面可以看到 Source Connector 會產生資料放在 topic 裡,然後 Sink Consumer 會去消費資料。

  1. 使用以下的指令查看資料:
    https://ithelp.ithome.com.tw/upload/images/20191006/20103456mC1TMGOA5Y.png

  2. 資料寫入到 log 的畫面如下:
    https://ithelp.ithome.com.tw/upload/images/20191006/20103456bvInTfu7SC.png

今天已經把自已實作的 connector jar 檔,透過 ohara manager 的 WebUI 部署到 Worker 的 cluster 上了,並且執行 pipeline,在操作上非常的簡單,可以減少部署 connector 的複雜度,讓我們更專注在於資料處理的部份。


上一篇
Day 20 撰寫 Source Connector 測試程式
下一篇
Day 22 實作 Ohara 的 Sink Connector 介面
系列文
用30天介紹 open source 專案 Ohara 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言