forked from hammer/pyhbase
/
pyhbase-cli
executable file
·149 lines (137 loc) · 3.47 KB
/
pyhbase-cli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#! /usr/bin/env python
import sys
import pprint
from pyhbase.connection import HBaseConnection
# TODO(hammer): Use optparse or python-gflags here
if __name__=="__main__":
def usage():
print """
Usage: %s [-h host[:port]] command [arg1 [arg2...]]
Commands:
get_hbase_version
get_cluster_status
list_tables
describe_table table
is_table_enabled table
table_exists table
describe_family table family
create_table table [family1 [family2 ...]]
enable_table table
disable_table table
alter table (add|delete) family
drop table
truncate table
flush table
put table row family1:qualifier1 value1 [family2:qualifier2 value2 ...]
get table row [family1[:qualifier1] [family2[:qualifier2] ...]]
delete table row [family1[:qualifier1] [family2[:qualifier2] ...]]
scan table number_of_rows
""" % sys.argv[0]
if len(sys.argv) <= 1 or sys.argv[1] == '--help':
usage()
sys.exit(0)
host = 'localhost'
port = 9090
argi = 1
if sys.argv[argi] == '-h':
parts = sys.argv[argi+1].split(':')
host = parts[0]
if len(parts) == 2:
port = int(parts[1])
argi += 2
cmd = sys.argv[argi]
args = sys.argv[argi+1:]
connection = HBaseConnection(host, port)
if cmd == 'list_tables':
if len(args) != 0:
usage()
sys.exit(1)
print connection.list_tables(*args)
elif cmd == 'get_hbase_version':
if len(args) != 0:
usage()
sys.exit(1)
print connection.get_hbase_version(*args)
elif cmd == 'get_cluster_status':
if len(args) != 0:
usage()
sys.exit(1)
pprint.pprint(connection.get_cluster_status(*args))
elif cmd == 'describe_table':
if len(args) != 1:
usage()
sys.exit(1)
print connection.describe_table(*args)
elif cmd == 'describe_family':
if len(args) != 2:
usage()
sys.exit(1)
print connection.describe_family(*args)
elif cmd == 'is_table_enabled':
if len(args) != 1:
usage()
sys.exit(1)
print connection.is_table_enabled(*args)
elif cmd == 'table_exists':
if len(args) != 1:
usage()
sys.exit(1)
print connection.table_exists(*args)
elif cmd == 'create_table':
if len(args) < 1:
usage()
sys.exit(1)
print connection.create_table(*args)
elif cmd == 'alter':
if len(args) != 3:
usage()
sys.exit(1)
print connection.alter(*args)
elif cmd == 'drop':
if len(args) != 1:
usage()
sys.exit(1)
print connection.drop(*args)
elif cmd == 'truncate':
if len(args) != 1:
usage()
sys.exit(1)
print connection.truncate(*args)
elif cmd == 'enable_table':
if len(args) != 1:
usage()
sys.exit(1)
print connection.enable_table(*args)
elif cmd == 'disable_table':
if len(args) != 1:
usage()
sys.exit(1)
print connection.disable_table(*args)
elif cmd == 'flush':
if len(args) != 1:
usage()
sys.exit(1)
print connection.flush(*args)
elif cmd == 'get':
if len(args) < 2:
usage()
sys.exit(1)
print connection.get(*args)
elif cmd == 'put':
if len(args) < 4 or not len(args) % 2 == 0:
usage()
sys.exit(1)
print connection.put(*args)
elif cmd == 'scan':
if len(args) != 2:
usage()
sys.exit(1)
print connection.scan(*args)
elif cmd == 'delete':
if len(args) < 2:
usage()
sys.exit(1)
print connection.delete(*args)
else:
usage()
sys.exit(1)