You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by N Dm <ni...@gmail.com> on 2013/06/02 19:30:04 UTC
how to use HBase Shell formatter?
hi, folks,
Can someone point me to a sample about how to use 'formatter.rb' inside
hbase ruby code? The version I am using is 94.3
I am trying to implement a 'list_replicated_table' command on hbase shell,
and leveraging 'formatter" to lay out the output. The code segement is
like:
formatter.header(["TABLE","COLUMNFAMILY", "TARGET_CLUSTER"])
......
list.each do |e|
formatter.row([e[0],e[1],e[2]])
end
.....
formatter.footer(now)
where e[0],e[1], and e[2] are entries from a String array. I was hoping to
have a nice output with column aligned. However, I got the output with a
blank as delimiter.
hbase(main):002:0> list_replicated_tables
TABLE COLUMNFAMILY TARGET_CLUSTER
scores course hdtest017.svl.ibm.com:2181:/hbase
t3_dn cf1 hdtest017.svl.ibm.com:2181:/hbase
usertable family hdtest017.svl.ibm.com:2181:/hbase
I am looking for something like:
TABLE COLUMNFAMILY TARGET_CLUSTER
scores course hdtest017.svl.ibm.com:2181:/hbase
I was following the way 'list_peers' did, seems don't work over there
either.
I also changed the formatter input as:
formatter.header(["TABLE","COLUMNFAMILY", "TARGET_CLUSTER"],[18,18,48])
formatter.row([e[0],e[1],e[2]],true,[18,18,48])
which doesn't change the output either.
The 'scan.rb' works fine, however, I can't tell what's the differnce.
Any suggestion is really appreciated. Thanks!
Demai
Re: how to use HBase Shell formatter?
Posted by Demai Ni <ni...@gmail.com>.
Ted,
Thanks for pointing me the direction. I will looking into the enhancement
Demai on the run
On Jun 2, 2013, at 1:43 PM, Ted Yu <yu...@gmail.com> wrote:
> Looking at the following from formatter.rb:
> col1width = (not widths or widths.length == 0) ? @max_width / 4
> : @max_width * widths[0] / 100
> col2width = (not widths or widths.length < 2) ? @max_width -
> col1width - 2 : @max_width * widths[1] / 100 - 2
>
> It seems the widths argument only expects two fields which should be
> percentage of widths for columns 1 and 2, respectively.
>
> If you want 3 columns to be displayed, you should enhance formatter.rb
>
> Cheers
>
> On Sun, Jun 2, 2013 at 10:30 AM, N Dm <ni...@gmail.com> wrote:
>
>> hi, folks,
>>
>> Can someone point me to a sample about how to use 'formatter.rb' inside
>> hbase ruby code? The version I am using is 94.3
>>
>> I am trying to implement a 'list_replicated_table' command on hbase shell,
>> and leveraging 'formatter" to lay out the output. The code segement is
>> like:
>>
>> formatter.header(["TABLE","COLUMNFAMILY", "TARGET_CLUSTER"])
>> ......
>> list.each do |e|
>> formatter.row([e[0],e[1],e[2]])
>> end
>> .....
>> formatter.footer(now)
>>
>> where e[0],e[1], and e[2] are entries from a String array. I was hoping to
>> have a nice output with column aligned. However, I got the output with a
>> blank as delimiter.
>> hbase(main):002:0> list_replicated_tables
>> TABLE COLUMNFAMILY TARGET_CLUSTER
>> scores course hdtest017.svl.ibm.com:2181:/hbase
>> t3_dn cf1 hdtest017.svl.ibm.com:2181:/hbase
>> usertable family hdtest017.svl.ibm.com:2181:/hbase
>>
>> I am looking for something like:
>> TABLE COLUMNFAMILY TARGET_CLUSTER
>> scores course hdtest017.svl.ibm.com:2181:/hbase
>>
>> I was following the way 'list_peers' did, seems don't work over there
>> either.
>>
>> I also changed the formatter input as:
>> formatter.header(["TABLE","COLUMNFAMILY", "TARGET_CLUSTER"],[18,18,48])
>> formatter.row([e[0],e[1],e[2]],true,[18,18,48])
>> which doesn't change the output either.
>>
>>
>> The 'scan.rb' works fine, however, I can't tell what's the differnce.
>>
>> Any suggestion is really appreciated. Thanks!
>>
>> Demai
>>
Re: how to use HBase Shell formatter?
Posted by Ted Yu <yu...@gmail.com>.
Looking at the following from formatter.rb:
col1width = (not widths or widths.length == 0) ? @max_width / 4
: @max_width * widths[0] / 100
col2width = (not widths or widths.length < 2) ? @max_width -
col1width - 2 : @max_width * widths[1] / 100 - 2
It seems the widths argument only expects two fields which should be
percentage of widths for columns 1 and 2, respectively.
If you want 3 columns to be displayed, you should enhance formatter.rb
Cheers
On Sun, Jun 2, 2013 at 10:30 AM, N Dm <ni...@gmail.com> wrote:
> hi, folks,
>
> Can someone point me to a sample about how to use 'formatter.rb' inside
> hbase ruby code? The version I am using is 94.3
>
> I am trying to implement a 'list_replicated_table' command on hbase shell,
> and leveraging 'formatter" to lay out the output. The code segement is
> like:
>
> formatter.header(["TABLE","COLUMNFAMILY", "TARGET_CLUSTER"])
> ......
> list.each do |e|
> formatter.row([e[0],e[1],e[2]])
> end
> .....
> formatter.footer(now)
>
> where e[0],e[1], and e[2] are entries from a String array. I was hoping to
> have a nice output with column aligned. However, I got the output with a
> blank as delimiter.
> hbase(main):002:0> list_replicated_tables
> TABLE COLUMNFAMILY TARGET_CLUSTER
> scores course hdtest017.svl.ibm.com:2181:/hbase
> t3_dn cf1 hdtest017.svl.ibm.com:2181:/hbase
> usertable family hdtest017.svl.ibm.com:2181:/hbase
>
> I am looking for something like:
> TABLE COLUMNFAMILY TARGET_CLUSTER
> scores course hdtest017.svl.ibm.com:2181:/hbase
>
> I was following the way 'list_peers' did, seems don't work over there
> either.
>
> I also changed the formatter input as:
> formatter.header(["TABLE","COLUMNFAMILY", "TARGET_CLUSTER"],[18,18,48])
> formatter.row([e[0],e[1],e[2]],true,[18,18,48])
> which doesn't change the output either.
>
>
> The 'scan.rb' works fine, however, I can't tell what's the differnce.
>
> Any suggestion is really appreciated. Thanks!
>
> Demai
>