多MLSQL-Instance管理
前言
之前的章節裡,我們提到目前MLSQL有三個比較重要的元件:
- MLSQL-Instance
- MLSQL-Cluster
- MLSQL-Console
MLSQL-Instance 就是一個MLSQL例項,但是不管什麼原因,我們總是需要啟動多個MLSQL例項的,這個時候我們就需要有
能夠管理的和代理轉發的工具,這個就是MLSQL-Cluster責任。MLSQL-Console則負責指令碼管理,MLSQL-Cluster配置管理等,多使用者等。
部署MLSQL-Cluster
下載
首先下載 MLSQL-Cluster髮型包 ,解壓後目錄結構如下:
-rw-r--r--1 allwefantasywheel957 Jan 24 10:01 application.yml -rw-r--r--1 allwefantasywheel1032 Jan 24 10:01 db.sql drwxr-xr-x3 allwefantasywheel102 Jan 24 10:01 libs/ -rw-r--r--1 allwefantasywheel234 Jan 24 10:01 logging.yml -rwxr--r--1 allwefantasywheel160 Jan 24 10:01 start.sh*
初始化資料庫
開啟application.yml檔案,找到如下部分
1 mode: 2production 3 4 production: 5datasources: 6mysql: 7host: 127.0.0.1 8port: 3306 9database: streamingpro_cluster 10username: root 11password: mlsql 12disable: false 13mongodb: 14disable: true 15redis: 16disable: true
我們根據需要修改host,port,username,password欄位。db的話假設你沒有修改,依然為streamingpro_cluster。
接著開啟db.sql,然後將這些語句放到db中執行。
啟動
執行 start.sh 指令碼,啟動內容如下:
(PyMLSQL) [w@me mlsql_cluster-1.2.0-SNAPSHOT]$ ./start.sh [2019-01-24 13:57:17,007][INFO ][com.alibaba.druid.pool.DruidDataSource] {dataSource-1} inited [2019-01-24 13:57:17,017][INFO ][bootstrap.loader.impl] scan service package => null [2019-01-24 13:57:17,018][INFO ][bootstrap.loader.impl] load service in ServiceFramwork.serviceModules =>0 [2019-01-24 13:57:17,018][INFO ][bootstrap.loader.impl] total load service=>10 [2019-01-24 13:57:17,468][INFO ][org.eclipse.jetty.util.log] Logging initialized @2189ms [2019-01-24 13:57:17,689][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.cluster.controller.BackendController [2019-01-24 13:57:17,690][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.cluster.controller.EcsResourceController [2019-01-24 13:57:17,691][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.cluster.controller.MLSQLProxyController [2019-01-24 13:57:17,696][ERROR][bootstrap.loader.impl] load default controller error:java.lang.ClassNotFoundException: [2019-01-24 13:57:17,845][INFO ][org.eclipse.jetty.server.Server] jetty-9.2.z-SNAPSHOT [2019-01-24 13:57:17,887][INFO ][org.eclipse.jetty.server.ServerConnector] Started ServerConnector@6523e61f{HTTP/1.1}{0.0.0.0:8080} [2019-01-24 13:57:17,887][INFO ][org.eclipse.jetty.server.Server] Started @2610ms
可以看到監聽的埠為8080。
部署MLSQL-Console
下載
下載 MLSQL-Console下載地址 ,然後解壓,目錄結構如下:
[w@me mlsql_api-1.2.0-SNAPSHOT]$ ll total 24 -rw-r--r--1 allwefantasywheel2687 Jan 24 10:01 application.yml -rw-r--r--1 allwefantasywheel1432 Jan 24 10:01 db.sql drwxr-xr-x3 allwefantasywheel102 Jan 24 10:01 libs/ -rwxr--r--1 allwefantasywheel238 Jan 24 10:01 start.sh*
配置資料庫
然後開啟application.yml,配置如下部分:
1 #mode 2 mode: 3development 4 #mode=production 5 6 ###############datasource config################## 7 #mysql,mongodb,redis等資料來源配置方式 8 development: 9datasources: 10mysql: 11host: 127.0.0.1 12port: 3306 13database: mlsql_console 14username: root 15password: mlsql 16disable: false
一樣,根據需要修改資料庫配置資訊。接著通過db.sql進行表建立。
設定環境變數
# 我們前面配置的MLSQL-Cluster地址和埠 export MLSQL_CLUSTER_URL="內網地址:8080" # 方便其他系統能夠連線到MLSQL-Console exportMY_URL="內網地址:9002"
執行
設定完環境變臉後,就可以啟動了,同樣是執行start.sh指令碼,輸出如下:
^C[w@me mlsql_api-1.2.0-SNAPSHOT]$ ./start.sh [2019-01-24 14:16:23,189][INFO ][com.alibaba.druid.pool.DruidDataSource] {dataSource-1} inited [2019-01-24 14:16:23,196][INFO ][bootstrap.loader.impl] scan service package => null [2019-01-24 14:16:23,197][INFO ][bootstrap.loader.impl] load service in ServiceFramwork.serviceModules =>0 [2019-01-24 14:16:23,197][INFO ][bootstrap.loader.impl] total load service=>10 [2019-01-24 14:16:23,557][INFO ][org.eclipse.jetty.util.log] Logging initialized @1626ms [2019-01-24 14:16:23,738][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.api.controller.CloudController [2019-01-24 14:16:23,739][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.api.controller.ClusterProxyController [2019-01-24 14:16:23,740][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.api.controller.UserController [2019-01-24 14:16:23,741][INFO ][bootstrap.loader.impl] controller load :tech.mlsql.api.controller.UserScriptFileController [2019-01-24 14:16:23,746][ERROR][bootstrap.loader.impl] load default controller error:java.lang.ClassNotFoundException: [2019-01-24 14:16:23,939][INFO ][org.eclipse.jetty.server.Server] jetty-9.2.z-SNAPSHOT [2019-01-24 14:16:23,979][INFO ][org.eclipse.jetty.server.ServerConnector] Started ServerConnector@2a317ed2{HTTP/1.1}{0.0.0.0:9002} [2019-01-24 14:16:23,979][INFO ][org.eclipse.jetty.server.Server] Started @2050ms
預設監聽埠9002
MSLQL-Console使用說明
訪問http://[內網地址]:9002,這個時候會有如下介面:

image.png
點選右上角Register進行註冊。
第一個使用者會是管理員使用者
接著進入主介面:

image.png
預設執行任何指令都會失敗,因為還沒有配置後端MLSQL執行引擎例項。我們點選 Cluster 標籤頁:

image.png
通過Add Backend進入新增後端例項的頁面:

image.png
url部分是你的MLSQL例項地址,最好填寫內網地址。點選新增後,就可以在List Backend頁面看到列表了:

image.png
這裡看到, backend3是被啟用的。
我們並不能啟用某個例項,我們只能啟用一個或者多個標籤,具有相應標籤的例項則會被自動啟用。設定需要使用的標籤,在
Set Console Backend裡:

image.png
我選擇使用具有所有jack標籤的例項。
現在你可以回到Console裡去執行操作了:

image.png
上面的有兩個進度條:
一個表示當前MLSQL例項總共資源數為8cpu, 你用了1個,總共用了1個。
第二個表示,當前正在執行的job有5個任務,有0個完成,一個正在執行。Job數自身是未知的,因為指令碼是解釋執行的。這個只是反映的當前的job(被解釋的指令)的任務情況。
如果我想取消當前的任務,該怎麼辦呢?重新整理下當前頁面,然後使用如下指令檢視所有任務:

image.png
任務列表如下:

image.png
我們通過該列表可以看到我們的任務名或者組名,我們以groupId為例,對應的是10,通過如下指令可以殺死該任務:

image.png