2017-01-11 9 views
1

Google CloudのバケットをApache Drillに接続するにはどうすればよいですか。 Google Cloud StorageバケットにApache Drillを接続し、そのバケットに格納されているファイルファイルからデータを取得したいと考えています。ApacheドリルをGoogle Cloudに接続する

AWSに接続するためにcore-site.xmlにアクセスIDとキーを指定できます。ドリルをGoogleクラウドに接続するのと同様の方法がありますか?

答えて

0

私はここで答えは有用であることが判明:GoogleクラウドDataprocでApache Drill using Google Cloud Storage

あなたは上記の答えのように初期化アクションでそれを設定することができます。 a complete one you can useもあり、GCSプラグインを作成します。デフォルトでは、dataprocクラスタで作成された一時的なバケットがポイントされます。

Cloud Dataprocを使用していない場合は、既にインストールされているドリルクラスタで次の操作を実行できます。

どこからでもGCS connectorを入手し、Drill's 3rdparty jarsディレクトリに置きます。 GCSの設定は上のリンクで詳しく説明しています。

# Link GCS connector to drill jars 
ln -sf /usr/lib/hadoop/lib/gcs-connector-1.6.0-hadoop2.jar $DRILL_HOME/jars/3rdparty 

あなたはまた、コア-site.xmlを設定し、ドリルダウンすることが利用できるようにする必要があります。上記の初期化アクションがこれを行うようdataprocコネクタジャーの/ usr/libに/ Hadoopのです。これは、ドリルがGCSに接続する方法を知るために必要です。

# Symlink core-site.xml to $DRILL_HOME/conf 
ln -sf /etc/hadoop/conf/core-site.xml $DRILL_HOME/conf 

必要に応じてドリルビットを開始または再起動します。

ドリルがアップすると、GCSバケットを指す新しいプラグインを作成できます。まず、プラグインの設定を含むJSONファイルを書き出す:

export DATAPROC_BUCKET=gs://your-bucket-name 
cat > /tmp/gcs_plugin.json <<EOF 
{ 
    "config": { 
     "connection": "$DATAPROC_BUCKET", 
     "enabled": true, 
     "formats": { 
      "avro": { 
       "type": "avro" 
      }, 
      "csv": { 
       "delimiter": ",", 
       "extensions": [ 
        "csv" 
       ], 
       "type": "text" 
      }, 
      "csvh": { 
       "delimiter": ",", 
       "extensions": [ 
        "csvh" 
       ], 
       "extractHeader": true, 
       "type": "text" 
      }, 
      "json": { 
       "extensions": [ 
        "json" 
       ], 
       "type": "json" 
      }, 
      "parquet": { 
       "type": "parquet" 
      }, 
      "psv": { 
       "delimiter": "|", 
       "extensions": [ 
        "tbl" 
       ], 
       "type": "text" 
      }, 
      "sequencefile": { 
       "extensions": [ 
        "seq" 
       ], 
       "type": "sequencefile" 
      }, 
      "tsv": { 
       "delimiter": "\t", 
       "extensions": [ 
        "tsv" 
       ], 
       "type": "text" 
      } 
     }, 
     "type": "file", 
     "workspaces": { 
      "root": { 
       "defaultInputFormat": null, 
       "location": "/", 
       "writable": false 
      }, 
      "tmp": { 
       "defaultInputFormat": null, 
       "location": "/tmp", 
       "writable": true 
      } 
     } 
    }, 
    "name": "gs" 
} 
EOF 

次に任意のdrillbit(私はあなたがdrillbitsの一つでこれを実行していると仮定しています)に新しいプラグインをPOST:

curl [email protected]/tmp/gcs_plugin.json \ 
    -H "Content-Type: application/json" \ 
    -X POST http://localhost:8047/storage/gs.json 

ドリルが複数のバケットを照会するようにするには、この手順を繰り返して(上記の "gs")名前を変更する必要があると思います。

次に、sqllineを起動して、そのバケット内のファイルを照会できることを確認できます。

関連する問題