You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/08/27 07:01:07 UTC
svn commit: r990018 [1/10] - in /hbase/branches/0.90_master_rewrite: ./ bin/
bin/replication/ src/assembly/ src/docbkx/
src/main/java/org/apache/hadoop/hbase/
src/main/java/org/apache/hadoop/hbase/client/
src/main/java/org/apache/hadoop/hbase/filter/ s...
Author: stack
Date: Fri Aug 27 05:01:02 2010
New Revision: 990018
URL: http://svn.apache.org/viewvc?rev=990018&view=rev
Log:
Commit merge from TRUNK of all that was added there -- 99 issues -- since this branch was made Mon Jun 28 20:54:27 2010 UTC (8 weeks, 3 days ago) by jgray r958726
Added:
hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh
hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh
hbase/branches/0.90_master_rewrite/bin/master-backup.sh
hbase/branches/0.90_master_rewrite/bin/replication/
hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb
hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb
hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh
hbase/branches/0.90_master_rewrite/src/docbkx/
hbase/branches/0.90_master_rewrite/src/docbkx/book.xml
hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/LogEntryVisitor.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeperWrapper.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/master/
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/Replication.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkMetrics.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceMetrics.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatistics.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/ManualEnvironmentEdge.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/PairOfSameType.java
hbase/branches/0.90_master_rewrite/src/main/javadoc/org/apache/hadoop/hbase/replication/
hbase/branches/0.90_master_rewrite/src/main/javadoc/org/apache/hadoop/hbase/replication/package.html
hbase/branches/0.90_master_rewrite/src/site/site.vm
hbase/branches/0.90_master_rewrite/src/site/xdoc/pseudo-distributed.xml
hbase/branches/0.90_master_rewrite/src/site/xdoc/replication.xml
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/BROKE_TODO_FIX_TestAcidGuarantees.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/client/TestMultipleTimestamps.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/client/TestTimestampsFilter.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/filter/TestColumnPrefixFilter.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/hfile/TestReseekTo.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogMethods.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/TestReplication.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/regionserver/
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/util/TestByteBloomFilter.java
Removed:
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/OldLogsCleaner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/DeleteCompare.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/GetDeleteTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/QueryMatcher.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileGetScan.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/WildcardColumnTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/SoftValue.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/SoftValueMap.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/master/TestOldLogsCleaner.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestDeleteCompare.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetDeleteTracker.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java
Modified:
hbase/branches/0.90_master_rewrite/.gitignore
hbase/branches/0.90_master_rewrite/CHANGES.txt
hbase/branches/0.90_master_rewrite/bin/hbase
hbase/branches/0.90_master_rewrite/bin/hbase-config.sh
hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh
hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh
hbase/branches/0.90_master_rewrite/bin/regionservers.sh
hbase/branches/0.90_master_rewrite/bin/start-hbase.sh
hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh
hbase/branches/0.90_master_rewrite/bin/zookeepers.sh
hbase/branches/0.90_master_rewrite/pom.xml
hbase/branches/0.90_master_rewrite/src/assembly/bin.xml
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/Filter.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/CachedBlock.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/CachedBlockQueue.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileScanner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/LogCleanerDelegate.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ColumnTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/GetClosestRowBeforeTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueScanner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ReadWriteConsistencyControl.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogKey.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/LogActionsListener.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/Main.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/RowResultGenerator.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/client/Client.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/provider/producer/PlainTextMessageBodyProducer.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/provider/producer/ProtobufMessageBodyProducer.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/Bytes.java
hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/SoftValueSortedMap.java
hbase/branches/0.90_master_rewrite/src/main/javadoc/overview.html
hbase/branches/0.90_master_rewrite/src/main/resources/hbase-default.xml
hbase/branches/0.90_master_rewrite/src/main/ruby/shell.rb
hbase/branches/0.90_master_rewrite/src/main/ruby/shell/formatter.rb
hbase/branches/0.90_master_rewrite/src/site/site.xml
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/TestAcidGuarantees.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/TestImmutableBytesWritable.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCachedBlockQueue.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/KeyValueScanFixture.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestExplicitColumnTracker.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestFSErrorsExposed.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeyValueHeap.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStore.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestQueryMatcher.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanWildcardColumnTracker.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogSplit.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogActionsListener.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java
hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java
Modified: hbase/branches/0.90_master_rewrite/.gitignore
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/.gitignore?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/.gitignore (original)
+++ hbase/branches/0.90_master_rewrite/.gitignore Fri Aug 27 05:01:02 2010
@@ -9,3 +9,4 @@
*.iml
*.orig
*~
+*.rej
Modified: hbase/branches/0.90_master_rewrite/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/CHANGES.txt?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/CHANGES.txt (original)
+++ hbase/branches/0.90_master_rewrite/CHANGES.txt Fri Aug 27 05:01:02 2010
@@ -25,6 +25,8 @@ Release 0.21.0 - Unreleased
HBASE-2565 Remove contrib module from hbase
HBASE-2397 Bytes.toStringBinary escapes printable chars
HBASE-2771 Update our hadoop jar to be latest from 0.20-append branch
+ HBASE-2803 Remove remaining Get code from Store.java,etc
+ HBASE-2553 Revisit IncrementColumnValue implementation in 0.22
BUG FIXES
HBASE-1791 Timeout in IndexRecordWriter (Bradford Stephens via Andrew
@@ -426,6 +428,66 @@ Release 0.21.0 - Unreleased
HBASE-2707 Can't recover from a dead ROOT server if any exceptions happens
during log splitting
HBASE-2501 Refactor StoreFile Code
+ HBASE-2806 DNS hiccups cause uncaught NPE in HServerAddress#getBindAddress
+ (Benoit Sigoure via Stack)
+ HBASE-2806 (small compile fix via jgray)
+ HBASE-2797 Another NPE in ReadWriteConsistencyControl
+ HBASE-2831 Fix '$bin' path duplication in setup scripts
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2781 ZKW.createUnassignedRegion doesn't make sure existing znode is
+ in the right state (Karthik Ranganathan via JD)
+ HBASE-2727 Splits writing one file only is untenable; need dir of recovered
+ edits ordered by sequenceid
+ HBASE-2843 Readd bloomfilter test over zealously removed by HBASE-2625
+ HBASE-2846 Make rest server be same as thrift and avro servers
+ HBASE-1511 Pseudo distributed mode in LocalHBaseCluster
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2851 Remove testDynamicBloom() unit test
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2853 TestLoadIncrementalHFiles fails on TRUNK
+ HBASE-2854 broken tests on trunk
+ HBASE-2859 Cleanup deprecated stuff in TestHLog (Alex Newman via Stack)
+ HBASE-2858 TestReplication.queueFailover fails half the time
+ HBASE-2863 HBASE-2553 removed an important edge case
+ HBASE-2866 Region permanently offlined
+ HBASE-2849 HBase clients cannot recover when their ZooKeeper session
+ becomes invalid (Benôit Sigoure via Stack)
+ HBASE-2876 HBase hbck: false positive error reported for parent regions
+ that are in offline state in meta after a split
+ HBASE-2815 not able to run the test suite in background because TestShell
+ gets suspended on tty output (Alexey Kovyrin via Stack)
+ HBASE-2852 Bloom filter NPE (pranav via jgray)
+ HBASE-2820 hbck throws an error if HBase root dir isn't on the default FS
+ HBASE-2884 TestHFileOutputFormat flaky when map tasks generate identical
+ data
+ HBASE-2890 Initialize RPC JMX metrics on startup (Gary Helmling via Stack)
+ HBASE-2755 Duplicate assignment of a region after region server recovery
+ (Kannan Muthukkaruppan via Stack)
+ HBASE-2892 Replication metrics aren't updated
+ HBASE-2461 Split doesn't handle IOExceptions when creating new region
+ reference files
+ HBASE-2871 Make "start|stop" commands symmetric for Master & Cluster
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2901 HBASE-2461 broke build
+ HBASE-2823 Entire Row Deletes not stored in Row+Col Bloom
+ (Alexander Georgiev via Stack)
+ HBASE-2897 RowResultGenerator should handle NoSuchColumnFamilyException
+ HBASE-2905 NPE when inserting mass data via REST interface (Sandy Yin via
+ Andrew Purtell)
+ HBASE-2908 Wrong order of null-check [in TIF] (Libor Dener via Stack)
+ HBASE-2909 SoftValueSortedMap is broken, can generate NPEs
+ HBASE-2919 initTableReducerJob: Unused method parameter
+ (Libor Dener via Stack)
+ HBASE-2923 Deadlock between HRegion.internalFlushCache and close
+ HBASE-2927 BaseScanner gets stale HRegionInfo in some race cases
+ HBASE-2928 Fault in logic in BinaryPrefixComparator leads to
+ ArrayIndexOutOfBoundsException (pranav via jgray)
+ HBASE-2924 TestLogRolling doesn't use the right HLog half the time
+ HBASE-2931 Do not throw RuntimeExceptions in RPC/HbaseObjectWritable
+ code, ensure we log and rethrow as IOE
+ (Karthik Ranganathan via Stack)
+ HBASE-2915 Deadlock between HRegion.ICV and HRegion.close
+ HBASE-2920 HTable.checkAndPut/Delete doesn't handle null values
IMPROVEMENTS
HBASE-1760 Cleanup TODOs in HTable
@@ -750,6 +812,49 @@ Release 0.21.0 - Unreleased
(Nicolas Spiegelberg via JD)
HBASE-2786 TestHLog.testSplit hangs (Nicolas Spiegelberg via JD)
HBASE-2790 Purge apache-forrest from TRUNK
+ HBASE-2793 Add ability to extract a specified list of versions of a column
+ in a single roundtrip (Kannan via Ryan)
+ HBASE-2828 HTable unnecessarily coupled with HMaster
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2265 HFile and Memstore should maintain minimum and maximum timestamps
+ (Pranav via Ryan)
+ HBASE-2836 Speed mvn site building by removing generation of useless reports
+ HBASE-2808 Document the implementation of replication
+ HBASE-2517 During reads when passed the specified time range, seek to
+ next column (Pranav via jgray)
+ HBASE-2835 Update hadoop jar to head of branch-0.20-append to catch three
+ added patches
+ HBASE-2840 Remove the final remnants of the old Get code - the query matchers
+ and other helper classes
+ HBASE-2845 Small edit of shell main help page cutting down some on white
+ space and text
+ HBASE-2850 slf4j version needs to be reconciled in pom: thrift wants 1.5.x
+ and hadoop/avro 1.4.x
+ HBASE-2865 Cleanup of LRU logging; its hard to read, uses custom MB'maker,
+ repeats info, too many numbers after the point, etc.
+ HBASE-2869 Regularize how we log sequenceids -- sometimes its myseqid,
+ other times its sequence id, etc.
+ HBASE-2873 Minor clean up in basescanner; fix a log and make deletes of
+ region processing run in order
+ HBASE-2830 NotServingRegionException shouldn't log a stack trace
+ HBASE-2874 Unnecessary double-synchronization in ZooKeeperWrapper
+ (Benoît Sigoure via Stack)
+ HBASE-2879 Offer ZK CLI outside of HBase Shell
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2886 Add search box to site (Alex Baranau via Stack)
+ HBASE-2792 Create a better way to chain log cleaners
+ (Chongxin Li via Stack)
+ HBASE-2844 Capping the number of regions (Pranav Khaitan via Stack)
+ HBASE-2870 Add Backup CLI Option to HMaster (Nicolas Spiegelberg via Stack)
+ HBASE-2868 Do some small cleanups in org.apache.hadoop.hbase.regionserver.wal
+ (Alex Newman via Stack)
+ HBASE-1660 HBASE-1660 script to handle rolling restarts
+ (Nicolas Spiegelberg via Stack)
+ HBASE-1517 Implement inexpensive seek operations in HFile (Pranav via Ryan)
+ HBASE-2903 ColumnPrefix filtering (Pranav via Ryan)
+ HBASE-2904 Smart seeking using filters (Pranav via Ryan)
+ HBASE-2922 HLog preparation and cleanup are done under the updateLock,
+ major slowdown
NEW FEATURES
HBASE-1961 HBase EC2 scripts
@@ -793,6 +898,10 @@ Release 0.21.0 - Unreleased
(Jeff Hammerbacher via Ryan Rawson)
HBASE-7 Provide a HBase checker and repair tool similar to fsck
(dhruba borthakur via Stack)
+ HBASE-2223 Handle 10min+ network partitions between clusters
+ HBASE-2862 Name DFSClient for Improved Debugging
+ (Nicolas Spiegelberg via Stack)
+ HBASE-2838 Replication metrics
OPTIMIZATIONS
HBASE-410 [testing] Speed up the test suite
Modified: hbase/branches/0.90_master_rewrite/bin/hbase
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase Fri Aug 27 05:01:02 2010
@@ -43,7 +43,7 @@
# MAVEN_HOME Where mvn is installed.
#
bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`cd "$bin">/dev/null; pwd`
# This will set HBASE_HOME, etc.
. "$bin"/hbase-config.sh
@@ -67,11 +67,13 @@ if [ $# = 0 ]; then
if $in_sources_dir; then
echo " shell-tests run the HBase shell tests"
fi
+ echo " zkcli run the ZooKeeper shell"
echo " master run an HBase HMaster node"
echo " regionserver run an HBase HRegionServer node"
+ echo " zookeeper run a Zookeeper server"
+ echo " rest run an HBase REST server"
echo " thrift run an HBase Thrift server"
echo " avro run an HBase Avro server"
- echo " zookeeper run a Zookeeper server"
echo " migrate upgrade an hbase.rootdir"
echo " hbck run the hbase 'fsck' tool"
echo " or"
@@ -239,6 +241,11 @@ elif [ "$COMMAND" = "thrift" ] ; then
if [ "$1" != "stop" ] ; then
HBASE_OPTS="$HBASE_OPTS $HBASE_THRIFT_OPTS"
fi
+elif [ "$COMMAND" = "rest" ] ; then
+ CLASS='org.apache.hadoop.hbase.rest.Main'
+ if [ "$1" != "stop" ] ; then
+ HBASE_OPTS="$HBASE_OPTS $HBASE_REST_OPTS"
+ fi
elif [ "$COMMAND" = "avro" ] ; then
CLASS='org.apache.hadoop.hbase.avro.AvroServer'
if [ "$1" != "stop" ] ; then
@@ -253,6 +260,8 @@ elif [ "$COMMAND" = "zookeeper" ] ; then
if [ "$1" != "stop" ] ; then
HBASE_OPTS="$HBASE_OPTS $HBASE_ZOOKEEPER_OPTS"
fi
+elif [ "$COMMAND" = "zkcli" ] ; then
+ CLASS='org.apache.zookeeper.ZooKeeperMain'
else
CLASS=$COMMAND
fi
Modified: hbase/branches/0.90_master_rewrite/bin/hbase-config.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase-config.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase-config.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase-config.sh Fri Aug 27 05:01:02 2010
@@ -24,9 +24,9 @@
# also should not be passed any arguments, since we need original $*
# Modelled after $HADOOP_HOME/bin/hadoop-env.sh.
-# resolve links - $0 may be a softlink
+# resolve links - "${BASH_SOURCE-$0}" may be a softlink
-this="$0"
+this="${BASH_SOURCE-$0}"
while [ -h "$this" ]; do
ls=`ls -ld "$this"`
link=`expr "$ls" : '.*-> \(.*\)$'`
@@ -40,7 +40,7 @@ done
# convert relative path to absolute path
bin=`dirname "$this"`
script=`basename "$this"`
-bin=`cd "$bin"; pwd`
+bin=`cd "$bin">/dev/null; pwd`
this="$bin/$script"
# the root of the hbase installation
@@ -73,6 +73,8 @@ done
HBASE_CONF_DIR="${HBASE_CONF_DIR:-$HBASE_HOME/conf}"
# List of hbase regions servers.
HBASE_REGIONSERVERS="${HBASE_REGIONSERVERS:-$HBASE_CONF_DIR/regionservers}"
+# List of hbase secondary masters.
+HBASE_BACKUP_MASTERS="${HBASE_BACKUP_MASTERS:-$HBASE_CONF_DIR/backup-masters}"
# Source the hbase-env.sh. Will have JAVA_HOME defined.
if [ -f "${HBASE_CONF_DIR}/hbase-env.sh" ]; then
Modified: hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh Fri Aug 27 05:01:02 2010
@@ -33,7 +33,7 @@
# Modelled after $HADOOP_HOME/bin/hadoop-daemon.sh
usage="Usage: hbase-daemon.sh [--config <conf-dir>]\
- (start|stop) <hbase-command> \
+ (start|stop|restart) <hbase-command> \
<args...>"
# if no args specified, show usage
@@ -42,8 +42,8 @@ if [ $# -le 1 ]; then
exit 1
fi
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
. "$bin"/hbase-config.sh
@@ -71,6 +71,24 @@ hbase_rotate_log ()
fi
}
+wait_until_done ()
+{
+ p=$1
+ cnt=${HBASE_SLAVE_TIMEOUT:-60}
+ origcnt=$cnt
+ while kill -0 $p > /dev/null 2>&1; do
+ if [ $cnt -gt 1 ]; then
+ cnt=`expr $cnt - 1`
+ sleep 1
+ else
+ echo "Process did not complete after $origcnt seconds, killing."
+ kill -9 $p
+ exit 1
+ fi
+ done
+ return 0
+}
+
# get log directory
if [ "$HBASE_LOG_DIR" = "" ]; then
export HBASE_LOG_DIR="$HBASE_HOME/logs"
@@ -132,13 +150,12 @@ case $startStop in
(stop)
if [ -f $pid ]; then
+ # kill -0 == see if the PID exists
if kill -0 `cat $pid` > /dev/null 2>&1; then
echo -n stopping $command
- echo "`date` Stopping $command" >> $loglog
if [ "$command" = "master" ]; then
- nohup nice -n $HBASE_NICENESS "$HBASE_HOME"/bin/hbase \
- --config "${HBASE_CONF_DIR}" \
- $command $startStop "$@" > "$logout" 2>&1 < /dev/null &
+ echo "`date` Killing $command" >> $loglog
+ kill -9 `cat $pid` > /dev/null 2>&1
else
echo "`date` Killing $command" >> $loglog
kill `cat $pid` > /dev/null 2>&1
@@ -150,13 +167,29 @@ case $startStop in
echo
else
retval=$?
- echo no $command to stop because kill of pid `cat $pid` failed with status $retval
+ echo no $command to stop because kill -0 of pid `cat $pid` failed with status $retval
fi
else
echo no $command to stop because no pid file $pid
fi
;;
+ (restart)
+ thiscmd=$0
+ args=$@
+ # stop the command
+ $thiscmd --config "${HBASE_CONF_DIR}" stop $command $args &
+ wait_until_done $!
+ # wait a user-specified sleep period
+ sp=${HBASE_SLAVE_SLEEP:-3}
+ if [ $sp -gt 0 ]; then
+ sleep $sp
+ fi
+ # start the command
+ $thiscmd --config "${HBASE_CONF_DIR}" start $command $args &
+ wait_until_done $!
+ ;;
+
(*)
echo $usage
exit 1
Modified: hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh Fri Aug 27 05:01:02 2010
@@ -32,8 +32,8 @@ if [ $# -le 1 ]; then
exit 1
fi
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
. $bin/hbase-config.sh
@@ -45,6 +45,9 @@ case $command in
(zookeeper)
exec "$bin/zookeepers.sh" $args
;;
+ (master-backup)
+ exec "$bin/master-backup.sh" $args
+ ;;
(*)
exec "$bin/regionservers.sh" $args
;;
Added: hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,36 @@
+#!/bin/sh
+# This is used for starting multiple masters on the same machine.
+# run it from hbase-dir/ just like 'bin/hbase'
+# Supports up to 10 masters (limitation = overlapping ports)
+
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin" >/dev/null && pwd`
+
+if [ $# -lt 2 ]; then
+ S=`basename "${BASH_SOURCE-$0}"`
+ echo "Usage: $S [start|stop] offset(s)"
+ echo ""
+ echo " e.g. $S start 1"
+ exit
+fi
+
+# sanity check: make sure your master opts don't use ports [i.e. JMX/DBG]
+export HBASE_MASTER_OPTS=" "
+
+run_master () {
+ DN=$2
+ export HBASE_IDENT_STRING="$USER-$DN"
+ HBASE_MASTER_ARGS="\
+ --backup \
+ -D hbase.master.port=`expr 60000 + $DN` \
+ -D hbase.master.info.port=`expr 60010 + $DN`"
+ "$bin"/hbase-daemon.sh $1 master $HBASE_MASTER_ARGS
+}
+
+cmd=$1
+shift;
+
+for i in $*
+do
+ run_master $cmd $i
+done
Added: hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,35 @@
+#!/bin/sh
+# This is used for starting multiple regionservers on the same machine.
+# run it from hbase-dir/ just like 'bin/hbase'
+# Supports up to 100 regionservers (limitation = overlapping ports)
+
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin" >/dev/null && pwd`
+
+if [ $# -lt 2 ]; then
+ S=`basename "${BASH_SOURCE-$0}"`
+ echo "Usage: $S [start|stop] offset(s)"
+ echo ""
+ echo " e.g. $S start 1 2"
+ exit
+fi
+
+# sanity check: make sure your regionserver opts don't use ports [i.e. JMX/DBG]
+export HBASE_REGIONSERVER_OPTS=" "
+
+run_regionserver () {
+ DN=$2
+ export HBASE_IDENT_STRING="$USER-$DN"
+ HBASE_REGIONSERVER_ARGS="\
+ -D hbase.regionserver.port=`expr 60200 + $DN` \
+ -D hbase.regionserver.info.port=`expr 60300 + $DN`"
+ "$bin"/hbase-daemon.sh $1 regionserver $HBASE_REGIONSERVER_ARGS
+}
+
+cmd=$1
+shift;
+
+for i in $*
+do
+ run_regionserver $cmd $i
+done
Added: hbase/branches/0.90_master_rewrite/bin/master-backup.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/master-backup.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/master-backup.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/master-backup.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+#
+#/**
+# * Copyright 2010 The Apache Software Foundation
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements. See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership. The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+#
+# Run a shell command on all backup master hosts.
+#
+# Environment Variables
+#
+# HBASE_BACKUP_MASTERS File naming remote hosts.
+# Default is ${HADOOP_CONF_DIR}/backup-masters
+# HADOOP_CONF_DIR Alternate conf dir. Default is ${HADOOP_HOME}/conf.
+# HBASE_CONF_DIR Alternate hbase conf dir. Default is ${HBASE_HOME}/conf.
+# HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
+# HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
+#
+# Modelled after $HADOOP_HOME/bin/slaves.sh.
+
+usage="Usage: $0 [--config <hbase-confdir>] command..."
+
+# if no args specified, show usage
+if [ $# -le 0 ]; then
+ echo $usage
+ exit 1
+fi
+
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
+
+. "$bin"/hbase-config.sh
+
+# If the master backup file is specified in the command line,
+# then it takes precedence over the definition in
+# hbase-env.sh. Save it here.
+HOSTLIST=$HBASE_BACKUP_MASTERS
+
+if [ "$HOSTLIST" = "" ]; then
+ if [ "$HBASE_BACKUP_MASTERS" = "" ]; then
+ export HOSTLIST="${HBASE_CONF_DIR}/backup-masters"
+ else
+ export HOSTLIST="${HBASE_BACKUP_MASTERS}"
+ fi
+fi
+
+
+args=${@// /\\ }
+args=${args/master-backup/master}
+
+if [ -f $HOSTLIST ]; then
+ for hmaster in `cat "$HOSTLIST"`; do
+ ssh $HBASE_SSH_OPTS $hmaster $"$args --backup" \
+ 2>&1 | sed "s/^/$hmaster: /" &
+ if [ "$HBASE_SLAVE_SLEEP" != "" ]; then
+ sleep $HBASE_SLAVE_SLEEP
+ fi
+ done
+fi
+
+wait
Modified: hbase/branches/0.90_master_rewrite/bin/regionservers.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/regionservers.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/regionservers.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/regionservers.sh Fri Aug 27 05:01:02 2010
@@ -41,8 +41,8 @@ if [ $# -le 0 ]; then
exit 1
fi
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
. "$bin"/hbase-config.sh
@@ -60,11 +60,16 @@ if [ "$HOSTLIST" = "" ]; then
fi
for regionserver in `cat "$HOSTLIST"`; do
- ssh $HBASE_SSH_OPTS $regionserver $"${@// /\\ }" \
- 2>&1 | sed "s/^/$regionserver: /" &
- if [ "$HBASE_SLAVE_SLEEP" != "" ]; then
- sleep $HBASE_SLAVE_SLEEP
- fi
+ if ${HBASE_SLAVE_PARALLEL:-true}; then
+ ssh $HBASE_SSH_OPTS $regionserver $"${@// /\\ }" \
+ 2>&1 | sed "s/^/$regionserver: /" &
+ else # run each command serially
+ ssh $HBASE_SSH_OPTS $regionserver $"${@// /\\ }" \
+ 2>&1 | sed "s/^/$regionserver: /"
+ fi
+ if [ "$HBASE_SLAVE_SLEEP" != "" ]; then
+ sleep $HBASE_SLAVE_SLEEP
+ fi
done
wait
Added: hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb (added)
+++ hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb Fri Aug 27 05:01:02 2010
@@ -0,0 +1,75 @@
+#
+# Copyright 2010 The Apache Software Foundation
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Script to add a peer to a cluster
+# To see usage for this script, run:
+#
+# ${HBASE_HOME}/bin/hbase org.jruby.Main add_peer.rb
+#
+
+include Java
+import org.apache.commons.logging.LogFactory
+import org.apache.hadoop.hbase.HBaseConfiguration
+import org.apache.hadoop.hbase.HConstants
+import org.apache.hadoop.hbase.EmptyWatcher
+import org.apache.hadoop.conf.Configuration
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper
+
+# Name of this script
+NAME = "add_peer"
+
+# Print usage for this script
+def usage
+ puts 'Usage: %s.rb master_zookeeper.quorum.peers:clientport:znode_parent slave_zookeeper.quorum.peers:clientport:znode_parent' % NAME
+ exit!
+end
+
+if ARGV.size != 2
+ usage
+end
+
+LOG = LogFactory.getLog(NAME)
+
+parts1 = ARGV[0].split(":")
+
+c2 = HBaseConfiguration.create()
+parts2 = ARGV[1].split(":")
+
+c1 = HBaseConfiguration.create()
+c1.set(HConstants::ZOOKEEPER_QUORUM, parts1[0])
+c1.set("hbase.zookeeper.property.clientPort", parts1[1])
+c1.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts1[2])
+
+zkw1 = ZooKeeperWrapper.createInstance(c1, "ZK1")
+zkw1.writeZNode(parts1[2], "replication", "a")
+zkw1.writeZNode(parts1[2] + "/replication", "master", ARGV[0]);
+zkw1.writeZNode(parts1[2] + "/replication", "state", "true");
+zkw1.writeZNode(parts1[2] + "/replication/peers", "test", ARGV[1]);
+
+
+c2.set(HConstants::ZOOKEEPER_QUORUM, parts2[0])
+c2.set("hbase.zookeeper.property.clientPort", parts2[1])
+c2.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts2[2])
+
+zkw2 = ZooKeeperWrapper.createInstance(c2, "ZK2")
+zkw2.writeZNode(parts2[2], "replication", "a")
+zkw2.writeZNode(parts2[2] + "/replication", "master", ARGV[0]);
+
+puts "Peer successfully added"
Added: hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb (added)
+++ hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb Fri Aug 27 05:01:02 2010
@@ -0,0 +1,75 @@
+#
+# Copyright 2010 The Apache Software Foundation
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Script to recreate all tables from one cluster to another
+# To see usage for this script, run:
+#
+# ${HBASE_HOME}/bin/hbase org.jruby.Main copy_tables_desc.rb
+#
+
+include Java
+import org.apache.commons.logging.LogFactory
+import org.apache.hadoop.hbase.HBaseConfiguration
+import org.apache.hadoop.hbase.HConstants
+import org.apache.hadoop.hbase.EmptyWatcher
+import org.apache.hadoop.hbase.client.HBaseAdmin
+import org.apache.hadoop.hbase.HTableDescriptor
+import org.apache.hadoop.conf.Configuration
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper
+
+# Name of this script
+NAME = "copy_tables_desc"
+
+# Print usage for this script
+def usage
+ puts 'Usage: %s.rb master_zookeeper.quorum.peers:clientport:znode_parent slave_zookeeper.quorum.peers:clientport:znode_parent' % NAME
+ exit!
+end
+
+if ARGV.size != 2
+ usage
+end
+
+LOG = LogFactory.getLog(NAME)
+
+parts1 = ARGV[0].split(":")
+
+parts2 = ARGV[1].split(":")
+
+c1 = HBaseConfiguration.create()
+c1.set(HConstants::ZOOKEEPER_QUORUM, parts1[0])
+c1.set("hbase.zookeeper.property.clientPort", parts1[1])
+c1.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts1[2])
+
+admin1 = HBaseAdmin.new(c1)
+
+c2 = HBaseConfiguration.create()
+c2.set(HConstants::ZOOKEEPER_QUORUM, parts2[0])
+c2.set("hbase.zookeeper.property.clientPort", parts2[1])
+c2.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts2[2])
+
+admin2 = HBaseAdmin.new(c2)
+
+for t in admin1.listTables()
+ admin2.createTable(t)
+end
+
+
+puts "All descriptions were copied"
Added: hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,170 @@
+#!/usr/bin/env bash
+#
+#/**
+# * Copyright 2007 The Apache Software Foundation
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements. See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership. The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+#
+# Run a shell command on all regionserver hosts.
+#
+# Environment Variables
+#
+# HBASE_REGIONSERVERS File naming remote hosts.
+# Default is ${HADOOP_CONF_DIR}/regionservers
+# HADOOP_CONF_DIR Alternate conf dir. Default is ${HADOOP_HOME}/conf.
+# HBASE_CONF_DIR Alternate hbase conf dir. Default is ${HBASE_HOME}/conf.
+# HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
+# HADOOP_SLAVE_TIMEOUT Seconds to wait for timing out a remote command.
+# HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
+#
+# Modelled after $HADOOP_HOME/bin/slaves.sh.
+
+usage="Usage: $0 [--config <hbase-confdir>] commands..."
+
+bin=`dirname "$0"`
+bin=`cd "$bin">/dev/null; pwd`
+
+. "$bin"/hbase-config.sh
+
+# start hbase daemons
+errCode=$?
+if [ $errCode -ne 0 ]
+then
+ exit $errCode
+fi
+
+# quick function to get a value from the HBase config file
+distMode=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool hbase.cluster.distributed`
+if [ "$distMode" == 'false' ]; then
+ "$bin"/hbase-daemon.sh restart master
+else
+ # stop all masters before re-start to avoid races for master znode
+ "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" stop master
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
+
+ # make sure the master znode has been deleted before continuing
+ zparent=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.parent`
+ if [ "$zparent" == "null" ]; then zparent="/hbase"; fi
+ zmaster=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.master`
+ if [ "$zmaster" == "null" ]; then zmaster="master"; fi
+ zmaster=$zparent/$zmaster
+ echo -n "Waiting for Master ZNode to expire"
+ while bin/hbase zkcli stat $zmaster >/dev/null 2>&1; do
+ echo -n "."
+ sleep 1
+ done
+ echo #force a newline
+
+ # all masters are down, now restart
+ "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
+
+ # unlike the masters, roll all regionservers one-at-a-time
+ export HBASE_SLAVE_PARALLEL=false
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_REGIONSERVERS}" restart regionserver
+
+fi
+
+#!/usr/bin/env bash
+#
+#/**
+# * Copyright 2010 The Apache Software Foundation
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements. See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership. The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+#
+# Run a shell command on all regionserver hosts.
+#
+# Environment Variables
+#
+# HBASE_REGIONSERVERS File naming remote hosts.
+# Default is ${HADOOP_CONF_DIR}/regionservers
+# HADOOP_CONF_DIR Alternate conf dir. Default is ${HADOOP_HOME}/conf.
+# HBASE_CONF_DIR Alternate hbase conf dir. Default is ${HBASE_HOME}/conf.
+# HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
+# HADOOP_SLAVE_TIMEOUT Seconds to wait for timing out a remote command.
+# HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
+#
+# Modelled after $HADOOP_HOME/bin/slaves.sh.
+
+usage="Usage: $0 [--config <hbase-confdir>] commands..."
+
+bin=`dirname "$0"`
+bin=`cd "$bin">/dev/null; pwd`
+
+. "$bin"/hbase-config.sh
+
+# start hbase daemons
+errCode=$?
+if [ $errCode -ne 0 ]
+then
+ exit $errCode
+fi
+
+# quick function to get a value from the HBase config file
+distMode=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool hbase.cluster.distributed`
+if [ "$distMode" == 'false' ]; then
+ "$bin"/hbase-daemon.sh restart master
+else
+ # stop all masters before re-start to avoid races for master znode
+ "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" stop master
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
+
+ # make sure the master znode has been deleted before continuing
+ zparent=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.parent`
+ if [ "$zparent" == "null" ]; then zparent="/hbase"; fi
+ zmaster=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.master`
+ if [ "$zmaster" == "null" ]; then zmaster="master"; fi
+ zmaster=$zparent/$zmaster
+ echo -n "Waiting for Master ZNode to expire"
+ while bin/hbase zkcli stat $zmaster >/dev/null 2>&1; do
+ echo -n "."
+ sleep 1
+ done
+ echo #force a newline
+
+ # all masters are down, now restart
+ "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
+
+ # unlike the masters, roll all regionservers one-at-a-time
+ export HBASE_SLAVE_PARALLEL=false
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_REGIONSERVERS}" restart regionserver
+
+fi
+
Modified: hbase/branches/0.90_master_rewrite/bin/start-hbase.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/start-hbase.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/start-hbase.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/start-hbase.sh Fri Aug 27 05:01:02 2010
@@ -26,8 +26,8 @@
# Run this on master node.
usage="Usage: start-hbase.sh"
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
. "$bin"/hbase-config.sh
@@ -49,4 +49,6 @@ else
"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
--hosts "${HBASE_REGIONSERVERS}" start regionserver
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
fi
Modified: hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh Fri Aug 27 05:01:02 2010
@@ -24,14 +24,46 @@
# Stop hadoop hbase daemons. Run this on master node.
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
. "$bin"/hbase-config.sh
-"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" stop master
+# variables needed for stop command
+if [ "$HBASE_LOG_DIR" = "" ]; then
+ export HBASE_LOG_DIR="$HBASE_HOME/logs"
+fi
+mkdir -p "$HBASE_LOG_DIR"
+
+if [ "$HBASE_IDENT_STRING" = "" ]; then
+ export HBASE_IDENT_STRING="$USER"
+fi
+
+export HBASE_LOGFILE=hbase-$HBASE_IDENT_STRING-master-$HOSTNAME.log
+logout=$HBASE_LOG_DIR/hbase-$HBASE_IDENT_STRING-master-$HOSTNAME.out
+loglog="${HBASE_LOG_DIR}/${HBASE_LOGFILE}"
+pid=${HBASE_PID_DIR:-/tmp}/hbase-$HBASE_IDENT_STRING-master.pid
+
+echo -n stopping hbase
+echo "`date` Stopping hbase (via master)" >> $loglog
+
+nohup nice -n ${HBASE_NICENESS:-0} "$HBASE_HOME"/bin/hbase \
+ --config "${HBASE_CONF_DIR}" \
+ master stop "$@" > "$logout" 2>&1 < /dev/null &
+
+while kill -0 `cat $pid` > /dev/null 2>&1; do
+ echo -n "."
+ sleep 1;
+done
+
+# distributed == false means that the HMaster will kill ZK when it exits
distMode=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool hbase.cluster.distributed`
if [ "$distMode" == 'true' ]
then
+ # TODO: store backup masters in ZooKeeper and have the primary send them a shutdown message
+ # stop any backup masters
+ "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+ --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
+
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" stop zookeeper
fi
Modified: hbase/branches/0.90_master_rewrite/bin/zookeepers.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/zookeepers.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/zookeepers.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/zookeepers.sh Fri Aug 27 05:01:02 2010
@@ -38,8 +38,8 @@ if [ $# -le 0 ]; then
exit 1
fi
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
. "$bin"/hbase-config.sh
Modified: hbase/branches/0.90_master_rewrite/pom.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/pom.xml?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/pom.xml (original)
+++ hbase/branches/0.90_master_rewrite/pom.xml Fri Aug 27 05:01:02 2010
@@ -5,7 +5,7 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<packaging>jar</packaging>
- <version>0.89.0-SNAPSHOT</version>
+ <version>${hbase.version}</version>
<name>HBase</name>
<description>
HBase is the &lt;a href="http://hadoop.apache.org"&rt;Hadoop</a&rt; database. Use it when you need random, realtime read/write access to your Big Data.
@@ -443,7 +443,6 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>1.5</version>
<executions>
<execution>
<id>add-jspc-source</id>
@@ -739,11 +738,21 @@
<!-- Avro dependencies -->
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>avro</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.5.2</version>
@@ -773,6 +782,11 @@
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guava.version}</version>
+ </dependency>
</dependencies>
<!--
Modified: hbase/branches/0.90_master_rewrite/src/assembly/bin.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/assembly/bin.xml?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/assembly/bin.xml (original)
+++ hbase/branches/0.90_master_rewrite/src/assembly/bin.xml Fri Aug 27 05:01:02 2010
@@ -28,7 +28,7 @@
<outputDirectory>/</outputDirectory>
<includes>
<include>hbase-${project.version}.jar</include>
- <include>hbase-${project.version}-tests.jar</include>
+ <include>hbase-${project.version}-test.jar</include>
</includes>
</fileSet>
<fileSet>
Added: hbase/branches/0.90_master_rewrite/src/docbkx/book.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/docbkx/book.xml?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/docbkx/book.xml (added)
+++ hbase/branches/0.90_master_rewrite/src/docbkx/book.xml Fri Aug 27 05:01:02 2010
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <info>
+ <title>HBase Book
+<?eval ${project.version}?>
+
+ </title>
+ </info>
+
+ <chapter xml:id="getting_started">
+ <title >Getting Started</title>
+
+ <section>
+ <title>Requirements</title>
+
+ <para>First...</para>
+ </section>
+ </chapter>
+
+ <chapter xml:id="datamodel">
+ <title>Data Model</title>
+
+ <para></para>
+ </chapter>
+
+ <chapter xml:id="implementation">
+ <title>Implementation</title>
+
+ <para></para>
+ </chapter>
+
+ <chapter xml:id="mapreduce">
+ <title>MapReduce</title>
+
+ <para></para>
+ </chapter>
+
+ <chapter xml:id="schema">
+ <title>Schema Design</title>
+
+ <para></para>
+ </chapter>
+
+ <chapter xml:id="shell">
+ <title>Shell</title>
+
+ <para></para>
+ </chapter>
+
+ <chapter xml:id="thrift">
+ <title>Thrift</title>
+
+ <para></para>
+ </chapter>
+
+ <chapter xml:id="rest">
+ <title>REST</title>
+
+ <para></para>
+ </chapter>
+</book>
Added: hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml (added)
+++ hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml Fri Aug 27 05:01:02 2010
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<article version="5.0" xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ xmlns:db="http://docbook.org/ns/docbook">
+ <info>
+ <title>Wah-wah
+<?eval ${project.version}?>
+ </title>
+
+
+ </info>
+
+ <section xml:id="wahwah">
+ <title>Wah-Wah changed my life</title>
+
+ <para>I was born very young...</para>
+
+ <para>This is a sample docbook article.</para>
+ <para>
+ <?eval ${project.version}?>
+ </para>
+
+ <section xml:id="then">
+ <title>Then</title>
+
+ <para></para>
+ </section>
+
+ <section xml:id="and">
+ <title>And</title>
+
+ <para></para>
+ </section>
+
+ <section xml:id="later">
+ <title>Later</title>
+
+ <para></para>
+ </section>
+ </section>
+
+ <section xml:id="good_books">
+ <title>Good books</title>
+
+ <para></para>
+ </section>
+
+ <section xml:id="rainy_days">
+ <title>Rainy days</title>
+
+ <para>Today it was raining</para>
+ </section>
+</article>
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java Fri Aug 27 05:01:02 2010
@@ -81,6 +81,12 @@ public final class HConstants {
/** default port for master web api */
public static final int DEFAULT_MASTER_INFOPORT = 60010;
+ /** Parameter name for the master type being backup (waits for primary to go inactive). */
+ public static final String MASTER_TYPE_BACKUP = "hbase.master.backup";
+
+ /** by default every master is a possible primary master unless the conf explicitly overrides it */
+ public static final boolean DEFAULT_MASTER_TYPE_BACKUP = false;
+
/** Name of ZooKeeper quorum configuration parameter. */
public static final String ZOOKEEPER_QUORUM = "hbase.zookeeper.quorum";
@@ -352,6 +358,9 @@ public final class HConstants {
*/
public static long DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD = 60000;
+ public static final String
+ REPLICATION_ENABLE_KEY = "hbase.replication";
+
private HConstants() {
// Can't be instantiated with this ctor.
}
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java Fri Aug 27 05:01:02 2010
@@ -19,12 +19,14 @@
*/
package org.apache.hadoop.hbase;
-import org.apache.hadoop.io.*;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.io.WritableComparable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.net.InetAddress;
/**
* HServerAddress is a "label" for a HBase server made of host and port number.
@@ -39,13 +41,14 @@ public class HServerAddress implements W
}
/**
- * Construct a HServerAddress from an InetSocketAddress
+ * Construct an instance from an {@link InetSocketAddress}.
* @param address InetSocketAddress of server
*/
public HServerAddress(InetSocketAddress address) {
this.address = address;
this.stringValue = address.getAddress().getHostName() + ":" +
address.getPort();
+ checkBindAddressCanBeResolved();
}
/**
@@ -53,14 +56,14 @@ public class HServerAddress implements W
*/
public HServerAddress(String hostAndPort) {
int colonIndex = hostAndPort.lastIndexOf(':');
- if(colonIndex < 0) {
+ if (colonIndex < 0) {
throw new IllegalArgumentException("Not a host:port pair: " + hostAndPort);
}
String host = hostAndPort.substring(0, colonIndex);
- int port =
- Integer.valueOf(hostAndPort.substring(colonIndex + 1)).intValue();
+ int port = Integer.parseInt(hostAndPort.substring(colonIndex + 1));
this.address = new InetSocketAddress(host, port);
this.stringValue = hostAndPort;
+ checkBindAddressCanBeResolved();
}
/**
@@ -70,38 +73,53 @@ public class HServerAddress implements W
public HServerAddress(String bindAddress, int port) {
this.address = new InetSocketAddress(bindAddress, port);
this.stringValue = bindAddress + ":" + port;
+ checkBindAddressCanBeResolved();
}
/**
- * Copy-constructor
- *
+ * Copy-constructor.
* @param other HServerAddress to copy from
*/
public HServerAddress(HServerAddress other) {
String bindAddress = other.getBindAddress();
int port = other.getPort();
this.address = new InetSocketAddress(bindAddress, port);
- stringValue = bindAddress + ":" + port;
+ stringValue = other.stringValue;
+ checkBindAddressCanBeResolved();
}
/** @return Bind address */
public String getBindAddress() {
- return this.address.getAddress().getHostAddress();
+ final InetAddress addr = address.getAddress();
+ if (addr != null) {
+ return addr.getHostAddress();
+ } else {
+ LogFactory.getLog(HServerAddress.class).error("Could not resolve the"
+ + " DNS name of " + stringValue);
+ return null;
+ }
+ }
+
+ private void checkBindAddressCanBeResolved() {
+ if (getBindAddress() == null) {
+ throw new IllegalArgumentException("Could not resolve the"
+ + " DNS name of " + stringValue);
+ }
}
/** @return Port number */
public int getPort() {
- return this.address.getPort();
+ return address.getPort();
}
/** @return Hostname */
public String getHostname() {
- return this.address.getHostName();
+ return address.getHostName();
}
/** @return The InetSocketAddress */
public InetSocketAddress getInetSocketAddress() {
- return this.address;
+ return address;
}
/**
@@ -109,7 +127,7 @@ public class HServerAddress implements W
*/
@Override
public String toString() {
- return (this.stringValue == null ? "" : this.stringValue);
+ return stringValue == null ? "" : stringValue;
}
@Override
@@ -123,13 +141,13 @@ public class HServerAddress implements W
if (getClass() != o.getClass()) {
return false;
}
- return this.compareTo((HServerAddress)o) == 0;
+ return compareTo((HServerAddress) o) == 0;
}
@Override
public int hashCode() {
- int result = this.address.hashCode();
- result ^= this.stringValue.hashCode();
+ int result = address.hashCode();
+ result ^= stringValue.hashCode();
return result;
}
@@ -141,13 +159,13 @@ public class HServerAddress implements W
String bindAddress = in.readUTF();
int port = in.readInt();
- if(bindAddress == null || bindAddress.length() == 0) {
+ if (bindAddress == null || bindAddress.length() == 0) {
address = null;
stringValue = null;
-
} else {
address = new InetSocketAddress(bindAddress, port);
stringValue = bindAddress + ":" + port;
+ checkBindAddressCanBeResolved();
}
}
@@ -155,7 +173,6 @@ public class HServerAddress implements W
if (address == null) {
out.writeUTF("");
out.writeInt(0);
-
} else {
out.writeUTF(address.getAddress().getHostAddress());
out.writeInt(address.getPort());
@@ -170,7 +187,7 @@ public class HServerAddress implements W
// Addresses as Strings may not compare though address is for the one
// server with only difference being that one address has hostname
// resolved whereas other only has IP.
- if (this.address.equals(o.address)) return 0;
- return this.toString().compareTo(o.toString());
+ if (address.equals(o.address)) return 0;
+ return toString().compareTo(o.toString());
}
-}
\ No newline at end of file
+}
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java Fri Aug 27 05:01:02 2010
@@ -218,7 +218,7 @@ public class KeyValue implements Writabl
/** Dragon time over, return to normal business */
-
+
/** Writable Constructor -- DO NOT USE */
public KeyValue() {}
@@ -925,6 +925,15 @@ public class KeyValue implements Writabl
}
/**
+ *
+ * @return True if this KV is a delete family or column type.
+ */
+ public boolean isDeleteColumnOrFamily() {
+ int t = getType();
+ return t == Type.DeleteColumn.getCode() || t == Type.DeleteFamily.getCode();
+ }
+
+ /**
* Primarily for use client-side. Returns the family of this KeyValue in a
* new byte array.<p>
*
@@ -956,7 +965,7 @@ public class KeyValue implements Writabl
System.arraycopy(this.bytes, o, result, 0, l);
return result;
}
-
+
//---------------------------------------------------------------------------
//
// KeyValue splitter
@@ -1038,12 +1047,20 @@ public class KeyValue implements Writabl
* @return True if matching families.
*/
public boolean matchingFamily(final byte [] family) {
+ return matchingFamily(family, 0, family.length);
+ }
+
+ public boolean matchingFamily(final byte[] family, int offset, int length) {
if (this.length == 0 || this.bytes.length == 0) {
return false;
}
- int o = getFamilyOffset();
- int l = getFamilyLength(o);
- return Bytes.compareTo(family, 0, family.length, this.bytes, o, l) == 0;
+ return Bytes.compareTo(family, offset, length,
+ this.bytes, getFamilyOffset(), getFamilyLength()) == 0;
+ }
+
+ public boolean matchingFamily(final KeyValue other) {
+ return matchingFamily(other.getBuffer(), other.getFamilyOffset(),
+ other.getFamilyLength());
}
/**
@@ -1051,10 +1068,31 @@ public class KeyValue implements Writabl
* @return True if matching qualifiers.
*/
public boolean matchingQualifier(final byte [] qualifier) {
- int o = getQualifierOffset();
- int l = getQualifierLength();
- return Bytes.compareTo(qualifier, 0, qualifier.length,
- this.bytes, o, l) == 0;
+ return matchingQualifier(qualifier, 0, qualifier.length);
+ }
+
+ public boolean matchingQualifier(final byte [] qualifier, int offset, int length) {
+ return Bytes.compareTo(qualifier, offset, length,
+ this.bytes, getQualifierOffset(), getQualifierLength()) == 0;
+ }
+
+ public boolean matchingQualifier(final KeyValue other) {
+ return matchingQualifier(other.getBuffer(), other.getQualifierOffset(),
+ other.getQualifierLength());
+ }
+
+ public boolean matchingRow(final byte [] row) {
+ return matchingRow(row, 0, row.length);
+ }
+
+ public boolean matchingRow(final byte[] row, int offset, int length) {
+ return Bytes.compareTo(row, offset, length,
+ this.bytes, getRowOffset(), getRowLength()) == 0;
+ }
+
+ public boolean matchingRow(KeyValue other) {
+ return matchingRow(other.getBuffer(), other.getRowOffset(),
+ other.getRowLength());
}
/**
@@ -1080,12 +1118,12 @@ public class KeyValue implements Writabl
int o = getFamilyOffset(rl);
int fl = getFamilyLength(o);
int ql = getQualifierLength(rl,fl);
- if(Bytes.compareTo(family, 0, family.length, this.bytes, o, family.length)
+ if (Bytes.compareTo(family, 0, family.length, this.bytes, o, family.length)
!= 0) {
return false;
}
- if(qualifier == null || qualifier.length == 0) {
- if(ql == 0) {
+ if (qualifier == null || qualifier.length == 0) {
+ if (ql == 0) {
return true;
}
return false;
@@ -1511,7 +1549,7 @@ public class KeyValue implements Writabl
* Create a KeyValue that is smaller than all other possible KeyValues
* for the given row. That is any (valid) KeyValue on 'row' would sort
* _after_ the result.
- *
+ *
* @param row - row key (arbitrary byte array)
* @return First possible KeyValue on passed <code>row</code>
*/
@@ -1572,6 +1610,31 @@ public class KeyValue implements Writabl
}
/**
+ * Create a KeyValue for the specified row, family and qualifier that would be
+ * smaller than all other possible KeyValues that have the same row,
+ * family, qualifier.
+ * Used for seeking.
+ * @param row row key
+ * @param roffset row offset
+ * @param rlength row length
+ * @param family family name
+ * @param foffset family offset
+ * @param flength family length
+ * @param qualifier column qualifier
+ * @param qoffset qualifier offset
+ * @param qlength qualifier length
+ * @return First possible key on passed Row, Family, Qualifier.
+ */
+ public static KeyValue createFirstOnRow(final byte [] row,
+ final int roffset, final int rlength, final byte [] family,
+ final int foffset, final int flength, final byte [] qualifier,
+ final int qoffset, final int qlength) {
+ return new KeyValue(row, roffset, rlength, family,
+ foffset, flength, qualifier, qoffset, qlength,
+ HConstants.LATEST_TIMESTAMP, Type.Maximum, null, 0, 0);
+ }
+
+ /**
* @param b
* @return A KeyValue made of a byte array that holds the key-only part.
* Needed to convert hfile index members to KeyValues.
@@ -1751,7 +1814,7 @@ public class KeyValue implements Writabl
// if row matches, and no column in the 'left' AND put type is 'minimum',
// then return that left is larger than right.
-
+
// This supports 'last key on a row' - the magic is if there is no column in the
// left operand, and the left operand has a type of '0' - magical value,
// then we say the left is bigger. This will let us seek to the last key in
@@ -1826,8 +1889,8 @@ public class KeyValue implements Writabl
// HeapSize
public long heapSize() {
- return ClassSize.align(ClassSize.OBJECT + ClassSize.REFERENCE +
- ClassSize.align(ClassSize.ARRAY + length) +
+ return ClassSize.align(ClassSize.OBJECT + ClassSize.REFERENCE +
+ ClassSize.align(ClassSize.ARRAY + length) +
(2 * Bytes.SIZEOF_INT) +
Bytes.SIZEOF_LONG);
}
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Fri Aug 27 05:01:02 2010
@@ -52,7 +52,11 @@ import org.apache.hadoop.hbase.util.Writ
import org.apache.hadoop.ipc.RemoteException;
/**
- * Provides administrative functions for HBase
+ * Provides an interface to manage HBase database table metadata + general
+ * administrative functions. Use HBaseAdmin to create, drop, list, enable and
+ * disable tables. Use it also to add and drop table column families.
+ *
+ * See {@link HTable} to add, update, and delete data from an individual table.
*/
public class HBaseAdmin implements Abortable {
private final Log LOG = LogFactory.getLog(this.getClass().getName());
@@ -71,10 +75,11 @@ public class HBaseAdmin implements Abort
* Constructor
*
* @param conf Configuration object
- * @throws IOException
+ * @throws MasterNotRunningException if the master is not running
+ * @throws ZooKeeperConnectionException if unable to connect to zookeeper
*/
public HBaseAdmin(Configuration conf)
- throws IOException {
+ throws MasterNotRunningException, ZooKeeperConnectionException {
this.connection = HConnectionManager.getConnection(conf);
this.conf = conf;
this.pause = conf.getLong("hbase.client.pause", 30 * 1000);
@@ -971,10 +976,11 @@ public class HBaseAdmin implements Abort
* Check to see if HBase is running. Throw an exception if not.
*
* @param conf system configuration
- * @throws IOException
+ * @throws MasterNotRunningException if the master is not running
+ * @throws ZooKeeperConnectionException if unable to connect to zookeeper
*/
public static void checkHBaseAvailable(Configuration conf)
- throws IOException {
+ throws MasterNotRunningException, ZooKeeperConnectionException {
Configuration copyOfConf = HBaseConfiguration.create(conf);
copyOfConf.setInt("hbase.client.retries.number", 1);
new HBaseAdmin(copyOfConf);
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java Fri Aug 27 05:01:02 2010
@@ -43,6 +43,7 @@ import org.apache.hadoop.hbase.HServerIn
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
+import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
import org.apache.hadoop.hbase.ipc.HMasterInterface;
import org.apache.hadoop.hbase.ipc.HRegionInterface;
@@ -74,15 +75,16 @@ public class HBaseFsck extends HBaseAdmi
*
* @param conf Configuration object
* @throws MasterNotRunningException if the master is not running
+ * @throws ZooKeeperConnectionException if unable to connect to zookeeper
*/
public HBaseFsck(Configuration conf)
- throws MasterNotRunningException, IOException {
+ throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
super(conf);
this.conf = conf;
// setup filesystem properties
- this.fs = FileSystem.get(conf);
this.rootDir = new Path(conf.get(HConstants.HBASE_DIR));
+ this.fs = rootDir.getFileSystem(conf);
// fetch information from master
@@ -249,12 +251,13 @@ public class HBaseFsck extends HBaseAdmi
throws IOException {
// make a copy of all entries in META
- TreeMap<HRegionInfo, MetaEntry> tmp = new TreeMap<HRegionInfo, MetaEntry>(metaEntries);
+ TreeMap<HRegionInfo, MetaEntry> tmp =
+ new TreeMap<HRegionInfo, MetaEntry>(metaEntries);
long errorCount = 0; // number of inconsistencies detected
int showProgress = 0;
// loop to contact each region server
- for (HServerInfo rsinfo:regionServerList) {
+ for (HServerInfo rsinfo: regionServerList) {
showProgress++; // one more server.
try {
HRegionInterface server = connection.getHRegionConnection(
@@ -276,7 +279,7 @@ public class HBaseFsck extends HBaseAdmi
}
// check to see if the existance of this region matches the region in META
- for (HRegionInfo r:regions) {
+ for (HRegionInfo r: regions) {
MetaEntry metaEntry = metaEntries.get(r);
// this entry exists in the region server but is not in the META
@@ -317,7 +320,12 @@ public class HBaseFsck extends HBaseAdmi
// all the region left in tmp are not found on any region server
for (MetaEntry metaEntry: tmp.values()) {
- System.out.print("\nERROR: Region " + metaEntry.getRegionNameAsString() +
+ // An offlined region will not be present out on a regionserver. A region
+ // is offlined if table is offlined -- will still have an entry in .META.
+ // of a region is offlined because its a parent region and its daughters
+ // still have references.
+ if (metaEntry.isOffline()) continue;
+ System.out.print("\nERROR: Region " + metaEntry.getRegionNameAsString() +
" is not served by any region server " +
" but is listed in META to be on server " +
metaEntry.regionServer);
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java Fri Aug 27 05:01:02 2010
@@ -51,6 +51,7 @@ import org.apache.hadoop.hbase.HTableDes
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterAddressTracker;
import org.apache.hadoop.hbase.MasterNotRunningException;
+import org.apache.hadoop.hbase.NotServingRegionException;
import org.apache.hadoop.hbase.RemoteExceptionHandler;
import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
@@ -1413,8 +1414,21 @@ public class HConnectionManager {
LOG.debug("Failed all from " + request.address, e);
failed.addAll(request.allPuts());
} catch (ExecutionException e) {
- // all go into the failed list.
- LOG.debug("Failed all from " + request.address, e);
+ Throwable cause = e.getCause();
+ // Don't print stack trace if NSRE; NSRE is 'normal' operation.
+ if (cause instanceof NotServingRegionException) {
+ String msg = cause.getMessage();
+ if (msg != null && msg.length() > 0) {
+ // msg is the exception as a String... we just want first line.
+ msg = msg.split("[\\n\\r]+\\s*at")[0];
+ }
+ LOG.debug("Failed execution of all on " + request.address +
+ " because: " + msg);
+ } else {
+ // all go into the failed list.
+ LOG.debug("Failed execution of all on " + request.address,
+ e.getCause());
+ }
failed.addAll(request.allPuts());
// Just give up, leaving the batch put list in an untouched/semi-committed state
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java Fri Aug 27 05:01:02 2010
@@ -58,11 +58,13 @@ import java.io.DataOutput;
/**
* Used to communicate with a single HBase table.
- * <p>
+ *
* This class is not thread safe for writes.
* Gets, puts, and deletes take out a row lock for the duration
* of their operation. Scans (currently) do not respect
* row locking.
+ *
+ * See {@link HBaseAdmin} to create, drop, list, enable and disable tables.
*/
public class HTable implements HTableInterface {
private final HConnection connection;
@@ -168,7 +170,7 @@ public class HTable implements HTableInt
* @return the number of region servers that are currently running
* @throws IOException if a remote or network exception occurs
*/
- private int getCurrentNrHRS() throws IOException {
+ int getCurrentNrHRS() throws IOException {
HBaseAdmin admin = new HBaseAdmin(this.configuration);
return admin.getClusterStatus().getServers();
}
@@ -553,7 +555,6 @@ public class HTable implements HTableInt
return incrementColumnValue(row, family, qualifier, amount, true);
}
- @SuppressWarnings({"ThrowableInstanceNeverThrown"})
public long incrementColumnValue(final byte [] row, final byte [] family,
final byte [] qualifier, final long amount, final boolean writeToWAL)
throws IOException {
Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java Fri Aug 27 05:01:02 2010
@@ -42,8 +42,12 @@ public class BinaryPrefixComparator exte
@Override
public int compareTo(byte [] value) {
- return Bytes.compareTo(this.value, 0, this.value.length, value, 0,
- this.value.length);
+ if (this.value.length <= value.length) {
+ return Bytes.compareTo(this.value, 0, this.value.length, value, 0,
+ this.value.length);
+ } else {
+ return Bytes.compareTo(this.value, value);
+ }
}
}