大數據高性能的實時分析數據庫Druid單服務器部署
一、Apache Druid簡介
Apache Druid(incubating)是一個實時分析數據庫,旨在對大型數據集進行快速切片和切塊分析(“OLAP”查詢)。Druid最常用作數據庫,以支持對實時攝取,快速查詢性能和高正常運行時間很重要的用例。因此,Druid通常用於爲分析應用程序的GUI供電,或用做需要快速聚合的高併發API的後端。Druid最適合面向事件的數據。
二、Apache Druid單服務器部署
2.1 環境準備
2.1.1 系統準備
centos 7.6
Druid 0.16.0-incubating
zookeeper 3.4.14
mysql 8.0.17
jdk 1.8_121
2.1.2 安裝介質準備
Druid Druid介質下載地址
zookeeper zookeeper介質下載地址
2.2 MySQL安裝
1、下載mysql
wget -i -c https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
2、安裝mysql的repo依賴
yum -y install mysql80-community-release-el7-3.noarch.rpm
3、安裝mysql服務即可
yum -y install mysql-community-server
4、啓動mysql服務
systemctl start mysqld
systemctl status mysqld (檢查mysql服務狀態)
systemctl enable mysqld (設置服務開始啓動)
systemctl daemon-reload
5、登錄mysql,修改登錄密碼
在mysql啓動日誌中找到mysql服務啓動時root的初始密碼
grep "password" /var/log/mysqld.log
登錄mysql修改密碼,此時需注意修改mysql密碼規則,否則設置較簡單密碼會提示設置失敗。
mysql -uroot -p #回車輸入日誌中初始密碼即可
設置密碼規則
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
更改mysql服務root用戶密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
mysql安裝較簡單,這裏不再詳細描述具體安裝步驟。
2.3 Druid安裝
2.3.1 準備druid安裝介質
1、解壓縮操作
tar -cvf apache-druid-0.16.0-incubating-bin.tar.gz
cd apache-druid-0.16.0-incubating
2.3.2 修改配置信息
1、由於使用的是單服務器部署操作,根據官網推薦,如果您在便攜式計算機等小型計算機上運行以進行快速評估,則此micro-quickstart配置是一個不錯的選擇,適合4CPU / 16GB RAM環境。
2、修改micro-quickstart文件夾中的配置文件即可。
cd conf/druid/single-server/micro-quickstart/
cd _common/
vim common.runtime.properties #修改配置文件
#該配置項添加"mysql-metadata-storage",使用mysql管理Druid的元數據
druid.extensions.loadList
#配置Druid機器名或者IP地址
druid.host
#配置zookeeper服務IP地址
druid.zk.service.host
#註釋掉原本的Derby數據庫元數據存儲,改由mysql管理元數據即可
#同時可以更改Druid日誌存儲目錄以及使用本地磁盤存儲目錄(可不依賴HDFS或者S3)
3、具體配置如下:
2.3.3 添加mysql元數據管理庫
1、新建Druid用戶、數據庫以及賦予權限。
-- create a druid database, make sure to use utf8mb4 as encoding
CREATE DATABASE druid DEFAULT CHARACTER SET utf8mb4;
-- create a druid user
CREATE USER 'druid'@'%' IDENTIFIED BY 'admin@123';
-- grant the user all the permissions on the database we just created
GRANT ALL PRIVILEGES ON druid.* TO 'druid'@'%';
2、拷貝jdbc連接jar包或者建立軟連接。
-
可以從MySQL站點上下載它:mysql官網下載地址
-
可以從Maven Central處獲取它:maven mysql-jdbc下載地址
-
放到extensions/mysql-metadata-storage目錄下
cd extensions/mysql-metadata-storage/
至此Druid以及安裝配置完畢,下邊是添加zookeeper依賴即可。
2.4 添加zookeeper依賴
1、下載zookeeper介質
curl https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz #下載軟件包
tar -xvf zookeeper-3.4.14.tar.gz #解壓縮操作
2、把zookeeper軟件包放到Druid根目錄下即可
#移動zookeeper到Druid目錄下並改名爲zk
mv zookeeper-3.4.14 apache-druid-0.16.0-incubating/zk
移動zookeeper到Druid根目錄下即可,不需要啓動zookeeper服務,否則啓動Druid過程中會拋出2181端口被佔用的錯誤。
2.5 啓動服務以及簡單實用
2.5.1 啓動Druid服務
(1)、啓動服務
cd bin/
./start-micro-quickstart #可以使用nohup託管後臺啓動,這裏直接窗口啓動
(2)、查看日誌信息
新開一個命令行窗口查看日誌即可,可以看到Druid服務已經正常啓動。
tail -f /opt/software/apache-druid-0.16.0-incubating/var/sv/coordinator-overlord.log
2.5.2 簡單使用
(1)、訪問web控制檯
http://192.168.226.134:8888
(2)、點擊“load data”,可以選擇不通的數據源加載,這裏選擇使用Druid自帶的樣例數據加載到Druid中。點擊右側“Load example”;
(3)、可以預覽數據,點擊右下角“Next:Parse data”,解析數據即可
(4)、解析數據,右邊可以選擇解析數據使用什麼格式,這裏默認使用json格式,也可以增加列等操作,然後點擊右下角“Next:Parse time”,解析數據時間即可
(5)、解析數據時間,添加時間戳格式,右邊可以選擇解析數據數據格式使用數據時間或者是使用一個特定的時間,同時可以調整時間列名稱、時間匹配方式等操作,然後點擊右下角“Transform”,進行數據轉換即可
(6)、Transform以及Filter,數據轉換以及過濾這裏暫不做操作,直接點擊下一步即可
(7)、“Configure schema”,配置數據schema信息,後邊對數據的一些求和等操作字段可以刪除,直接點擊“Partition”進入下一步即可
(8)、配置數據分區以及segment的時間顆粒度,也可以配置每個segment上限多少行開始切割等等參數,直接點擊“Tune”進入下一步即可
(9)、配置任務運行過程中的一些參數,這裏使用默認參數,然後點擊“Publish”發佈任務即可。
(10)、驗證任務並且提交任務運行,這裏可以修改datasource名稱,修改名稱爲wikipedia_data_demo,然後預覽任務json文件,點擊“Submit”提供任務運行即可。
(11)、可以看到該任務已經開始運行。
(12)、點擊右下角的圖標可以看到任務詳細狀態、日誌等信息。
(13)、任務運行結束,狀態正常。
2.5.3 點擊上邊一行菜單欄,可以看到相關詳細信息
2.5.4 新增功能
(1)、點擊“Query”,右側有不同的數據庫可選擇,可以查詢數據信息,元數據信息等等
(2)、提供SQL查詢客戶端,可以直接操作。
(3)、同時提供命令行DSQL查詢客戶端,可以直接操作。
cd bin/
./dsql
(3)、簡單查詢操作數據預覽。
dsql> \h
dsql> \d
dsql> \dS
dsql> SELECT "__time","cityName", "count", "diffUrl", "isAnonymous", "user" FROM "wikipedia_data_demo" limit 10;
至此,Druid單節點服務器安裝結束,並做簡單的數據加載使用。