From 9a96318eb27fb6597e932950d72f0de4d74c8b02 Mon Sep 17 00:00:00 2001 From: wanghuan Date: Wed, 9 Jan 2019 13:41:13 +0800 Subject: [PATCH 1/2] [PATCH] HBASE-21699 Fixed create table failed when using SPLITS_FILE => 'splits.txt' --- .../java/org/apache/hadoop/hbase/HTableDescriptor.java | 2 +- .../org/apache/hadoop/hbase/TestHTableDescriptor.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java index 960b91fa15..4f3c24e7c7 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java @@ -187,7 +187,7 @@ public class HTableDescriptor implements TableDescriptor, Comparable Date: Mon, 14 Jan 2019 12:29:09 +0800 Subject: [PATCH 2/2] [PATCH] HBASE-21699 Fixed create table failed when using SPLITS_FILE => 'splits.txt' --- hbase-shell/src/main/ruby/hbase/admin.rb | 1 - hbase-shell/src/test/ruby/hbase/table_test.rb | 38 ++++++++++++++----- hbase-shell/src/test/ruby/test_helper.rb | 16 +++++--- 3 files changed, 39 insertions(+), 16 deletions(-) diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index f77bdf1719..d1c7b4a0b8 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -407,7 +407,6 @@ module Hbase File.foreach(splits_file) do |line| arg[SPLITS].push(line.chomp) end - htd.setValue(SPLITS_FILE, arg[SPLITS_FILE]) end if arg.key?(SPLITS) diff --git a/hbase-shell/src/test/ruby/hbase/table_test.rb b/hbase-shell/src/test/ruby/hbase/table_test.rb index b3343e2279..aec3147613 100644 --- a/hbase-shell/src/test/ruby/hbase/table_test.rb +++ b/hbase-shell/src/test/ruby/hbase/table_test.rb @@ -752,19 +752,39 @@ module Hbase end end - define_test "Split count for a table" do - @testTableName = "tableWithSplits" - create_test_table_with_splits(@testTableName, SPLITS => ['10', '20', '30', '40']) - @table = table(@testTableName) + define_test 'Split count for a table' do + @test_table_name = 'table_with_splits' + create_test_table_with_splits(@test_table_name, SPLITS => %w[10 20 30 40]) + @table = table(@test_table_name) splits = @table._get_splits_internal() - #Total splits is 5 but here count is 4 as we ignore implicit empty split. + # Total splits is 5 but here count is 4 as we ignore implicit empty split. assert_equal(4, splits.size) - assert_equal(["10", "20", "30", "40"], splits) - drop_test_table(@testTableName) + assert_equal(%w[10 20 30 40], splits) + drop_test_table(@test_table_name) + end + + define_test 'Split count for a table by file' do + @test_table_name = 'table_with_splits_file' + if File.exist?('src/test/resources/splits.txt') + File.delete('src/test/resources/splits.txt') + end + file = File.new('src/test/resources/splits.txt', 'w') + %w[10 20 30 40].each { |item| file.puts item } + file.close + create_test_table_with_splits_file(@test_table_name, + SPLITS_FILE => + 'src/test/resources/splits.txt') + @table = table(@test_table_name) + splits = @table._get_splits_internal + # Total splits is 5 but here count is 4 as we ignore implicit empty split. + assert_equal(4, splits.size) + assert_equal(%w[10 20 30 40], splits) + drop_test_table(@test_table_name) + File.delete('src/test/resources/splits.txt') end - define_test "Split count for a empty table" do - splits = @test_table._get_splits_internal() + define_test 'Split count for a empty table' do + splits = @test_table._get_splits_internal #Empty split should not be part of this array. assert_equal(0, splits.size) assert_equal([], splits) diff --git a/hbase-shell/src/test/ruby/test_helper.rb b/hbase-shell/src/test/ruby/test_helper.rb index f72a1c6a84..78fba7a206 100644 --- a/hbase-shell/src/test/ruby/test_helper.rb +++ b/hbase-shell/src/test/ruby/test_helper.rb @@ -102,14 +102,18 @@ module Hbase def create_test_table_with_splits(name, splits) # Create the table if needed - unless admin.exists?(name) - command(:create, name, 'f1', splits) - end + command(:create, name, 'f1', splits) unless admin.exists?(name) # Enable the table if needed - unless admin.enabled?(name) - admin.enable(name) - end + admin.enable(name) unless admin.enabled?(name) + end + + def create_test_table_with_splits_file(name, splits_file) + # Create the table if needed + command(:create, name, 'f1', splits_file) unless admin.exists?(name) + + # Enable the table if needed + admin.enable(name) unless admin.enabled?(name) end def create_test_table_with_region_replicas(name, num_of_replicas, splits) -- 2.19.1