cloudbeaver默認(rèn)沒有開放impala連接,更不會支持國產(chǎn)數(shù)據(jù)庫了
docker安裝運行cloudbeaver可以參考文章:docker安裝運行CloudBeaver并設(shè)置默認(rèn)語言為中文
本文跳過cloudbeaver鏡像拉取,直接就開始實現(xiàn)自定義數(shù)據(jù)庫連接功能
1、初始化cloudbeaver容器掛載配置
1.1、新建掛載的宿主機根目錄
- 掛載的文件都放置該目錄下
mkdir /usr/local/cloudbeaver
cd /usr/local/cloudbeaver
1.2、運行cloudbeaver容器,提取掛載文件
- docker掛載時,不會自動把容器內(nèi)的文件復(fù)制到宿主機
- 運行cloudbeaver的目的是為了提取所需的掛載文件,為后續(xù)完整的cloudbeaver容器運行做鋪墊
1、運行cloudbeaver
docker run --name dbeaver-backup \
--privileged \
-p 8978:8978 \
-d dbeaver/cloudbeaver:latest
- 我啟動的容器ID為:bc78dedbc293(可以簡寫為bc)
2、cloudbeaver容器中工作目錄概覽
進(jìn)入容器內(nèi)部:
docker exec -it bc /bin/bash
- conf:存放cloudbeaver配置文件
- drivers:存放cloudbeaver連接各個數(shù)據(jù)庫驅(qū)動的目錄
- server:cloudbeaver后端服務(wù)目錄(java服務(wù))
- web:cloudbeaver的前端頁面文件存放目錄
- workspace:cloudbeaver運行時數(shù)據(jù)存放目錄,cloudbeaver默認(rèn)數(shù)據(jù)庫(h2)文件存儲地
3、擴展cloudbeaver自定義連接的2個重要文件
在上述的cloudbeaver容器內(nèi)部,執(zhí)行:
cd /opt/cloudbeaver/server/plugins
找到2個文件:
①??io.cloudbeaver.resources.drivers.base_版本號.jar【cloudbeaver界面顯示的數(shù)據(jù)庫配置文件】
②? org.jkiss.dbeaver.ext.generic_版本號.jar【cloudbeaver數(shù)據(jù)庫連接信息配置文件】
ls | grep io.cloudbeaver.resources.drivers.base
ls | grep org.jkiss.dbeaver.ext.generic
如下:?
我的2個文件為:
- io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar
- org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar
注意:同一個cloudbeaver鏡像下,docker run時,這兩個jar文件的版本號是一模一樣的!
4、復(fù)制cloudbeaver容器中文件至宿主機
退出cloudbeaver容器:
exit
上面我們設(shè)定了宿主機掛載的根目錄為:/usr/local/cloudbeaver
我們把所需文件一個個復(fù)制到上述目錄中:
- 復(fù)制cloudbeaver主配置文件
#bc是我的cloudbeaver容器ID
docker cp bc:/opt/cloudbeaver/conf/cloudbeaver.conf /usr/local/cloudbeaver/
- 復(fù)制cloudbeaver驅(qū)動目錄?
docker cp bc:/opt/cloudbeaver/drivers /usr/local/cloudbeaver/drivers
- 復(fù)制擴展自定義數(shù)據(jù)庫連接的2個jar文件
docker cp bc:/opt/cloudbeaver/server/plugins/org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar /usr/local/cloudbeaver/
docker cp bc:/opt/cloudbeaver/server/plugins/io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar /usr/local/cloudbeaver/
最終,/usr/local/cloudbeaver目錄下的結(jié)構(gòu)為:
5、刪除cloudbeaver容器
- ?所需的掛載文件都拷貝至宿主機中了,之前運行的cloudbeaver可以刪除,之后會運行新的cloudbeaver容器
docker stop bc
docker rm bc
2、添加自定義數(shù)據(jù)庫連接配置
2.1、解壓jar文件
- 確保你的機器安裝并配置好了jdk!
在上述目錄(/usr/local/cloudbeaver)中,執(zhí)行以下命令:
#后綴版本號請根據(jù)實際情況變更
unzip io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar -d io.cloudbeaver.resources.drivers.base_1.0.89.202401081229
unzip org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar -d org.jkiss.dbeaver.ext.generic_2.3.208.202401081229
如果不能識別unzip,可以:yum install -y unzip?
解壓后目錄結(jié)構(gòu)如下:
2.2、添加頁面自定義數(shù)據(jù)庫連接的選項配置
- 進(jìn)入io.cloudbeaver.resources.drivers.base_1.0.89.202401081229文件夾中,編輯plugin.xml文件
- 目的:使自定義數(shù)據(jù)庫連接項,能在cloudbeaver前端界面上展示并使用
cd io.cloudbeaver.resources.drivers.base_1.0.89.202401081229
vi plugin.xml
在圖示的3處位置添加對應(yīng)內(nèi)容:
- 添加達(dá)夢數(shù)據(jù)庫與impala數(shù)據(jù)庫連接信息
<resource name="drivers/dm"/>
<resource name="drivers/impala"/>
<bundle id="drivers.dm" label="DM drivers"/>
<bundle id="drivers.impala" label="Impala drivers"/>
<driver id="generic:dm"/>
<driver id="generic:impala"/>
2.3、重新生成io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar文件
#壓縮當(dāng)前目錄下的所有文件為io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar
jar -cvfm io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar META-INF/MANIFEST.MF ./
#移動新生成的jar文件至上層目錄,并覆蓋原jar文件
mv io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar ../
- 注意:在可視化界面使用壓縮工具也能壓縮成jar文件,但是一定要注意:只能在?io.cloudbeaver.resources.drivers.base_1.0.89.202401081229目錄中進(jìn)行壓縮,不能在外層選擇io.cloudbeaver.resources.drivers.base_1.0.89.202401081229文件夾進(jìn)行壓縮,這樣壓縮出來的jar文件結(jié)構(gòu)是錯誤的?。?!?
2.4、添加自定義數(shù)據(jù)庫連接配置
- 進(jìn)入org.jkiss.dbeaver.ext.generic_2.3.208.202401081229文件夾中,編輯plugin.xml文件
cd org.jkiss.dbeaver.ext.generic_2.3.208.202401081229
vi plugin.xml
在任意<driver></driver>標(biāo)簽位置的前或后添加以下信息:
<!-- 達(dá)夢數(shù)據(jù)庫連接信息配置 -->
<driver
id="dm"
label="DM"
icon="icons/dm.png"
iconBig="icons/dm.png"
class="dm.jdbc.driver.DmDriver"
sampleURL="jdbc:dm://{host}[:{port}]/[{daStabase}]"
defaultPort="5236"
webURL="https://www.dameng.com/"
description="達(dá)夢數(shù)據(jù)庫連接選項!">
<file type="jar" path="drivers/dm" bundle="drivers.dm"/>
</driver>
<!-- impala數(shù)據(jù)庫連接信息配置 -->
<driver
id="impala"
label="Impala"
icon="icons/impala_icon.png"
iconBig="icons/impala_icon.png"
class="com.cloudera.impala.jdbc41.Driver"
sampleURL="jdbc:impala://{host}:{port}/{database}"
defaultPort="25004"
webURL="https://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-41.html"
description="impala數(shù)據(jù)庫連接選項!"
supportedConfigurationTypes="MANUAL,URL"
category="Hadoop"
categories="hadoop">
<file type="jar" name="ImpalaJDBC41.jar" path="drivers/impala" bundle="drivers.impala"/>
<parameter name="query-get-active-db" value="select current_database()"/>
<parameter name="query-set-active-db" value="use ?"/>
<parameter name="string-escape-char" value="\"/>
<parameter name="omit-catalog" value="true"/>
<parameter name="supports-references" value="false"/>
</driver>
dm.png在cloudbeaver中是不存在的(impala_icon.png是自帶的),我們可以使用任意圖片即可,我這里附上一個達(dá)夢數(shù)據(jù)庫圖標(biāo):
如圖:
2.5、重新生成org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar文件
jar -cvfm org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar META-INF/MANIFEST.MF ./
#移動新生成的jar文件至上層目錄,并覆蓋原jar文件
mv org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar ../
3、添加自定義數(shù)據(jù)庫驅(qū)動
- 添加達(dá)夢與impala數(shù)據(jù)庫驅(qū)動文件至指定目錄中
達(dá)夢數(shù)據(jù)庫
mkdir /usr/local/cloudbeaver/dm
cd /usr/local/cloudbeaver/dm
把達(dá)夢數(shù)據(jù)庫驅(qū)動上傳至該目錄下(驅(qū)動在附件中,也可以在官網(wǎng)下載):
impala數(shù)據(jù)庫
mkdir /usr/local/cloudbeaver/impala
cd /usr/local/cloudbeaver/impala
impala的驅(qū)動很多,都需要上傳至impala目錄下:
4、運行cloudbeaver
docker run --name dbeaver \
--restart=always \
--privileged \
-p 8978:8978 \
-v /usr/local/cloudbeaver/workspace:/opt/cloudbeaver/workspace \
-v /usr/local/cloudbeaver/drivers:/opt/cloudbeaver/drivers \
-v /usr/local/cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf \
-v /usr/local/cloudbeaver/org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar:/opt/cloudbeaver/server/plugins/org.jkiss.dbeaver.ext.generic_2.3.208.202401081229.jar \
-v /usr/local/cloudbeaver/io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar:/opt/cloudbeaver/server/plugins/io.cloudbeaver.resources.drivers.base_1.0.89.202401081229.jar \
-d dbeaver/cloudbeaver:latest
稍微解釋下:
--restart=always:
- 容器退出時自動重啟
--privileged:
- 特權(quán)模式啟動容器
-p 8978:8978:
- cloudbeaver默認(rèn)端口為8978,與宿主機8978端口一一映射
-v /usr/local/cloudbeaver/workspace:/opt/cloudbeaver/workspace
- 把cloudbeaver容器中的/opt/cloudbeaver/workspace目錄,掛載到宿主機的/usr/local/cloudbeaver/workspace目錄
- 這個目錄很重要,用來存儲cloudbeaver運行產(chǎn)生的數(shù)據(jù)文件等
-v /usr/local/cloudbeaver/drivers:/opt/cloudbeaver/drivers
- 驅(qū)動掛載至宿主機中,方便以后我們對驅(qū)動進(jìn)行維護(hù)
-v /usr/local/cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf
- 掛載cloudbeaver主配置文件,便于配置cloudbeaver
后面的2個jar掛載,是為了方便擴展自定義數(shù)據(jù)庫連接
5、訪問cloudbeaver
我的訪問地址為:http://192.168.168.171:8978
初始化配置在這就不說了
新建下數(shù)據(jù)庫連接,測試達(dá)夢或impala數(shù)據(jù)庫是否支持:
自定義數(shù)據(jù)庫連接添加成功!文章來源:http://www.zghlxwxcb.cn/news/detail-804414.html
如果連接達(dá)夢或impala失敗,請檢查:文章來源地址http://www.zghlxwxcb.cn/news/detail-804414.html
- 自己上傳的驅(qū)動版本是否支持??
- 網(wǎng)絡(luò)是否開放?
到了這里,關(guān)于往docker中cloudbeaver的容器添加達(dá)夢數(shù)據(jù)庫、impala數(shù)據(jù)庫連接支持(cloudbeaver添加自定義數(shù)據(jù)連接)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!