1

Drill で次のストレージ プラグインをセットアップしています。

{
  "type": "hive",
  "enabled": true,
  "configProps": {
    "hive.metastore.uris": "thrift://hivemetastore.hostname.com:9083",
    "hive.metastore.sasl.enabled": "false"
  }
}

ただし、単純な

SELECT * FROM hive.table LIMIT 5;

...

5 rows selected (35.383 seconds)
0: jdbc:drill:> 

応答に 30 秒以上かかっています。何が不足していますか / どこからトラブルシューティングを開始すればよいですか?

Hive メタストア サーバーは現在、Drill と同じです。また、テーブル内のレコードは 20,000 未満です。

4

1 に答える 1

0

MapR サンドボックスの MapR Drill のみが、使用しているスパース ストレージ プラグイン構成を使用する必要があります。サンドボックスでは、内部で物事が構成されます。

組み込みのメタストア サービス

サンドボックスではなくドリルのインストールを使用していて、組み込みのメタストア サービス (デフォルト) を使用していると仮定すると、configProps は次のようにする必要があります (ドキュメントによると):

  "configProps": {
      "hive.metastore.uris": "",
      "javax.jdo.option.ConnectionURL": "jdbc:<database>://<host:port>/<metastore database>",
      "hive.metastore.warehouse.dir": "/tmp/drill_hive_wh",
      "fs.default.name": "file:///",
      "hive.metastore.sasl.enabled": "false"
    }

ストレージ プラグイン構成から "hive.metastore.uris": "thrift://:" を削除します。これは、リモートの Hive メタストア サービスで使用するためのものです。

「javax.jdo.option.ConnectionURL」は、MySQL データベースである可能性があります。Hive メタストア サービスは、MySQL のような物理 DB へのアクセスを提供します。MySQL はメタデータを保存します。「fs.default.name」は、データが配置されているファイル システムの場所です。

埋め込みメタストア構成はテスト専用であり、ドキュメントに従って運用システムで使用するためのものではありません。パフォーマンスを向上させるには、リモート メタストアを構成してください。また、使用している Hive のバージョンの互換性を確認してください。オープンソースの Apache Drill 1.0 は、Hive 0.13 をサポートしています。Drill 1.1 以降は Hive 1.0 をサポートします。

リモート メタストア サービス

リモート メタストアを使用している場合、「fs.default.name」はメイン コントロール ノードを指す必要があります。たとえば、NameNode をポイントします。MapR Drill を使用している場合、「fs.default.name」は maprfs:/// にする必要があります。MapR FileClient は mapr-clusters.conf から CLDB の場所を特定します。別のパッケージとして Hive の上にインストールされているメタストア サービスを開始します。

hive --service metastore

オープン ソースの Apache Drill を使用している場合、リモート メタストアの構成は次のようになります。

{
  "type": "hive",
  "enabled": true,
  "configProps": {
    "hive.metastore.uris": "thrift://mfs41.mystore:9083",
    "hive.metastore.sasl.enabled": "false",
    "fs.default.name": "maprfs://10.10.10.41/"
  }
}
于 2015-11-11T21:39:37.543 に答える