問題タブ [hfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
600 参照

hadoop - Hadoop の TFile と HFile の関係は?

Hadoop は TFile と HFile の両方をサポートしているようです。当時とどのように表示されたかの違いを知りたいです (たとえば、HFile は TFile から派生したものですか?)。

0 投票する
2 に答える
4246 参照

hbase - Hbase FuzzyRowFilter キーのジャンプのしくみ

ファジー行フィルターは、最初に行キー、2 番目にファジー ロジックの 2 つのパラメーターを取ることを知っています。対応するJavaクラスFuzzyRowFilterから私が理解したのは、フィルターが現在の行を評価し、ファジーロジックに一致する次の上位の行キーを計算しようとし、一致しないキーをジャンプすることです。

以下のことが理解できません

スキャンは特定の行キーをどのようにジャンプしますか? Get を使用して現在の行キーを取得して比較しますか。次の一致する行キーが存在する場所をスキャンする方法は? フルスキャンを実行せずに (ジャンプする場合)

0 投票する
1 に答える
204 参照

hbase - Hファイルサイズの選択

HBase セットアップで HFiles のサイズを選択するにはどうすればよいですか。ガイドラインのほとんどは、8k から 1MB の間のサイズを考慮する必要があると述べていますが、保存するデータの量に基づいて HFile のサイズを選択する明確な方法を見つけられませんでした。

0 投票する
2 に答える
1065 参照

hbase - HBase がすべての値の列ファミリーを格納する必要があるのはなぜですか?

HBase テーブルはスパース テーブルであるため、HBase は値だけでなく、セルを識別するために必要なすべての情報 (RowKey と混同しないように Key と呼ばれることが多い) をすべてのセルに格納します。キーは次のようになります。

RowKey-ColumnFamily-ColumnQualifier-Timestamp

そして、この情報はすべてエントリごとに保存されます。そのため、追加のオーバーヘッドを削減するために、列ファミリーと列修飾子に短い名前を使用することをお勧めします。

私の質問: エントリごとに ColumnFamily を保存する必要があるのはなぜですか? 私の理解では、すべてのストア ファイルは正確に 1 つの列ファミリーに属しています。ストア ファイルごとに 1 回列ファミリー名を格納するだけで十分ではないでしょうか? これによりオーバーヘッドが削減され、任意の列ファミリー名を使用でき、すべてのエントリの列ファミリーを識別することができます。ここで何が欠けていますか?

0 投票する
1 に答える
1376 参照

hbase - HBase: データはどのようにソートされた方法で HFile に書き込まれますか?

私は HFiles についてかなり基本的な疑問を持っていました。

put/insert リクエストが開始されると、値は最初に WAL に書き込まれ、次に memstore に書き込まれます。memstore の値は、HFile と同じソート方法で格納されます。memstore がいっぱいになると、新しい HFile にフラッシュされます。

ここで、HFile がデータをソートされた順序で格納することを読みました。つまり、連続した行キーは互いに隣り合っています。

これは 100% 本当ですか?

例: 最初に、行キー 500 を除いて、行キー 1 から 1000 までの行を書き込みます。memstore がいっぱいになったので、HFile1 という名前の新しい HFile を作成するとします。現在、このファイルは不変です。

ここで、行 1001 から 2000 を書き込み、次に行キー 500 を書き込みます。memstore がいっぱいで、HFile に書き込むとします。これを HFile2 と呼びます。

では、こうなってしまうのでしょうか。

はいの場合、行キー 500 は HFile1 にないため、HFiles の行キーはソートされていません。では、太字の元の文は正しいですか?

では、読み取りが発生した場合、読み取りはどのように行われるのでしょうか?