完全分散モードの 3 台のマシンで hadoop1.0.3 を構成しました。最初のマシンでは、以下のジョブが実行されています。
1)
4316 SecondaryNameNode
4006 NameNode
4159 DataNode
4619 TaskTracker
4425 JobTracker
2)
2794 TaskTracker
2672 DataNode
3)
3338 DataNode
3447 TaskTracker
単純なマップ削減ジョブを実行すると、マップ削減ジョブの実行に時間がかかります。そのため、Hadoop に HBASE レイヤーをインストールしました。3 つのクラスターで HBASE のプロセスを以下に示します。
1) 5115 HQuorumPeer 5198 HMaster 5408 HRegionServer
2) 3719 HRegionServer 3617 HQuorumPeer
3) 2937 HQuorumPeer 2719 HRegionServer
1,00,000 データに対して HBASE で map-reduce ジョブを実行すると、1 分かかり、1,00,00,000 データでも同じでした。今では、結果を数ミリ秒で取得したいと考えています。改善するにはどのような手順を踏む必要がありますか?
私は初心者ですので、私を助けてください。または、HBASE または Hadoop を介したレイヤリングを提案してください。そうすれば、わずか数ミリ秒で結果を得ることができます。
以下の記録を要約しています。
hbase(main):007:0> describe 'weblog'
DESCRIPTION ENABLED
'weblog', {NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => true
'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE'
, MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS =>
'false', BLOCKSIZE => '65536', IN_MEMORY => 'false',
ENCODE_ON_DISK => 'true', BLOCKCACHE => 'true'}
ブログ テーブル -> info:category,info:hits は列です。
info:category info:hits
web 2
mail 10
ftp 1
web 3
mail 11
ftp 2
データは map reduce にまとめられ、別のテーブルに格納されます。
hbase(main):004:0> put 'weblog', 'row1', 'info:category', 'web'
0 row(s) in 0.0560
hbase(main):004:0> put 'weblog', 'row1', 'info:hits', '2'
0 row(s) in 0.0560
これについて助けてください。私はたくさんグーグルで検索しましたが、私に役立つものを見つけることができませんでした。