2015-10-01 213 views
2

Apache Drill功能列表提到它可以從Google雲端存儲查詢數據,但找不到任何有關如何執行此操作的信息。我已經在S3上正常工作,但懷疑我在Google雲端存儲方面錯失了一些非常簡單的東西。使用Google雲端存儲的Apache Drill

有沒有人有Google Cloud Storage的Storage Plugin配置示例?

感謝

中號

+1

,您是否找到了如何做到這一點?我試過郵件列表和推特,但沒有回答:/ – Johan

+0

您是否找到任何解決方案?我正在試圖在我需要連接到谷歌雲存儲的計算實例上運行鑽取羣集? – sanjay

回答

1

我設法查詢使用Apache鑽(1.6.0),谷歌的Dataproc羣集上運行在谷歌雲存儲(GCS)實木複合地板的數據。 爲了設置了,我採取了以下措施:

  1. 安裝鑽機,使訪問的GCS連接器(這可以作爲一個init腳本的dataproc,只要注意它不是真正的考驗並依靠當地動物園管理員實例):

    #!/bin/sh 
    set -x -e 
    BASEDIR="/opt/apache-drill-1.6.0" 
    mkdir -p ${BASEDIR} 
    cd ${BASEDIR} 
    wget http://apache.mesi.com.ar/drill/drill-1.6.0/apache-drill-1.6.0.tar.gz 
    tar -xzvf apache-drill-1.6.0.tar.gz 
    mv apache-drill-1.6.0/* . 
    rm -rf apache-drill-1.6.0 apache-drill-1.6.0.tar.gz 
    
    ln -s /usr/lib/hadoop/lib/gcs-connector-1.4.5-hadoop2.jar ${BASEDIR}/jars/gcs-connector-1.4.5-hadoop2.jar 
    mv ${BASEDIR}/conf/core-site.xml ${BASEDIR}/conf/core-site.xml.old 
    ln -s /etc/hadoop/conf/core-site.xml ${BASEDIR}/conf/core-site.xml 
    
    drillbit.sh start 
    
    set +x +e 
    
  2. 連接到鑽控制檯,創建一個新的存儲插件(稱呼它,比如,gcs),並使用以下配置(請注意我複製大部分來自s3配置,做了細微的修改):

    { 
        "type": "file", 
        "enabled": true, 
        "connection": "gs://myBucketName", 
        "config": null, 
        "workspaces": { 
        "root": { 
         "location": "/", 
         "writable": false, 
         "defaultInputFormat": null 
        }, 
        "tmp": { 
         "location": "/tmp", 
         "writable": true, 
         "defaultInputFormat": null 
        } 
        }, 
        "formats": { 
        "psv": { 
         "type": "text", 
         "extensions": [ 
         "tbl" 
         ], 
         "delimiter": "|" 
        }, 
        "csv": { 
         "type": "text", 
         "extensions": [ 
         "csv" 
         ], 
         "delimiter": "," 
        }, 
        "tsv": { 
         "type": "text", 
         "extensions": [ 
         "tsv" 
         ], 
         "delimiter": "\t" 
        }, 
        "parquet": { 
         "type": "parquet" 
        }, 
        "json": { 
         "type": "json", 
         "extensions": [ 
         "json" 
         ] 
        }, 
        "avro": { 
         "type": "avro" 
        }, 
        "sequencefile": { 
         "type": "sequencefile", 
         "extensions": [ 
         "seq" 
         ] 
        }, 
        "csvh": { 
         "type": "text", 
         "extensions": [ 
         "csvh" 
         ], 
         "extractHeader": true, 
         "delimiter": "," 
        } 
        } 
    } 
    
  3. 查詢使用以下語法(注意反引號):

    select * from gs.`root`.`path/to/data/*` limit 10; 
    
+0

如果我在計算實例上創建鑽取羣集並嘗試訪問谷歌存儲,我們該怎麼做。 – sanjay

+1

我相信你需要[GCS連接器](https://cloud.google.com/hadoop/google-cloud-storage-connector)。它預先安裝在Dataproc中,我沒有嘗試在其他場景中使用它,例如使用Drill的「裸」計算實例。如果您使用Dataproc,會爲您執行許多管理難題,其缺點是羣集上運行其他不必要的服務,但根據我的經驗,開銷可以忽略不計。 –