Something I thought about is that you might have a Ruby lib installed somewhere else that the shell is using. Someone faced something similar recently
Take a look at this thread: http://mail-archives.apache.org/mod_mbox/hbase-user/201304.mbox/%3CEE737D80-45B4-4A33-817D-28ED9C1CB0AE%40gmail.com%3E Can you see if you have something like that in your system? JM 2013/4/25 Robin Gowin <[email protected]>: > Hi JM, > > Thank you for following up! > > No, the issue still exists. I have temporarily abandoned jruby for this > project, and am using curl and REST for the time being. > > Since it's working properly for you and others, I suspect that it's either > a version mismatch or an installation > problem or some configuration issue. If you have time, I'm willing to > continue debugging. > > Robin > > > On Thu, Apr 25, 2013 at 9:24 AM, Jean-Marc Spaggiari < > [email protected]> wrote: > >> Hi Robin, >> >> Were you finally able to find the issue? >> >> JM >> >> 2013/4/18 Robin Gowin <[email protected]>: >> > same results with @null (i had earlier tried nil, same thing) >> > >> > hbase(main):045:0> uu = @hbase.table('robin1', @null) >> > => Hbase::Table - robin1 >> > hbase(main):046:0> uu.scan(ss) >> > NoMethodError: undefined method `internal_command' for nil:NilClass >> > >> > One thing I'm curious about - might not matter - the output of my >> > @hbase.table command looks like this >> > >> > => Hbase::Table - robin1 >> > >> > but the output of yours (and what is in the book) looks like this >> > >> > => #<Hbase::Table:0x3a8cbb70 >> > >> > >> > >> > >> > On Thu, Apr 18, 2013 at 12:17 PM, Jean-Marc Spaggiari < >> > [email protected]> wrote: >> > >> >> Interesting... >> >> >> >> I tried the same locally and it's working fine for me. >> >> >> >> hbase(main):010:0> uu = @hbase.table('TestAcidGuarantees', @formatter) >> >> => #<Hbase::Table:0x3a8cbb70 >> >> @table=#<Java::OrgApacheHadoopHbaseClient::HTable:0x6d65d417>> >> >> hbase(main):011:0> ss = {COLUMNS => ['A']} >> >> => {"COLUMNS"=>["A"]} >> >> hbase(main):012:0> uu.scan(ss) >> >> => {"test_row_0"=>{"A:col0"=>"timestamp=1366299718358, >> >> value=\\x14\\xC2\\xF0\\x0...." >> >> >> >> I did a cut&paste from what you sent and only changed the table name. >> >> >> >> Can you try with @null instead of @formatter? >> >> >> >> JM >> >> >> >> 2013/4/18 Robin Gowin <[email protected]> >> >> >> >> > Hi Jean-Marc, >> >> > >> >> > Thanks for your quick reply. Yes I am trying to do something like >> that. >> >> For >> >> > brevity I combined everything into one jruby command. >> >> > >> >> > My command can be split into two and I get the same error. For >> example, >> >> > this shows a similar problem using the scan method: >> >> > >> >> > hbase(main):041:0> uu = @hbase.table('robin1', @formatter) >> >> > => Hbase::Table - robin1 >> >> > hbase(main):042:0> ss = {COLUMNS => ['cf1']} >> >> > => {"COLUMNS"=>["cf1"]} >> >> > hbase(main):043:0> uu.scan(ss) >> >> > NoMethodError: undefined method `internal_command' for >> >> > #<Shell::Formatter::Console:0x15f6ae4d> >> >> > >> >> > hbase(main):044:0> scan 'robin1', ss >> >> > ROW COLUMN+CELL >> >> > >> >> > >> >> > myrow1 column=cf1:q1, >> >> > timestamp=1366046037514, value=value2 >> >> > >> >> > myrow1 column=cf1:q2, >> >> > timestamp=1366046489446, value=value2b >> >> > >> >> > myrow1 column=cf1:q2b, >> >> > timestamp=1366046497799, value=value2bb >> >> > >> >> > myrow2 column=cf1:q2b, >> >> > timestamp=1366046731281, value=value2bbce >> >> > >> >> > myrow2 column=cf1:q2be, >> >> > timestamp=1366046748001, value=value2bbce >> >> > >> >> > 2 row(s) in 0.0460 seconds >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > On Thu, Apr 18, 2013 at 11:54 AM, Jean-Marc Spaggiari < >> >> > [email protected]> wrote: >> >> > >> >> > > Hi Robin, >> >> > > >> >> > > I'm not sure about your command line >> >> > > (@hbase.table('robin1',@formatter).scan({'COLUMNS' => ['cf1']})) >> >> > > >> >> > > Are you trying do to something like that? scan 'robin1', {COLUMNS >> >> > > => ['cf1']} >> >> > > >> >> > > JM >> >> > > >> >> > > 2013/4/18 Robin Gowin <[email protected]> >> >> > > >> >> > > > This feels like a stupid mistake I'm making somewhere but I >> searched >> >> > for >> >> > > > quite a while and did not find any evidence that anybody else >> >> reported >> >> > > this >> >> > > > problem. >> >> > > > >> >> > > > I'm trying to use hbase shell to call the 'scan()' method and I >> keep >> >> > > > getting the same error message. A regular scan of the table works >> >> fine. >> >> > > > >> >> > > > I'd appreciate any assistance. >> >> > > > >> >> > > > hbase(main):005:0> scan 'robin1' >> >> > > > ROW COLUMN+CELL >> >> > > > >> >> > > > >> >> > > > myrow1 column=cf1:q1, >> >> > > > timestamp=1366046037514, value=value2 >> >> > > > >> >> > > > myrow1 column=cf1:q2, >> >> > > > timestamp=1366046489446, value=value2b >> >> > > > >> >> > > > myrow1 column=cf1:q2b, >> >> > > > timestamp=1366046497799, value=value2bb >> >> > > > >> >> > > > myrow2 column=cf1:q2b, >> >> > > > timestamp=1366046731281, value=value2bbce >> >> > > > >> >> > > > myrow2 column=cf1:q2be, >> >> > > > timestamp=1366046748001, value=value2bbce >> >> > > > >> >> > > > 2 row(s) in 0.1290 seconds >> >> > > > >> >> > > > hbase(main):007:0> @hbase.table('robin1', >> @formatter).scan({'COLUMNS' >> >> > => >> >> > > > ['cf1']}) >> >> > > > NoMethodError: undefined method `internal_command' for >> >> > > > #<Shell::Formatter::Console:0x15f6ae4d> >> >> > > > >> >> > > > this method appears to exist >> >> > > > >> >> > > > [cloudera@localhost test]$ grep internal_command >> >> > > > /usr/lib/hbase/lib/ruby/shell.rb >> >> > > > internal_command(command, :command, *args) >> >> > > > def internal_command(command, method_name= :command, *args) >> >> > > > >> >> > > > >> >> > > > info about my environment: >> >> > > > >> >> > > > [cloudera@localhost test]$ hbase version >> >> > > > 13/04/18 11:17:33 INFO util.VersionInfo: HBase 0.94.2-cdh4.2.0 >> >> > > > 13/04/18 11:17:33 INFO util.VersionInfo: Subversion >> >> > > > >> >> > > > >> >> > > >> >> > >> >> >> file:///data/1/jenkins/workspace/generic-package-rhel64-6-0/topdir/BUILD/hbase-0.94.2-cdh4.2.0 >> >> > > > -r Unknown >> >> > > > 13/04/18 11:17:33 INFO util.VersionInfo: Compiled by jenkins on >> Fri >> >> Feb >> >> > > 15 >> >> > > > 11:51:18 PST 2013 >> >> > > > [cloudera@localhost test]$ java -version >> >> > > > java version "1.6.0_31" >> >> > > > Java(TM) SE Runtime Environment (build 1.6.0_31-b04) >> >> > > > Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode) >> >> > > > [cloudera@localhost test]$ hadoop version >> >> > > > Hadoop 2.0.0-cdh4.2.0 >> >> > > > Subversion >> >> > > > >> >> > > > >> >> > > >> >> > >> >> >> file:///data/1/jenkins/workspace/generic-package-rhel64-6-0/topdir/BUILD/hadoop-2.0.0-cdh4.2.0/src/hadoop-common-project/hadoop-common >> >> > > > -r 8bce4bd28a464e0a92950c50ba01a9deb1d85686 >> >> > > > Compiled by jenkins on Fri Feb 15 11:13:32 PST 2013 >> >> > > > From source with checksum 3eefc211a14ac7b6e764d6ded2eeeb26 >> >> > > > [cloudera@localhost test]$ uname -a >> >> > > > Linux localhost.localdomain 2.6.32-220.23.1.el6.x86_64 #1 SMP Mon >> Jun >> >> > 18 >> >> > > > 18:58:52 BST 2012 x86_64 x86_64 x86_64 GNU/Linux >> >> > > > >> >> > > > Robin Gowin >> >> > > > >> >> > > > PS: I found this email list from the book "HBase In Action" >> >> > > > >> >> > > >> >> > >> >> >>
