presto連接clickhouse

1. 首先安裝presto

安裝教程可以參考官網(wǎng)及下面這篇文章
官方文檔
presto安裝及連接mysql

完畢可以連接mysql測試一下是否安裝成功

2. 下載presto-clickhouse

這里已有大佬實現(xiàn)presto-clickhouse的Connectors,我們直接下載來用就好
https://github.com/zeeshanabid94/presto/tree/presto-clickhouse/presto-clickhouse

3. 編譯presto-clickhouse

我們只需要編譯presto-clickhouse部分,這里有兩種方式
直接在下載的項目里編譯,不過有很多check,對maven忆绰、jdk版本進行檢測,這些按照官網(wǎng)要求來,當然也可以在主pom中關掉check
也可以直接新建一個項目編譯
這里我選擇新建項目

①:新建項目,拷貝代碼

這里我們選擇新建一個項目,把下載的presto_clickhouse中的代碼拷貝進去


拷貝代碼

②:添加clickhouse Connector

在resource下新建META-INF/services 目錄,在此目錄下新建com.facebook.presto.spi.Plugin文件,在文件中添加com.facebook.presto.plugin.clickhouse.ClickhousePlugin,如下圖
這一步主要是為了ConnectorFactory能識別clcikhouse的Connector


配置ClickhousePlugin

③:修改pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>base_module</artifactId>
        <groupId>idea_workspace</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>presto-clickhouse</artifactId>


    <dependencies>

        <!--- Clickhouse JDBC Driver -->
        <dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.1.50</version>
        </dependency>

        <dependency>
            <groupId>com.facebook.presto</groupId>
            <artifactId>presto-spi</artifactId>
            <version>0.223</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.7</version>
        </dependency>

        <dependency>
            <groupId>io.airlift</groupId>
            <artifactId>log</artifactId>
            <version>0.178</version>
        </dependency>

        <dependency>
            <groupId>io.airlift</groupId>
            <artifactId>configuration</artifactId>
            <version>0.178</version>
        </dependency>

        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>


        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>24.1-jre</version>
        </dependency>


        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>4.2.0</version>
        </dependency>

        <dependency>
            <groupId>com.facebook.presto</groupId>
            <artifactId>presto-base-jdbc</artifactId>
            <version>0.223</version>
        </dependency>



    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
        <finalName>presto-clickhouse-0.223</finalName>
    </build>

</project>

④:打包上傳

將上述修改好的項目打成jar
在presto安裝目錄的plugin目錄下新建clickhouse目錄
mkdir /opt/soft/presto-server-0.223/plugin/clickhouse
將打好的jar上傳至該目錄
然后在catalog下新建clickhouse.properties

vim /opt/soft/presto-server-0.223/etc/catalog/clickhouse.properties


#寫入clickhouse的連接信息
connector.name=clickhouse
connection-url=jdbc:clickhouse://ip:8123
connection-user=
connection-password=

然后前臺啟動presto

bin/launcher run 

如果出現(xiàn)server started證明clickhouse Connector注冊成功


image.png

下面用客戶端測試
java -jar presto-cli-0.224-executable.jar --server localhost:9000 --catalog clickhouse --schema test
執(zhí)行show tables;


image.png

如果出現(xiàn)表則成功,如果bin/launcher run 出現(xiàn)ClassNotFoundException異常則是打包過程有問題,看一下缺少什么包引入依賴重新打包即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末欺殿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子聂渊,更是在濱河造成了極大的恐慌隙弛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叁征,居然都是意外死亡,警方通過查閱死者的電腦和手機逛薇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門捺疼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人永罚,你說我怎么就攤上這事啤呼。” “怎么了呢袱?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵官扣,是天一觀的道長。 經(jīng)常有香客問我羞福,道長惕蹄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮卖陵,結(jié)果婚禮上恋昼,老公的妹妹穿的比我還像新娘。我一直安慰自己赶促,他們只是感情好液肌,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸥滨,像睡著了一般嗦哆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婿滓,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天老速,我揣著相機與錄音,去河邊找鬼凸主。 笑死橘券,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的卿吐。 我是一名探鬼主播旁舰,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嗡官!你這毒婦竟也來了箭窜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤衍腥,失蹤者是張志新(化名)和其女友劉穎磺樱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婆咸,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡竹捉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尚骄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片块差。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乖仇,靈堂內(nèi)的尸體忽然破棺而出憾儒,到底是詐尸還是另有隱情询兴,我是刑警寧澤乃沙,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诗舰,受9級特大地震影響警儒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一蜀铲、第九天 我趴在偏房一處隱蔽的房頂上張望边琉。 院中可真熱鬧,春花似錦记劝、人聲如沸变姨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽定欧。三九已至,卻和暖如春怒竿,著一層夾襖步出監(jiān)牢的瞬間砍鸠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工耕驰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爷辱,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓朦肘,卻偏偏與公主長得像饭弓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子媒抠,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容