問題タブ [hbase]
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.
nosql - HBaseおよび/またはCassandraを使用した検索(および一般的なクエリ)(ベストプラクティス?)
かなりの数のフィールド(必要に応じてプロパティ)を含むUserモデルオブジェクトがあります。「名」、「姓」、「都市」、「生年月日」と言います。各ユーザーは「一意のID」も取得します。
それらで検索できるようにしたいと思います。どうすればそれを適切に行うことができますか?どのようにそれを行うのですか?
私の理解(ほとんどすべてのKey-Valueストレージで機能します-最初にKey、次にValueになります)
u:123456789 = serialized_json_object
(ユーザーのキーの単純なプレフィックスとしての「u」、123456789は「一意のID」です)。
ここで、名と姓で検索できるようにしたいと考えて、次の場所に保存できます。
f:スティーブ= u:384734807、u:2398248764、u:23276263 f:アレックス= u:12324355、u:121324334
したがって、キーは「f」です。これは名のプレフィックスであり、「Steve」は実際の名です。「u:Steve」の場合、「Steve」であるすべてのユーザーIDを値として保存します。
これにより、すべての検索が非常に簡単になります。いくつかのフィールド(プロパティ)によるクエリ-たとえば、名(つまり「Steve」)と姓(つまり「l:Anything」)によるクエリはまだ簡単です-最初に「f:Steve」からユーザーIDのリストを取得し、次に「l」からリストを取得します:Anything "、交差するユーザーIDを見つけてください。
問題(そしてかなりの数があります):
ユーザーの保存、更新、削除は面倒です。それはアトミックで一貫した操作でなければなりません。また、値のサイズが特定の値に制限されている場合、(潜在的な)問題が発生します。そして、ここでの答えは本当にありません。ユーザーIDのリストを圧縮するだけですか?でも、あまりクールではありません。
検索する新しいフィールドを追加するID。最終的。「都市」で言います。「c:LosAngeles」= ...、「c:Chicago」= ...と同じように実行できますが、最初からこれらすべての「検索の選択肢」を予測していなかった場合は、次のようになります。夜の仕事など、既存のすべてのユーザーレコードを作成して、それらの「c:CITY」を更新できるようにするために...非常に大きな仕事です。
ロックに関する問題。ユーザー「u:123」は自分の名前「Alex」を更新し、ユーザー「u:456」は自分の名前「Alex」を更新します。どちらも「f:Alex」をIDで更新する必要があります。つまり、上書きの問題が発生するか、1つの更新が別の更新を待機します(そして、それらが多数ある場合はイメージングしますか?!)。
それを行うための最良の方法は何ですか?多くの分野で検索したいということを念頭に置いて?
PSお願いします、質問はHBase / Cassandra / NoSQL/Key-Valueストレージについてです。お願いします-MySQLを使用してSELECTについて「読む」ためのアドバイスはありません。「後で」スケーリングの問題について心配します。私が私の質問を私がしたのとまったく同じようにしたのには理由があります。:-)
python - Python から HBase にアクセスするための適切なライブラリはありますか?
時間をかけて探してみたところ、Jyth しか見つかりませんでした。それはオプションですが、よりpythonesque(より単純な)方法で使用できるものはありますか?
hbase - HBase スキャナーを改善するには?
スキャナーが一度に多数のレコードのみを取得するように HBase を構成するにはどうすればよいですか? または、データベースに多くのレコードが含まれている場合にスキャナーを改善するにはどうすればよいですか/
hbase - HBase スキーマのヘルプ
私は SQL Server のバックグラウンドを持っているため、HBase に関しては初心者ですが、このテクノロジは私たちが行っていることにうまく適合しているように見え、コストも間違いなく適切です!
通常は RDBS で次のように作成するログ エントリのリストを維持する必要があります。
create table Log ( UserID int, SiteID int, Page varchar(50), Date smalldatetime )
この単純なテーブルでは、1 人のユーザーが 0 行または 1000 行を持つことができます。典型的なクエリは、1 人のユーザーのすべての行、または 1 つのサイトの 1 人のユーザーのすべての行を検索することです。
これは、「行キー」がなく、同じ (SiteID,Page) が何度も表示される可能性がある HBase の「マップ」にどのように変換されますか。私が最初に考えたのは、UserID は行キーであるということですが、1 つの UserID が複数の (SiteID,Page ,Date) 「行」。
どんな方向でも大歓迎です!
hadoop - hbase の行の更新中に問題に直面する
サンプルを実行しました:SampleUploader、PerformanceEvaluation、および行カウント
Hadoop ウィキ: http://wiki.apache.org/hadoop/Hbase/MapReduce
私が直面している問題は次のとおりです。 table1 は、列ファミリーの列を持つ私のテーブルです
同様に、両方の列を別のバージョンと同じ行に表示したいのですが、名前の列をサラに変更すると、更新された行が表示されます....しかし、古い行と変更された行の両方を2として表示したいデータを分析できるように、さまざまなバージョン........
私が犯している間違いは何ですか?
どうもありがとうサミー
ruby - 分散ログ アグリゲーター (Splunk など) を構築するための最適なコンポーネント スタックは何ですか?
コンピューティング グリッド内の多数のサーバーからログを集約するために、Splunk に似たものを構築するために使用できる最適なコンポーネントを見つけようとしています。また、毎日大量のログがあり、単一のマシンにログを保存できないため、分散する必要があります。
私は特に、Ruby で動作し、Windows と最新の Solaris で動作するものに興味があります (ええ、私は動物園を持っています)。
私はアーキテクチャを次のように考えています。
- ログクローラー (Ruby スクリプト)。
- 分散ログ ストレージ。
- 分散検索エンジン。
- 軽量フロントエンド。
ログ クローラーと分散検索エンジンは問題外です。ログは Ruby スクリプトによって解析され、ElasticSearch はログ メッセージのインデックス作成に使用されます。フロントエンドもとても選びやすい - Sinatra。
私の主な問題は分散ログ ストレージです。MongoDB、CouchDB、HDFS、Cassandra、HBase について調べました。
- MongoDB は、Solaris で動作しないため拒否されました。
- CouchDB はシャーディングをサポートしていません (それを機能させるにはスマートプロキシが必要ですが、これは試したくありません)。
- Cassandra はうまく機能しますが、ディスク容量を大量に消費するだけであり、Cassandra ノード間で負荷を分散するために毎日オートバランスを実行する必要があります。
- HDFS は有望に見えましたが、FileSystem API は Java のみで、JRuby は苦労しました。
- HBase は最善のソリューションのように見えましたが、デプロイと監視は単なる災害です。HBase を開始するには、最初に HDFS を開始し、問題なく開始されたことを確認し、次に HBase を開始してそれも確認し、REST サービスを開始して、も確認してください。
だから私は立ち往生しています。HDFS または HBase がログ ストレージとして使用するのに最適であると言う人もいますが、HDFS は Java でのみスムーズに動作し、HBase は展開/監視の悪夢に過ぎません。
上記のコンポーネントを使用して、またはまったく異なるものを使用して同様のシステムを構築した経験や考えを共有できる人はいますか?
hadoop - Hadoop(zohmgの代替)用のバッチログ処理ツールを知っていますか?
zohmgプロジェクトは死んでいるようです(2009年11月以降、新しいコミットはありません)ので、(成功した結果で)それを使用/使用した人がいるかどうかを知りたいと思います。または、このプロジェクトの将来について何か知っている場合。
そうでない場合は、このプロジェクトに代わるものはありますか。(Apache)ログからデータを抽出し(Hadoopをバッチ処理システムとして使用)、HBaseに保存し、このデータのクエリに役立つツールを探しています。
hadoop - HBase の隣接リスト構造
次のグラフ削減アルゴリズムを実装しようとしています
- グラフは無向加重グラフです
- 隣接するノードが 2 つだけのすべてのノードを取り除きたい
- 重みを更新します
次の図を見てください。
アルゴリズム縮小グラフ http://public.kungi.org/graph-reduction.png
アルゴリズムは上のグラフを下のグラフに変換します。ノード 2 を削除し、エッジの重みを w(1-3) = w(1-2)+w(2-3) に更新します。
私は非常に大きなグラフを持っているので、これを MapReduce で行っています。
私の質問は、HBase でグラフを表現する方法です。次のように、HBase で隣接リスト構造を構築することを考えました。
列ファミリー: ノード、隣接 1 -> 2、6、7 ...
これを行うより良い方法はありますか?
database - 参照整合性と HBase
HBase FAQ で最初に読んだサンプル スキーマの 1 つは、多対多関係の Student-Course の例です。このスキーマには、Student テーブルに Courses 列があり、Course テーブルに Students 列があります。
しかし、HBase でこれら 2 つのオブジェクト間の整合性を保証する方法がわかりません。あるテーブルを更新する前に何かがクラッシュした場合、問題が発生します。
トランザクション機能があるようですが、すべてのプットでこれを使用するコストはいくらですか? または、問題について考える他の方法はありますか?
hadoop - hbaseへのzohmgデータのインポートに関する問題
zohmgを使用して、HBaseでマッパー、テーブルを正常に作成し、データをテストインポートしました(--local switchを使用)。
しかし、HBaseにマッピングした後、データを挿入する際に問題が発生します。これはエラーです。
私がそれを修正するのに役立つかもしれない手がかりはありますか?(または多分これはダンボの問題ですか?)