HBaseに14.5Millionのレコードを保存しています。各行には20以上の列があります。私は最初に7000万レコードを挿入しようとしました。これは非常にスムーズで1.7分で完了しました。HBaseに大量のデータを保存するのが非常に遅い
次に、14.5百万という実際のフルデータを挿入しようとしました。私は一度それらのすべてを挿入しようとすると、それは多くの時間がかかります。それは1.5時間走った。
Sparkは私のプログラミングモデルです。私は、TableOutPutFormatとclouderaのhbase-sparkのbulkputを使ってsaveAsNewHadoopDataSetを使ってみました。
どちらも同じようです。私は8つのノードサーバー上で実行しており、8つのリージョンサーバーと1つの列ファミリーのみを使用しています。リージョンサーバーとマスターの両方に4GBのヒープを割り当てました。
私は何かが不足しているかHBaseが一度に大量のデータを挿入するとわかりません。
あなたのごちそうを提供してください。また、私はHBaseデータの上に直接データフレーム抽象化を使用し、データフレームをHBaseに直接保存できるように、pheonixレイヤーをインストールする予定です。
私は、HBaseが1450万レコードのためにどうやって窒息することができるかを見つけるのにまだ苦労しています。データは約9 GBです。
こんにちはハリル、 私は、以下のコマンドを使用して分割されています。 hbase org.apache.hadoop.hbase.util.RegionSplitter table_name UniformSplit -c 8 -f column_family。 しかし、依然としてHBase Master UIをチェックインすると、ほとんどのリクエストは1つのリージョンサーバーを経由しています。 – Srini
すべてのリクエストが単一のノードに向いている場合、多分ホットスポットであり、あなたのrow_keysはすべて同じものか少し違っていますか? –
あなたのロウキー形式は何ですか、タイムスタンプで始まり、ホットスポットが発生した場合、変更する必要があります。 – halil