The next major version - 0.96- of Apache HBase have several new features. The "Singularity", because you will have to start and stop your cluster to upgrade to 0.96. 0.96 requires Apache Hadoop 1.0.0 at least, and supported on Hadoop 2.0.0 as well. 0.96 uses protobufs all the time. All of its serializations to ZooKeeper, to the filesystem, and over rpc are protobufs. It runs on JDK7. Metrics have been edited and converted to use Hadoop Metrics2. It has HBase Snapshots and PrefixTreeCompression, etc. This presentation captures a high-level overview of what's new in HBase 0.96.
7. ●Apache Top-level Project
○hbase.apache.org
●Up out of Apache Hadoop contrib
●Project goal: “Billions of rows X
millions of columns on clusters of
‘commodity hardware”
●HBase persists all data to HDFS
●Uses Apache ZooKeeper
○Cluster coordination
28. •
•
•
•
HBase
Dedicated meta WAL
Don't put WAL replicas on local node
– 33% of reads have to timeout
Lowered ZK timeout
– 30s instead of 180s
Watcher script kills znode
–
•
Detection time approaches 0
Faster assignment
29. •
HDFS
HDFS-4721 Speed up lease/block recovery
when DN fails and a block goes into
recovery
–
•
HDFS-3703 Decrease the datanode failure
detection time
–
•
Do not recover on STALE DNs
Avoid reading STALE DNs
HDFS-3912 Detecting and avoiding stale
datanodes for writing
30. Coming...
●
Faster WAL replay/Distributed WAL Replay
–
No intermediate files
–
No wait on NN
Committed
●
Experimental
Regions online immediately for Writes
●
●
–
●
Read older consistent view
“Favored Nodes”
36. Scalability
•
•
•
•
e.g. Replicating 1k to 1k & heading north
HBASE-8778 Region assigments scan
table directory making them slow for
huge tables
HBASE-9208 ReplicationLogCleaner
slow at large scale
HBASE-8877 Reentrant row locks
39. Integration Tests
•
Cluster test module
•
"Borrows" test types from all over
o Netflix "ChaosMonkey"
o Apache Accumulo linked-list dataloss
checker
o Standalone or cluster
o Sizeable
x data
x runtime
hbase-it/src/test/java//org/apache/hadoop/hbase/mapreduce/IntegrationTestBulkLoad.java
hbase-it/src/test/java//org/apache/hadoop/hbase/mapreduce/IntegrationTestImportTsv.java
hbase-it/src/test/java//org/apache/hadoop/hbase/mttr/IntegrationTestMTTR.java
hbase-it/src/test/java//org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java
hbase-it/src/test/java//org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.java