Hi, I did some digging around in the HBase source and found that HLogEdit last existed in version 0.18 (we're on 0.20.6) and HConstants.COL_REGIONINFO_ARRAY last existed in version 0.2.
After this digging around and making some educated guesses I made a new version of the script which I've attached to this message. I've tried running this script on a small 525M (on disc) table in a test instance of HBase and it's been running for over 12 mins, and is repeatedly outputting messages like the following: 11/06/10 11:27:05 DEBUG hfile.LruBlockCache: Cache Stats: Sizes: Total=1.6478577MB (1727904), Free=197.52715MB (207122224), Max=199.175MB (208850128), Counts: Blocks=3, Access=3, Hit=0, Miss=3, Evictions=0, Evicted=0, Ratios: Hit Ratio=0.0%, Miss Ratio=100.0%, Evicted/Run=NaN 11/06/10 11:28:05 DEBUG hfile.LruBlockCache: Cache Stats: Sizes: Total=1.6478577MB (1727904), Free=197.52715MB (207122224), Max=199.175MB (208850128), Counts: Blocks=3, Access=3, Hit=0, Miss=3, Evictions=0, Evicted=0, Ratios: Hit Ratio=0.0%, Miss Ratio=100.0%, Evicted/Run=NaN The du command tells me that the copied table's directory so far takes up just 4k on disk. Is my hacked script actually doing anything useful? James On Fri, Jun 10, 2011 at 11:19 AM, James Hammerton < [email protected]> wrote: > [Re-sending as I'm not sure this got through] > > Hi, > > Before trying to merge regions on a table in our live database we decided > to copy the table and merge the regions on the copy first to test the > merging code works before risking our live data. > > However when we try to run the copy_table.rb script it fails due to the > following error (this is actually from a test HBase instance but the error > from the live instance is the same, modulo different paths): > > file:/home/james/hbase-0.20.6/lib/jruby-complete-1.2.0.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:33:in > `get_proxy_or_package_under_package': cannot load Java class > org.apache.hadoop.hbase.regionserver.HLogEdit (NameError) > from > file:/home/james/hbase-0.20.6/lib/jruby-complete-1.2.0.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/builtin/javasupport/java.rb:51:in > `method_missing' > from /home/james/hbase/bin/copy_table.rb:40 > > Looking through the copy_table.rb file I could so no reference to HLogEdit > other than the import, so I tried removing it. Now running the script > produces the error below: > > file:/home/james/hbase-0.20.6/lib/jruby-complete-1.2.0.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/builtin/java/ast.rb:80:in > `const_missing': uninitialized constant > Java::OrgApacheHadoopHbase::HConstants::COL_REGIONINFO_ARRAY (NameError) > from /home/james/hbase/bin/copy_table.rb:124 > from > file:/home/james/hbase-0.20.6/lib/jruby-complete-1.2.0.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/builtin/java/collections.rb:47:in > `call' > from > file:/home/james/hbase-0.20.6/lib/jruby-complete-1.2.0.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/builtin/java/collections.rb:47:in > `each' > from /home/james/hbase/bin/copy_table.rb:118 > > I looked at the latest version of the copy_table.rb script and it also > references both HLogEdit and HConstants::COL_REGIONINFO_ > ARRAY... > > Any ideas how to fix this? > > Regards, > > James > > > -- > James Hammerton | Senior Data Mining Engineer > www.mendeley.com/profiles/james-hammerton > > Mendeley Limited | London, UK | www.mendeley.com > Registered in England and Wales | Company Number 6419015 > > > > -- James Hammerton | Senior Data Mining Engineer www.mendeley.com/profiles/james-hammerton Mendeley Limited | London, UK | www.mendeley.com Registered in England and Wales | Company Number 6419015
copy_table.rb
Description: application/ruby
