
仕事でぶち当たったので備忘録。 結論としてはHBaseにおける削除というものの概念を取り違えてただけという悲しい結果だったのですが、同じ轍を踏まないようにエントリに残しておきます。 バージョン機能使ってる場合は特に注意したほうがよさそうです。 何があったの? 以下のコマンドをHBase Shellで実行しました。 # (1) hogehogeテーブルのrowkey1で指定される行のcf:cqカラムのバージョン1000をvalue1で更新 put 'hogehoge', 'rowkey1', 'cf:cq', 'value1', 1000 # (2) 検索 scan 'hogehoge' # (3) hogehogeテーブルのrowkey1で指定される行のcf:cqカラムのバージョン1000を削除 delete 'hogehoge', 'rowkey1', 'cf:cq', 1000 # (
S-JIS[2010-07-11/2012-04-28] 変更履歴 HBaseのHadoop関連クラス HBaseにHadoopでアクセスする為のクラス。 WordCountサンプル HBaseのテーブルの全項目を読み込み、単語数を数えるサンプル。 出力先はファイル。(通常のHadoopと同じ) (→HBaseのテーブルに出力するWordCount) package jp.hishidama.sample.hbase; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; impor
HBaseにデータをロードする場合はバルクロードを使うのが性能的には良いと思います。 HTable#putだとWALをオフにしても遅いんですよね。 バルクロードに関しては馬本の12.2.3を読むと良いと思います。 バルクロードを使うためにはHBase用のデータファイル、HFileを生成する必要があります。 MapReduceジョブでHFileを生成するためには出力フォーマットとしてHFileOutputFormatを使います。 MapReduceジョブを効率的に動作させるためには出力したHFileを1つのリージョンに収まるようにするわけですが、その辺の処理はHFileOutputFormat#configureIncrementalLoadを呼べばいいです。呼べばTotalOrderPartitionerをpartitionerとしてセットしてよろしくやってくれます。 MapReduceで
create 'sample', 'data' ('a'..'z').each {|i| put 'sample', i, 'data:alpha', i} scan 'samples' ROW COLUMN+CELL a column=data:alpha, timestamp=1333387516755, value=a b column=data:alpha, timestamp=1333387516772, value=b ... 手ごろなfixture作成にはよいが、これで1億件やる気はしない b) importtsv の使い方 既存のインポートツールを利用する方法。 入力データはtsv,csvに限定されるが、hbase.jarに含まれるImportTsvが目的に合致する。 実行にはhbase.jarファイルのフルパスが必要なので、まずはjarをlocateなどで探す。 % lo
Acroquest Technology、Hadoop/HBaseの内部動作を可視化する「halook」をオープンソースとして公開、WGP1.0βおよびENdoSnipe5.0βを同時リリース Acroquest Technology株式会社は2012年11月9日、Hadoop/HBaseの内部動作を可視化するソフトウェア「halook」をオープンソースとして公開し、併せてWGP1.0βおよびENdoSnipe5.0βをリリースした。 DataNode間の偏りやMapReduce Taskの動作状況を可視化 Hadoop分散ファイルシステムであるHDFSは、クラスタを構成するDataNodeに、データを分散して保存する。今回リリースされたhalookは、このDataNode間におけるデータの偏り方を可視化するもの。 halookでDataNode間の様子を可視化 また、MapReduceに
"PyCon JP 2011"のライトニングトークでの資料です。 Cassandraベースでどのようにトランザクションを実現したか(の概略)と、 webフレームワークであるweb2py用のCMSプラグインのご紹介です。 最近はCassandraをマイクロサービス/サービスメッシュ基盤へ応用しています。 https://b-rabbit.jp/
Facebook Messageで使われたり、LINEのストレージで使われたり、と事例も多く出てきているHBase(Bは大文字。これ重要)ですが、個人的に少し興味も湧いてきたのでちょっと調べてます。HBaseはLog-Structured Merge-tree (LSM-tree)というアーキテクチャを使っており大量データの書き込みに最適化されています。なので大量の書き込みがあり読み込みは直近のもののみというメッセージ系アプリに向いているんだと思います。 そういえば半額に釣られてManning | HBase in Actionも買ってしまいました。 この本の4章のRow Keyの設計についての話があってそれがちょっと面白かったので関連してRow Keyについて少し書いてみます。 まずHBaseはカラム指向のデータベースと呼ばれますがデータモデルは多次元ソートマップです。 図解すると下記の
使ってる人にとっては何周目かの今さら感漂いますが、ひょんなことから調べる必要が出てきたのでざっくりまとめてみました。 環境 CentOS6.3 PHP5.5.3 JDK1.6.0-45 HBase0.94.11 Thrift0.9.1 HBaseとは HBaseはKVS(Key-Value Store)の1つで、ASF(Apache Software Foundation)のHadoopプロジェクトの一環として作られたオープンソースソフトウェアです。本家はApache HBase – Apache HBase™ Homeです。 HBaseのアーキテクチャを理解しよう (1/3):CodeZine(コードジン) とりあえず、以下の記事をざっと読むと良いかと。 いまさら聞けないKVSの常識をHbaseで身につける (1/3):ビッグデータ処理の常識をJavaで身につける(3) - @IT HB
Hadoopアドベントカレンダー2013、3日目を担当する @shiumachi です。 今回は HBase 0.96 の新機能を一つ紹介します。 要約 HBase 0.96 は賢くなったのでみんな使おう。 コンパクションのおさらい HBase では、Log Structured-Merge tree (LSM-tree) というデータ構造を使っています。 LSM-tree を簡単に説明すると、入力されたデータをログとメモリ上のデータストア(Memstore、メモリストア) に書き込みます。 メモリストアがいっぱいになると、まとめてディスクにフラッシュし、新しいストアファイルを生成します。 このストアファイルがたまってきたときに、少しづつ一まとめにしてなるべくファイル数を少なくするようにします。これがコンパクションです。 コンパクションを実行することにより、ファイルは一つにまとまります。こ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く