From 6f0138d6950e423f21a36172f919b00dec555c0a Mon Sep 17 00:00:00 2001 From: stack Date: Tue, 18 Nov 2014 18:14:52 -0800 Subject: [PATCH] Revert "HBASE-12495 Use interfaces in the shell scripts (Solomon Duskis)" This reverts commit 929bb34181a2218a88773d7c493fc22f005d8a98. --- hbase-shell/src/main/ruby/hbase.rb | 4 +-- hbase-shell/src/main/ruby/hbase/admin.rb | 27 +++++++++---------- hbase-shell/src/main/ruby/hbase/quotas.rb | 3 +-- hbase-shell/src/main/ruby/hbase/security.rb | 7 +++-- hbase-shell/src/main/ruby/hbase/table.rb | 9 +++---- .../src/main/ruby/hbase/visibility_labels.rb | 3 +-- 6 files changed, 24 insertions(+), 29 deletions(-) diff --git a/hbase-shell/src/main/ruby/hbase.rb b/hbase-shell/src/main/ruby/hbase.rb index 5928e7be8fb..c48a1c807e3 100644 --- a/hbase-shell/src/main/ruby/hbase.rb +++ b/hbase-shell/src/main/ruby/hbase.rb @@ -18,8 +18,8 @@ # # HBase ruby classes. -# Has wrapper classes for org.apache.hadoop.hbase.client.Admin -# and for org.apache.hadoop.hbase.client.Table. Classes take +# Has wrapper classes for org.apache.hadoop.hbase.client.HBaseAdmin +# and for org.apache.hadoop.hbase.client.HTable. Classes take # Formatters on construction and outputs any results using # Formatter methods. These classes are only really for use by # the hirb.rb HBase Shell script; they don't make much sense elsewhere. diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 78c60f59f4f..1fe496df33d 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -24,22 +24,19 @@ java_import org.apache.hadoop.hbase.util.RegionSplitter java_import org.apache.hadoop.hbase.util.Bytes java_import org.apache.hadoop.hbase.ServerName java_import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos::SnapshotDescription -java_import org.apache.hadoop.hbase.client.Admin -java_import org.apache.hadoop.hbase.client.Connection -java_import org.apache.hadoop.hbase.client.ConnectionFactory -java_import org.apache.hadoop.hbase.client.Table -# Wrapper for org.apache.hadoop.hbase.client.Admin +# Wrapper for org.apache.hadoop.hbase.client.HBaseAdmin module Hbase class Admin include HBaseConstants def initialize(configuration, formatter) - @connection = ConnectionFactory.createConnection(configuration) - @admin = @connection.getAdmin(); + @admin = org.apache.hadoop.hbase.client.HBaseAdmin.new(configuration) + connection = @admin.getConnection() @conf = configuration - @zk_wrapper = org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.new(configuration, "admin", nil) + @zk_wrapper = org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.new(configuration, + "admin", nil) zk = @zk_wrapper.getRecoverableZooKeeper().getZooKeeper() @zk_main = org.apache.zookeeper.ZooKeeperMain.new(zk) @formatter = formatter @@ -186,7 +183,7 @@ module Hbase tableExists(table_name) raise ArgumentError, "Table #{table_name} is enabled. Disable it first.'" if enabled?(table_name) - @admin.deleteTable(org.apache.hadoop.hbase.TableName.valueOf(table_name)) + @admin.deleteTable(table_name) end #---------------------------------------------------------------------------------------------- @@ -356,7 +353,8 @@ module Hbase #---------------------------------------------------------------------------------------------- # Truncates table (deletes all records by recreating the table) def truncate(table_name, conf = @conf) - table_description = @admin.getTableDescriptor(table_name.to_java_bytes) + h_table = org.apache.hadoop.hbase.client.HTable.new(conf, table_name) + table_description = h_table.getTableDescriptor() raise ArgumentError, "Table #{table_name} is not enabled. Enable it first.'" unless enabled?(table_name) yield 'Disabling table...' if block_given? @admin.disableTable(table_name) @@ -371,7 +369,7 @@ module Hbase if rootCause.kind_of?(org.apache.hadoop.hbase.DoNotRetryIOException) then # Handle the compatibility case, where the truncate method doesn't exists on the Master yield 'Dropping table...' if block_given? - @admin.deleteTable(org.apache.hadoop.hbase.TableName.valueOf(table_name)) + @admin.deleteTable(table_name) yield 'Creating table...' if block_given? @admin.createTable(table_description) @@ -384,7 +382,7 @@ module Hbase #---------------------------------------------------------------------------------------------- # Truncates table while maintaing region boundaries (deletes all records by recreating the table) def truncate_preserve(table_name, conf = @conf) - h_table = @connection.getTable(table_name) + h_table = org.apache.hadoop.hbase.client.HTable.new(conf, table_name) splits = h_table.getRegionLocations().keys().map{|i| Bytes.toString(i.getStartKey)}.delete_if{|k| k == ""}.to_java :String splits = org.apache.hadoop.hbase.util.Bytes.toByteArrays(splits) table_description = h_table.getTableDescriptor() @@ -401,7 +399,7 @@ module Hbase if rootCause.kind_of?(org.apache.hadoop.hbase.DoNotRetryIOException) then # Handle the compatibility case, where the truncate method doesn't exists on the Master yield 'Dropping table...' if block_given? - @admin.deleteTable(org.apache.hadoop.hbase.TableName.valueOf(table_name)) + @admin.deleteTable(table_name) yield 'Creating table with region boundaries...' if block_given? @admin.createTable(table_description, splits) @@ -716,7 +714,8 @@ module Hbase # Enables/disables a region by name def online(region_name, on_off) # Open meta table - meta = connection.getTable(org.apache.hadoop.hbase.TableName::META_TABLE_NAME) + meta = org.apache.hadoop.hbase.client.HTable.new( + org.apache.hadoop.hbase.TableName::META_TABLE_NAME) # Read region info # FIXME: fail gracefully if can't find the region diff --git a/hbase-shell/src/main/ruby/hbase/quotas.rb b/hbase-shell/src/main/ruby/hbase/quotas.rb index 3427b44601c..3bcba26e18b 100644 --- a/hbase-shell/src/main/ruby/hbase/quotas.rb +++ b/hbase-shell/src/main/ruby/hbase/quotas.rb @@ -36,8 +36,7 @@ module Hbase class QuotasAdmin def initialize(configuration, formatter) @config = configuration - @connection = org.apache.hadoop.hbase.client.ConnectionFactor.createConnection(Configuration) - @admin = connection.getAdmin() + @admin = org.apache.hadoop.hbase.client.HBaseAdmin.new(configuration) @formatter = formatter end diff --git a/hbase-shell/src/main/ruby/hbase/security.rb b/hbase-shell/src/main/ruby/hbase/security.rb index 1bd025cfd93..154c5cad8a5 100644 --- a/hbase-shell/src/main/ruby/hbase/security.rb +++ b/hbase-shell/src/main/ruby/hbase/security.rb @@ -26,8 +26,7 @@ module Hbase def initialize(configuration, formatter) @config = configuration - @connection = org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(@config) - @admin = @connection.getAdmin() + @admin = org.apache.hadoop.hbase.client.HBaseAdmin.new(configuration) @formatter = formatter end @@ -38,7 +37,7 @@ module Hbase # TODO: need to validate user name begin - meta_table = @connection.getTable( + meta_table = org.apache.hadoop.hbase.client.HTable.new(@config, org.apache.hadoop.hbase.security.access.AccessControlLists::ACL_TABLE_NAME) service = meta_table.coprocessorService( org.apache.hadoop.hbase.HConstants::EMPTY_START_ROW) @@ -102,7 +101,7 @@ module Hbase # TODO: need to validate user name begin - meta_table = @connection.getTable( + meta_table = org.apache.hadoop.hbase.client.HTable.new(@config, org.apache.hadoop.hbase.security.access.AccessControlLists::ACL_TABLE_NAME) service = meta_table.coprocessorService( org.apache.hadoop.hbase.HConstants::EMPTY_START_ROW) diff --git a/hbase-shell/src/main/ruby/hbase/table.rb b/hbase-shell/src/main/ruby/hbase/table.rb index dbde1602c32..f02ba8144fb 100644 --- a/hbase-shell/src/main/ruby/hbase/table.rb +++ b/hbase-shell/src/main/ruby/hbase/table.rb @@ -19,7 +19,7 @@ include Java -# Wrapper for org.apache.hadoop.hbase.client.Table +# Wrapper for org.apache.hadoop.hbase.client.HTable module Hbase class Table @@ -113,12 +113,11 @@ EOF def initialize(configuration, table_name, shell) if @@thread_pool then - @connection = org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration, @@thread_pool) + @table = org.apache.hadoop.hbase.client.HTable.new(configuration, table_name.to_java_bytes, @@thread_pool) else - @connection = org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration) - @@thread_pool = @connection.getBatchPool() + @table = org.apache.hadoop.hbase.client.HTable.new(configuration, table_name) + @@thread_pool = @table.getPool() end - @table = @connection.getTable(table_name) @name = table_name @shell = shell @converters = Hash.new() diff --git a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb index 0528f269686..73e1d9eb6f6 100644 --- a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb +++ b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb @@ -27,8 +27,7 @@ module Hbase def initialize(configuration, formatter) @config = configuration @formatter = formatter - @connection = org.apache.hadoop.hbase.client.ConnectionFactory(configuration) - @admin = @connection.getAdmin() + @admin = org.apache.hadoop.hbase.client.HBaseAdmin.new(configuration) end def add_labels(*args)