2017-09-19 11 views
1

S3に内部テーブルと外部テーブルがあります。 HDFSとS3の内部テーブルの違いは何ですか? S3に格納されている内部テーブルと外部テーブルの違いは何ですか? S3で外部テーブルを削除すると、マスターノードのメタデータが削除され、S3のデータがそこにあります。その後、メタデータが削除されてからS3のデータにアクセスできますか?S3に内部テーブルと外部テーブルの両方を格納することの違い

答えて

0

ハイブテーブルは、S3(内部)(管理対象)または外部(外部)がS3またはHDFS内にあることは関係ありません。テーブル(管理対象または外部)タイプとストレージ(S3、HDFS)の間には接続がありません。

管理対象テーブルと外部テーブルの違いは、テーブルまたはパーティションを削除すると、ファイルのある場所も削除されることです。外部テーブルまたはそのパーティションを削除すると、場所が残ります。メタデータのみが削除されます。ファイルを直接読み取るか、Hiveテーブルまたはパーティションを作成して場所を指定することで、S3またはHDFSの場所にあるデータにアクセスできます。同じ場所を指す複数のテーブルを作成することもできますが、S3やHDFSは関係ありません。

HDFSとS3にはS3の最終的な一貫性など、多くの違いがあります。 S3とHDFSの違いについてはこちらをご覧ください:https://www.xplenty.com/blog/2014/03/storing-apache-hadoop-data-cloud-hdfs-vs-s3/ そして、ここで:https://databricks.com/blog/2017/05/31/top-5-reasons-for-choosing-s3-over-hdfs.html

また、結果整合性についてはこの回答を参照してください。https://stackoverflow.com/a/42677748/2700344

+0

私は私のメタデータを保存するためのRDSを使用しています、のiはS3で管理し、外部表を持っていると仮定しましょう私はEC2のインスタンスを持っていると私はクエリ1を実行しています。EC2インスタンスは、マスターノードといくつかのコアノードが3つのコアノードを言うでしょう。マスターノードは、右のメタデータを持っている必要がありますか?私はクラスタを失った場合、私はメタデットで行った変更に何が起こるでしょうか?2.データはs3に格納されているので、管理されたテーブルで作業している場合、データはコアノードのいずれかになければなりません。どのパラメータマスタノードがどのコアノードにタスクを割り当てるかを決定することに基づく – I1095

+0

S3データはクラスタノードに格納されず、NASに格納され、多くのクラスタからアクセスできます。したがって、クラスタを失った場合、データはS3にとどまります。メタデータは、RDS(例えばMySQL)に格納することができます。 – leftjoin

関連する問題