Database Reference
In-Depth Information
hbase/thrift_example.rb
$:.push(
'./gen-rb'
)
require
'thrift'
require
'hbase'
socket = Thrift::Socket.new(
'localhost'
, 9090 )
transport = Thrift::BufferedTransport.new( socket )
protocol = Thrift::BinaryProtocol.new( transport )
client = Apache::Hadoop::Hbase::Thrift::Hbase::Client.new( protocol )
transport.open()
client.getTableNames().sort.each
do
|table|
puts
"
#{table}
"
client.getColumnDescriptors( table ).each
do
|col, desc|
puts
"
#{desc.name}
"
puts
" maxVersions:
#{desc.maxVersions}
"
puts
" compression:
#{desc.compression}
"
puts
" bloomFilterType:
#{desc.bloomFilterType}
"
end
end
transport.close()
Im obigen Code müssen wir zuerst sicherstellen, dass Ruby die Modelldateien
findet. Dazu fügen wir
gen-rb
in den Pfad ein und binden
thrift
und
hbase
ein. Danach stellen wir eine Verbindung mit dem Thrift-Server her und ver-
knüpfen sie mit einer HBase-Client-Instanz. Über dieses
client
-Objekt kom-
munizieren wir mit HBase.
Nachdem der
transport
geöffnet wurde, gehen wir alle Tabellen durch, die
von
getTableNames
zurückgeliefert werden. Für jede Tabelle gehen wir die Lis-
te der Spaltenfamilien durch, die uns
getColumnDescriptors()
zurückliefert
und geben einige Properties über die Standardausgabe aus.
Nun wollen wir das Programm über die Kommandozeile ausführen. Die Aus-
gabe sollte bei Ihnen ähnlich aussehen, da wir die Verbindung mit dem lo-
kalen HBase-Server herstellen, den wir vorhin gestartet haben.
$> ruby thrift
_
example.rb
links
from:
maxVersions: 1
compression: NONE
bloomFilterType: ROWCOL
to:
maxVersions: 1
compression: NONE
bloomFilterType: ROWCOL
wiki
revision:
maxVersions: 2147483647
compression: NONE
bloomFilterType: NONE