Get output from scans in hbase shell

Go To StackoverFlow.com

25

Is there any way I can output the results from a scan in the hbase shell to a file? I'm assuming this is easy but I haven't been able to find anything in the documentation.

2012-04-05 20:24
by Dave Novelli


45

I know that this post is quite old but i was searching something about HBase myself and came across with it.

Well i don't know if this is the best way to do it, but you can definitely use the scripting option HBase gives you. Just open a shell (preferably go to the directory bin of HBase) and run

echo "scan 'foo'" | ./hbase shell > myText

where foo is the name of the table you want to scan. If you then open myText you will see the results in there. Hope i helped!

2012-09-22 16:36
by Alex Karnezis
Worked like a charm : - La-comadreja 2014-05-08 16:33
The problem with this solution is that hbase is fairly chatty, so you don't just get the command output, you also get a bunch of hbase conversation. If you want to get data and parse it, it's pretty icky - Ken Williams 2014-08-25 15:12
@KenWilliams Also it is little slow. Is there any way faster way you know. Actually I have to execute a command in loop for 24 times and it is taking a lot of time and I don't want to write a java code to do that - sahu 2015-05-04 07:09
@sahu not that I know of - the best option might be to write the results to HDFS first, then export from HDFS to the local filesystem - Ken Williams 2015-05-04 15:55
It works! Need to run in directly in shell. Not in HBase shell promp - Sakthivel 2017-05-01 23:32


8

Another option using an EOF here doc, potentially more customizable:

hbase shell <<EOF >myText
scan 'foo'
EOF
2014-03-15 21:24
by rupert160


3

You can also use here strings too (if your shell supports them):

$ hbase shell <<< "scan 'sometable'" > myoutput.txt

Above I'm doing this in Bash on a Linux system, for example.

2015-09-24 02:48
by slm
Ads