S3 サービスをデータレイクとして使用している環境で作業していますが、AWS Athena は使用していません。S3 でデータをクエリできるように Presto をセットアップしようとしていますが、Hive Metastore サービスを介してデータ構造を Hive テーブルとして定義する必要があることはわかっています。各コンポーネントを Docker でデプロイしているので、コンテナーのサイズはできるだけ小さくしたいと考えています。Metastore サービスのみを実行できるようにするには、Hive のどのコンポーネントが必要ですか? Hive の実行にはあまり関心がありません。Metastore だけです。必要なものを減らすことはできますか?それとも、そのためだけに事前構成されたパッケージが既にありますか? Hadoop と Hive のすべてをダウンロードすることを含まないものをオンラインで見つけることができませんでした。私がやろうとしていることは可能ですか?
4 に答える
presto を実行するためにハイブを必要としないという回避策があります。ただし、s3 のような分散ファイル システムで試したことはありませんが、コードは、(少なくとも HDFS では) 動作することを示唆しています。私の意見では、ハイブ用の新しい docker イメージはまったく必要ないため、試してみる価値があります。
アイデアは、組み込みのFileHiveMetastoreを使用することです。本番環境で使用することは文書化も推奨もされていませんが、それで遊ぶことはできます。スキーマ情報は、ファイル システム内のデータの隣に格納されます。明らかに、それには長所と短所があります。私はあなたのユースケースの詳細を知らないので、それがあなたのニーズに合っているかどうかわかりません.
構成:
connector.name=hive-hadoop2
hive.metastore=file
hive.metastore.catalog.dir=file:///tmp/hive_catalog
hive.metastore.user=cox
デモ:
presto:tiny> create schema hive.default;
CREATE SCHEMA
presto:tiny> use hive.default;
USE
presto:default> create table t (t bigint);
CREATE TABLE
presto:default> show tables;
Table
-------
t
(1 row)
Query 20180223_202609_00009_iuchi, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:00 [1 rows, 18B] [11 rows/s, 201B/s]
presto:default> insert into t (values 1);
INSERT: 1 row
Query 20180223_202616_00010_iuchi, FINISHED, 1 node
Splits: 51 total, 51 done (100.00%)
0:00 [0 rows, 0B] [0 rows/s, 0B/s]
presto:default> select * from t;
t
---
1
(1 row)
上記の後、マシンで次のことを見つけることができました。
/tmp/hive_catalog/
/tmp/hive_catalog/default
/tmp/hive_catalog/default/t
/tmp/hive_catalog/default/t/.prestoPermissions
/tmp/hive_catalog/default/t/.prestoPermissions/user_cox
/tmp/hive_catalog/default/t/.prestoPermissions/.user_cox.crc
/tmp/hive_catalog/default/t/.20180223_202616_00010_iuchi_79dee041-58a3-45ce-b86c-9f14e6260278.crc
/tmp/hive_catalog/default/t/.prestoSchema
/tmp/hive_catalog/default/t/20180223_202616_00010_iuchi_79dee041-58a3-45ce-b86c-9f14e6260278
/tmp/hive_catalog/default/t/..prestoSchema.crc
/tmp/hive_catalog/default/.prestoSchema
/tmp/hive_catalog/default/..prestoSchema.crc
/hive-standalone-metastore-3.0.0/
Apache Hive ディストリビューションでスタンドアロンで利用できるようになりました。
Hive 3.0 以降、Metastore は別のパッケージとしてリリースされ、残りの Hive なしで実行できます。これは、スタンドアロン モードと呼ばれます。
デフォルトでは、Metastore は Hive で使用するように構成されているため、この構成でいくつかの構成パラメーターを変更する必要があります。
metastore.task.threads.always -> org.apache.hadoop.hive.metastore.events.EventCleanerTask,org.apache.hadoop.hive.metastore.MaterializationsCacheCleanerTask
metastore.expression.proxy -> org.apache.hadoop.hive.metastore.DefaultPartitionExpressionProxy