2015-10-01 166 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,会为您执行许多管理难题,其缺点是群集上运行其他不必要的服务,但根据我的经验,开销可以忽略不计。 –