HBase

HBase徹底入門

@brfrn169さんからHBase徹底入門を献本いただきました。ありがとうございます。まだちゃんと読んでない状態ですが(汗、あんまり時間あけるのも良くないので紹介エントリを書きます。HBase徹底入門 Hadoopクラスタによる高速データベースの実現作者: 株式会…

Hive 0.12へのバージョンアップ

Hive 0.11から0.12へバージョンアップしたのでメモっておく。今のところ特に問題は発生していない。前回Hive 0.9からHive 0.11へバージョンアップしたときは[HIVE-5237] Incorrect group-by aggregation in 0.11.0 - ASF JIRAというバグを踏んでプギャーって…

バージョン毎のHBaseアクセス方法

とりあえずめもっとく0.90系。馬本に書かれているのはこのパターン。 … HTablePool pool = new HTablePool(...); ... HTableInterface table = null; try { Put put = new Put(...); ... table = pool.getTable(…); table.put(put); } catch (IOException e)…

ログ解析環境についてなんとなく書いてみる

ふとログ解析環境についてなんとなく書いてみたくなったので書いてみる。データサイエンティストブームなるものがあると思いますが、データサイエンティストって言ったときに、Hadoop/Hiveあたりを使ってデータをきれいに整理して分析しやすいように加工する…

HiveとHBaseの連携は難しい

Hive 0.11.0にバージョンアップしてmultiple insertに関わるバグである[HIVE-3699] Multiple insert overwrite into multiple tables query stores same results in all tables - ASF JIRAを心配しなくて良くなったけど代わりにネストしたgroup byに関わるバ…

Hive 0.11で遭遇した問題をメモっておく

Hive 0.11.0へのupgrageを行うため開発環境でいろいろ試しているのだがすんなりとはいかなかった部分があるのでメモっておく。問題が再現する最小のクエリを準備するのが面倒なのでそこは略してスタックトレースだけのっけときます。 HiveとHBaseを連携した…

本番サービス用Hadoopクラスタと統計用Hadoopクラスタの違い

僕が日頃触っているのは統計用Hadoopクラスタで本番サービス用Hadoopクラスタのことはそんなに分からないんだけど見た範囲で言うと違いがいくつかある。本番サービス用Hadoopクラスタっていうのは例えばTwitterのようなつぶやきサービスだったらつぶやきを保…

Hadoopを使ったログ解析システムにおける時間別のジョブ、パーティションについてつらつらと書いてみる。

ログを1時間毎にためてそれをHadoopで処理するなんていうのはよくあるパターンではないかと思う。例えば時間別のPV, UUを求めたいとかね。その場合20130806-1800, 20130806-1900みたいなHiveパーティションを用意するのではないだろうか。20130806-1800パー…

Hadoopサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか

Linuxサーバがディスク容量不足になった!何か消さねば!ってなった時にどう対処するか - 元RX-7乗りの適当な日々 Linuxサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか - たごもりすメモ Cassandraサーバのディスク容量減少アラー…

HBase, Cassandra関連でスライドがいくつか上がっていたのでメモっとく

InstagramがCassandraを使っているらしい - wyukawa’s blogで取り上げたInstagramがCassandraを使っている話の資料がslideshareに上がってました。Cassandra Summit 2013でのプレゼンですね。 C* Summit 2013: Cassandra at Instagram by Rick Branson from …

オレが今見ているHadoopクラスターに関してぼんやりとした感想を書いてみる

オレが今見ているHadoopクラスターはおもに統計値を取得するためのもので、サービスのフロントにどかんと出ているものではない。イントラネット内のものだし内部の人間しかアクセスしないものなのでミッションクリティカルなものではない。主にHiveを使ってM…

バルクロードでHBaseにインポートしたデータをHiveの外部テーブルでselectするときに遭遇した現象に関するメモ

タイトル長い。。。ちゃんと整理できてないですがとりあえずメモっときます。環境はHBase 0.94.4, Hive 0.10.0です。LoadIncrementalHFilesを使ってHBaseにデータをインポートしようとしたら下記のようなエラーが出ました。 Caused by: java.lang.IllegalSta…

HBaseのデータをHiveからselectする

参考にしたのはこの辺本家Wiki https://cwiki.apache.org/confluence/display/Hive/HBaseIntegrationHortonworksのスライド資料 Integration of Hive and HBase from Hortonworks 最初はHiveでselect insertしてHBaseにデータロードする方法を試していたけど…

HBase 0.94になってメトリクスがいっぱい追加されたらしい

該当のJIRAは下記です。 https://issues.apache.org/jira/browse/HBASE-5533JMXを使ってHBaseをモニタリングするということは一般的に行われていると思います。 馬本でも10.4 JMXのところに記述があります。hbase-env.shを修正してjmxのportを開けてそこにア…

HBaseのデータ書き込みフロー Part 2

以前HBaseのデータ書き込みフローについて下記ブログを書きました。 HBaseのデータ書き込みフロー - wyukawa’s blogどういう内容かというとHBaseでデータの書き込みを行う場合は、メモリ上のMemStoreに書き込むとともにディスク上のHLogにも書いて耐障害性を…

HBaseのコンパクション周りのソースを読んでいたのでメモ

HBaseのコンパクション周りのソースを読んでいたのでメモっておく。馬本の8.2.3.5 コンパクションと下記togetterも参考HBaseのコンパクションまわりを調べてみた件。 - Togetter僕が読んだソースのHBaseのバージョンは0.94.2と新しいですが上記馬本とtogette…

HBaseクライアントを作る際のページング処理について

HBaseにデータをいっぱい突っ込んでHBaseクライアント作ってさーがりがり検索するぞーっていう場合に注意する点があります。row keyで検索するとして単純に考えるとGetオブジェクを作って以下のように検索するでしょう。 Get get = new Get(rowkey); get.add…

HBaseのJuliet Pauseとリージョン復旧について

HBaseにはJuliet Pauseというよく知られた障害のシナリオがあります。 The HBase development team has affectionately dubbed this scenario a Juliet Pause ― the master (Romeo) presumes the region server (Juliet) is dead when it’s really just slee…

HBaseのバルクロードというかHFile生成方法

HBaseにデータをロードする場合はバルクロードを使うのが性能的には良いと思います。HTable#putだとWALをオフにしても遅いんですよね。バルクロードに関しては馬本の12.2.3を読むと良いと思います。バルクロードを使うためにはHBase用のデータファイル、HFil…

入力データの性質によってはOutOfMemoryになってしまうHBaseへのデータ投入用のReduceタスクをどうすべきか?

今週ずっと考えているんだけど今のところの結論としてはデータを捨てるしかないかなと思ってる。 ちょっと整理されていない、というかオレの頭が混乱している感がありありだけどラフなメモ書き。例をあげるとこんな感じのユーザの行動ログがHDFSにあるとしま…

HBaseについての情報源

クレジットカード現金化詐欺【業界人が教える口コミ情報】 の12/2分として書きます。内容は薄いというかHBaseの情報源についてのまとめエントリです。■本家 Top http://hbase.apache.org/ JIRA https://issues.apache.org/jira/browse/HBASE Subversion http…

HBaseのテーブルがenableでもなくdisableでもなくなった場合の対応方法

どうもこんばんはwyukawaです。最近HBaseのテーブルがenableでもなくdisableでもなくまたdropもできないという状態になり、詰んだアカウントがこちらになります。再現性はたぶん無くて該当のJIRAはたぶんこれ。未解決ですね、はい。 https://issues.apache.o…

HBaseのデータ書き込みフロー

馬本をつらつら読んだのでデータ書き込みのあたりについてメモがてら書いてみる。HBaseはLog-Structured Merge-tree (LSM-tree)という技術を使ってデータの読み書きを行います。LSM-treeはMemtable, SS Table, Commit Logという3つの記憶領域を使います。Me…

HBase in Actionの4章に書かれているRow Keyの話

昨日のエントリでも少し触れましたが、HBase in Actionの4章ではTwitterのようなつぶやきサービスを作るときのRow Keyの設計について考察がされています。今回はそれについて少し書いてみます。つぶやきするユーザはuseridを持つものとします。 ユーザAのuse…

HBaseのRow Keyの設計についてのメモ

Facebook Messageで使われたり、LINEのストレージで使われたり、と事例も多く出てきているHBase(Bは大文字。これ重要)ですが、個人的に少し興味も湧いてきたのでちょっと調べてます。HBaseはLog-Structured Merge-tree (LSM-tree)というアーキテクチャを使…