問題タブ [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.
hadoop - Hadoop の TFile と HFile の関係は?
Hadoop は TFile と HFile の両方をサポートしているようです。当時とどのように表示されたかの違いを知りたいです (たとえば、HFile は TFile から派生したものですか?)。
hbase - Hbase FuzzyRowFilter キーのジャンプのしくみ
ファジー行フィルターは、最初に行キー、2 番目にファジー ロジックの 2 つのパラメーターを取ることを知っています。対応するJavaクラスFuzzyRowFilterから私が理解したのは、フィルターが現在の行を評価し、ファジーロジックに一致する次の上位の行キーを計算しようとし、一致しないキーをジャンプすることです。
以下のことが理解できません
スキャンは特定の行キーをどのようにジャンプしますか? Get を使用して現在の行キーを取得して比較しますか。次の一致する行キーが存在する場所をスキャンする方法は? フルスキャンを実行せずに (ジャンプする場合)
hbase - Hファイルサイズの選択
HBase セットアップで HFiles のサイズを選択するにはどうすればよいですか。ガイドラインのほとんどは、8k から 1MB の間のサイズを考慮する必要があると述べていますが、保存するデータの量に基づいて HFile のサイズを選択する明確な方法を見つけられませんでした。
hbase - HBase がすべての値の列ファミリーを格納する必要があるのはなぜですか?
HBase テーブルはスパース テーブルであるため、HBase は値だけでなく、セルを識別するために必要なすべての情報 (RowKey と混同しないように Key と呼ばれることが多い) をすべてのセルに格納します。キーは次のようになります。
RowKey-ColumnFamily-ColumnQualifier-Timestamp
そして、この情報はすべてエントリごとに保存されます。そのため、追加のオーバーヘッドを削減するために、列ファミリーと列修飾子に短い名前を使用することをお勧めします。
私の質問: エントリごとに ColumnFamily を保存する必要があるのはなぜですか? 私の理解では、すべてのストア ファイルは正確に 1 つの列ファミリーに属しています。ストア ファイルごとに 1 回列ファミリー名を格納するだけで十分ではないでしょうか? これによりオーバーヘッドが削減され、任意の列ファミリー名を使用でき、すべてのエントリの列ファミリーを識別することができます。ここで何が欠けていますか?
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 の行キーはソートされていません。では、太字の元の文は正しいですか?
では、読み取りが発生した場合、読み取りはどのように行われるのでしょうか?