快速部署DBus體驗實時資料流計算
一、環境說明
說明all in one是一個單機版本dbus環境,是給使用者快速體驗dbus的功能,只是一個簡單體驗版,不能用於其它環境或者用途,具體包括如下:
1)基礎組建:
- zookeeper 3.4.6
- kafka 0.10.0.0
- storm 1.0.1
- granfana 4.2.0
- logstash 5.6.1
- influxdb (需要單獨安裝, 參考如下步驟3)
- mysql (需要單獨安裝,參考如下步驟2)
2)dbus相關包:
- dbus-keeper 0.5.0
- dbus-stream-main 0.5.0
- dbus-router 0.5.0
- dbus-heartbeat 0.5.0
- dbus-log-processor 0.5.0
3)mysql資料來源所需:
- canal
1.1 環境依賴
安裝dbus-allinone環境的建議配置如下
- JDK 1.8.181 或 以上
- CPU 2核 或以上
- 記憶體 16GB或以上
- 磁碟 20GB或以上
注:一臺Linux centos伺服器, 該伺服器最好是空機器,上面不要安裝dbus所依賴的zk,kafka,storm等
1.2 修改域名
注:ip是您的具體ip,這裡用192.168.0.1為例子
修改伺服器/etc/hosts檔案設定相應的域名資訊如下:
192.168.0.1 dbus-n1
修改伺服器hostname命令如下:
hostname dbus-n1
配置好後,伺服器IP和域名資訊如下:
1.3 建立app使用者及配置SSH免密登入
由於dbus啟動拓撲採用的ssh呼叫storm命令,all in one包中預設的呼叫ssh使用app使用者和22埠,因此要正常體驗all in one需要建立app賬戶和配置ssh免密登入,免密登入配置的從dbus-n1到dbus-n1的免密登入
配置完成後執行如下命令看時候配置成功
[app@dbus-n1 ~]$ ssh -p 22 app@dbus-n1 Last login: Fri Aug 10 15:54:45 2018 from 10.10.169.53 [app@dbus-n1 ~]$
二、前期準備
2.1 安裝Mysql
2.1.1 下載
推薦下載Mysql版本:5.7.19 地址:https://dev.mysql.com/downloads/mysql/
2.1.2 安裝
解壓mysql-5.7.19-1.el6.x86_64.rpm-bundle.tar包後,執行以下命令安裝:
rpm -ivh mysql-community-server-5.7.19-1.el6.x86_64.rpm --nodeps rpm -ivh mysql-community-client-5.7.19-1.el6.x86_64.rpm --nodeps rpm -ivh mysql-community-libs-5.7.19-1.el6.x86_64.rpm --nodeps rpm -ivh mysql-community-common-5.7.19-1.el6.x86_64.rpm --nodeps rpm -ivh mysql-community-libs-compat-5.7.19-1.el6.x86_64.rpm --nodeps
2.1.3 配置
在/etc/my.cnf配置檔案中,只是增加bin-log相關配置,其他不用修改,關注以下漢字註釋部分
[mysqld] # dbus相關配置開始 log-bin=mysql-bin binlog-format=ROW server_id=1 # dbus相關配置結束
2.1.4 啟動
執行以下命令啟動mysql:
service mysqld start
2.2. 安裝InfluxDB
2.2.1 下載
推薦下載InfluxDB版本:influxdb-1.1.0.x86_64 地址:
2.2.2 安裝
在dbus-n1上切換到root使用者,在influxdb-1.1.0.x86_64.rpm的存放目錄下執行如下命令:
rpm -ivh influxdb-1.1.0.x86_64.rpm
2.2.3 啟動
在dbus-n1上執行如下命令:
service influxdb start
2.2.4 初始化配置
在dbus-n1上執行如下命令:
#登入influx influx #執行初始化指令碼 create database dbus_stat_db use dbus_stat_db CREATE USER "dbus" WITH PASSWORD 'dbus!@#123' ALTER RETENTION POLICY autogen ON dbus_stat_db DURATION 15d
三、安裝Dbus-allinone包
3.1 下載
在百度網盤提供dbus-allinone.tar.gz 包,訪問 release 頁面下載最新包:
3.2 安裝
將下載的dbus-allinone包上傳到伺服器 /app目錄下,且必須在此目錄下
# 如果沒有app目錄,要先建立app目錄 mkdir /app cd /app tar -zxvf dbus-allinone.tar.gz
3.3 初始化資料庫
以root身份登入mysql客戶端,執行以下命令進行資料庫初始化,會建立dbmgr庫以及使用者、canal使用者、dbus庫以及使用者、testschema庫以及使用者:
source /app/dbus-allinone/sql/init.sql
3.4 啟動
執行start.sh一鍵啟動dbus所有服務,啟動項比較多。
cd /app/dbus-allinone ./start.sh
請耐心等待(大概需要5分鐘左右時間),正確的啟動日誌如下:
Start grafana... Grafana started. pid: 23760 ============================================================================================= Start zookeeper... zookeeper pid 23818 Zookeeper started. ============================================================================================= Start kafka... No kafka server to stop kafka pid 24055 kafka started. ============================================================================================= Start Canal ... canal started. ============================================================================================= Start logstash... No logstash to stop nohup: appending output to `nohup.out' logstash pid 24151 logstash started. ============================================================================================= Start storm nimbus... No storm nimbus to stop Storm nimbus pid 24215 Storm nimbus started. ============================================================================================= Start storm supervisor... No storm supervisor to stop Storm supervisor pid 24674 Storm supervisor started. ============================================================================================= Start storm ui... No storm ui to stop Storm ui pid 24939 Storm ui started. ui port: 6672 ============================================================================================= Stop storm topology. Storm topology stoped. ============================================================================================= Start storm topology... Storm topology started. ============================================================================================= Start Dbus Heartbeat... No Dbus Heartbeat to stop Dbus Heartbeat pid 26854 Dbus Heartbeat started. ============================================================================================= Start Dbus keeper... =========================stop=========================== keeper-proxy process not exist gateway process not exist keeper-mgr process not exist keeper-service process not exist register-server process not exist =========================start=========================== register-server started. pid: 27077 keeper-proxy started. pid: 27172 gateway started. pid: 27267 keeper-mgr started. pid: 27504 keeper-service started. pid: 27645 Dbus keeper prot: 6090 Dbus keeper started. =============================================================================================
3.5 生成檢查報告看是否啟動正常
進入目錄/app/dbus-allinone/allinone-auto-check-0.5.0,執行自動檢測指令碼auto-check.sh,稍等待一會兒
cd /app/dbus-allinone/allinone-auto-check-0.5.0 ./auto-check.sh
會在目錄/app/dbus-allinone/allinone-auto-check-0.5.0/reports下生產對應時間的檢查報告,如下所示
[app@dbus-n1 reports]$ tree . └── 20180824111905 └── check_report.txt
開啟check_report.txt檔案檢視相應的檢查報告,如下所示
(注意以#開頭為解釋說明資訊,報告中不會生成 )
# 出現以下資訊說明dbusmgr庫正常 check db&user dbusmgr start: ============================================ table t_avro_schema data count: 0 table t_data_schema data count: 4 table t_data_tables data count: 4 table t_dbus_datasource data count: 2 table t_ddl_event data count: 0 table t_encode_columns data count: 0 table t_encode_plugins data count: 1 table t_fullpull_history data count: 0 table t_meta_version data count: 5 table t_plain_log_rule_group data count: 1 table t_plain_log_rule_group_version data count: 1 table t_plain_log_rule_type data count: 0 table t_plain_log_rules data count: 5 table t_plain_log_rules_version data count: 5 table t_project data count: 1 table t_project_encode_hint data count: 1 table t_project_resource data count: 1 table t_project_sink data count: 1 table t_project_topo data count: 1 table t_project_topo_table data count: 1 table t_project_topo_table_encode_output_columns data count: 1 table t_project_topo_table_meta_version data count: 0 table t_project_user data count: 1 table t_query_rule_group data count: 0 table t_sink data count: 1 table t_storm_topology data count: 0 table t_table_action data count: 0 table t_table_meta data count: 7 table t_user data count: 2 # 出現以下資訊說明dbus庫正常 check db&user dbus start: ============================================ table db_heartbeat_monitor data count: 15 table test_table data count: 0 table db_full_pull_requests data count: 0 # 出現以下資訊說明canal使用者正常 check db&user canal start: ============================================ master status File:mysql-bin.000002, Position:12047338 table db_heartbeat_monitor data count: 15 table test_table data count: 0 table db_full_pull_requests data count: 0 # 出現以下資訊說明testschema庫正常 check db&user testschema start: ============================================ table test_table data count: 0 # 出現以下資訊說明zk啟動正常 check base component zookeeper start: ============================================ 23818 org.apache.zookeeper.server.quorum.QuorumPeerMain # 出現以下資訊說明kafka啟動正常 check base component kafka start: ============================================ 24055 kafka.Kafka # 出現以下資訊說明storm nimbus、supervisor、ui 啟動正常 check base component storm start: ============================================ 26500 org.apache.storm.daemon.worker 25929 org.apache.storm.daemon.worker 27596 org.apache.storm.LogWriter 26258 org.apache.storm.LogWriter 24215 org.apache.storm.daemon.nimbus 27035 org.apache.storm.LogWriter 27611 org.apache.storm.daemon.worker 26272 org.apache.storm.daemon.worker 24674 org.apache.storm.daemon.supervisor 24939 org.apache.storm.ui.core 26486 org.apache.storm.LogWriter 27064 org.apache.storm.daemon.worker 25915 org.apache.storm.LogWriter # 出現以下資訊說明influxdb 啟動正常 check base component influxdb start: ============================================ influxdb 10265 1 0 Aug08 ? 02:28:06 /usr/bin/influxd -pidfile /var/run/influxdb/influxd.pid -config /etc/influxdb/influxdb.conf app 28823 28746 0 11:19 pts/3 00:00:00 /bin/sh -c ps -ef | grep influxdb app 28827 28823 0 11:19 pts/3 00:00:00 grep influxdb # 出現以下資訊說明grafana 啟動正常 check base component grafana start: ============================================ app 23760 1 0 11:09 pts/3 00:00:00 ./grafana-server app 28828 28746 0 11:19 pts/3 00:00:00 /bin/sh -c ps -ef | grep grafana app 28832 28828 0 11:19 pts/3 00:00:00 grep grafana # 出現以下資訊說明心跳heartbeat 啟動正常 check base component heartbeat start: ============================================ 26854 com.creditease.dbus.heartbeat.start.Start # 出現以下資訊說明logstash 啟動正常 check base component logstash start: ============================================ 24151 org.jruby.Main # 出現以下資訊說明canal 啟動正常 check canal start: ============================================ zk path [/DBus/Canal/otter-testdb] exists. 24105 com.alibaba.otter.canal.deployer.CanalLauncher # 出現以下資訊說明dispatcher-appender、mysql-extractor、splitter-puller、router 啟動正常 check topology start: ============================================ api: topology testlog-log-processor status is ACTIVE topology testdb-mysql-extractor status is ACTIVE topology testdb-splitter-puller status is ACTIVE topology testdb-dispatcher-appender status is ACTIVE topology tr-router status is ACTIVE # 出現以下資訊說明從資料庫->extractor-dispatcher->appender線路正常 check flow line start: ============================================ first step insert heart beat success. data arrive at topic: testdb data arrive at topic: testdb.testschema data arrive at topic: testdb.testschema.result
四、驗證all in one包是否安裝成功
4.1 登入grafana前提
需要在透過瀏覽器登入grafana的機器配置host檔案,如果已經配置過請跳過此前提
如果驗證機器是windows系統,修改C:\Windows\System32\drivers\etc\hosts檔案設定相應的域名資訊如下:
# 192.168.0.1 替換成部署allinone包的伺服器ip地址 192.168.0.1 dbus-n1
如果驗證機器是linux系統,修改/etc/hosts檔案設定相應的域名資訊如下:
# 192.168.0.1 替換成部署allinone包的伺服器ip地址 192.168.0.1 dbus-n1
4.2 登入grafana
登入grafana url地址:
4.3 mysql插入資料驗證
#登入測試使用者 mysql -utestschema -p #testschema賬戶密碼:j0<C6cqcqr:TestSchema #執行測試指令碼 use testschema; INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00'); INSERT INTO test_table (NAME, BIRTHDAY) VALUES ('testdataname', '2018-08-10 18:00:00');
4.4 檢視DBus是否實時獲取到資料
五、驗證logstash抽取心跳日誌是否安裝成功
dbus-heartbeat心跳模組兒產生日誌位置在:/app/dbus-allinone/dbus-heartbeat-0.5.0/logs/heartbeat/heartbeat.log,利用logstash抽取該日誌檔案,把非結構化的資料,提取成結構化的資料
5.1 日誌中原始非結構化資料如下:
透過如下命令,檢視要提取的非結構化資料,如下圖所示,每一分鐘產生3條包含"插入心跳包成功"的日誌
cd /app/dbus-allinone/dbus-heartbeat-0.5.0/logs/heartbeat/ tail -f heartbeat.log | grep "插入心跳包成功"
5.2 在Dbus Keeper上配置相應的結構化規則和檢視規則執行後的結果
提取規則如下圖:
規則執行後結果
5.3 在grafana檢視實時提取流量監控
選擇log table deatil board
選擇table:testlog.testlog_schema.t_heartbeat_data
六、登入DBus Keeper體檢UI操作
6.1 登入dbus keeper前提
需要在透過瀏覽器登入dbus keeper的機器配置host檔案,如果已經配置過請跳過此前提
如果驗證機器是windows系統,修改C:\Windows\System32\drivers\etc\hosts檔案設定相應的域名資訊如下:
# 192.168.0.1 替換成部署allinone包的伺服器ip地址 192.168.0.1 dbus-n1
如果驗證機器是linux系統,修改/etc/hosts檔案設定相應的域名資訊如下:
# 192.168.0.1 替換成部署allinone包的伺服器ip地址 192.168.0.1 dbus-n1
6.2 登入dbus keeper
登入dbus keeper url地址:
體驗管理員功能,請使用使用者:admin 密碼:12345678
管理員介面如下:
體驗租戶功能,請使用使用者:user@dbus.com 密碼:12345678
租戶介面如下:
開源網址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69918724/viewspace-2652192/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料開發實戰:實時資料平臺和流計算大資料
- 大資料匯流排平臺DBus設計思路與工作原理大資料
- Kurento實戰之二:快速部署和體驗
- 用Spark進行實時流計算Spark
- 實時計算,流資料處理系統簡介與簡單分析
- 實時計算無線資料分析
- 拆解大資料匯流排平臺DBus的系統架構大資料架構
- 日誌和實時流計算處理
- Golang框架實戰-KisFlow流式計算框架(4)-資料流Golang框架
- 實時計算Flink——快速入門概述
- Storm 實戰:構建大資料實時計算ORM大資料
- 一文讀懂大資料實時計算大資料
- 計算機網路實驗12:FTP伺服器部署計算機網路FTP伺服器
- 如果通過流資料實現實時分析?
- 大資料“重磅炸彈”:實時計算框架 Flink大資料框架
- 伍翀 :大資料實時計算Flink SQL解密大資料SQL解密
- Kafka實時流資料經Storm至HdfsKafkaORM
- 基於 Apache Flink 的實時計算資料流業務引擎在京東零售的實踐和落地Apache
- 雲原生時代頂流訊息中介軟體Apache Pulsar部署實操之輕量級計算框架Apache框架
- 基於函式計算快速搭建Hexo部落格(體驗有禮)函式Hexo
- php資料流中第K大元素的計算方法PHP
- Arctic助力傳媒實現低成本的大資料準實時計算大資料
- 兩個例子(來自Storm實戰 構建大資料實時計算)ORM大資料
- openGauss資料庫部署實踐(華為雲開發者雲實驗)資料庫
- 使用記憶體NewSQL資料平臺來處理實時資料流的三個好處記憶體SQL
- Uber實時資料基礎設施:分散式計算架構分散式架構
- 基於 Flink 流計算實現的股票交易實時資產應用
- 計算機網路實驗計算機網路
- 極致體驗!基於阿里雲 Serverless 快速部署 Function阿里ServerFunction
- OceanBase初體驗之Docker快速部署試用環境Docker
- 實時計算小括
- Apache Flink,流計算?不僅僅是流計算!Apache
- 資料庫實驗八 資料庫程式設計資料庫程式設計
- 資料庫實驗五:資料庫程式設計資料庫程式設計
- 亞信安慧AntDB 資料庫:超融合資料庫引領實時計算新時代資料庫
- 《計算機網路實驗課程》——Wireshark實驗計算機網路
- 計算機網路實驗報告:【Wirshark 實驗】計算機網路
- 計算機網路實驗ns2實驗計算機網路