延續前二天介紹要如何撰寫以及測試 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 完成之後的畫面如下:
3.建立 Workspace,畫面如下:
在建立 Workspace 時,會先按下 NEW PLUGIN 的按鈕之後,選擇在第1步 build 好的 ohara-connector-demo.jar 檔,之後在打勾,就可以按下 ADD 建立 Workspace,建立完成的 Workspace 畫面如下:
4.當 Workspace 建立完成之後就可以建立 topic,建立完成的 topic 畫面如下:
在上面的 connector 列表就會看到自訂義的 RandomNumberSourceConnector 載入到 Source Connector 列表了。後面版本的 unknown 代表在實作 connector 少實作了以下的方法:
override protected def _version: ConnectorVersion = ConnectorVersion.DEFAULT
以上的方法實作在 RandomNumberSourceConnector.scala 的 class 裡就不會看到 unknown 的訊息了。
以上 Pipeline Graph 主要的目的是先亂數產生資料寫入到 topic 之後,會透過 Console Sink Connector 程式把資料,印到 Worker 服務的 log 裡。
從 Pipeline 的執行畫面可以看到 Source Connector 會產生資料放在 topic 裡,然後 Sink Consumer 會去消費資料。
使用以下的指令查看資料:
資料寫入到 log 的畫面如下:
今天已經把自已實作的 connector jar 檔,透過 ohara manager 的 WebUI 部署到 Worker 的 cluster 上了,並且執行 pipeline,在操作上非常的簡單,可以減少部署 connector 的複雜度,讓我們更專注在於資料處理的部份。