Heim > Artikel > Backend-Entwicklung > Beispielcodeanalyse für eine HBase-Operation in Python
HBase ist ein verteiltes Spaltenspeichersystem, das auf HDFS basiert und hauptsächlich für die Speicherung massiver strukturierter Daten verwendet wird. Hier besteht unser Ziel lediglich darin, eine grundlegende Umgebung für Python für den Zugriff auf HBase bereitzustellen. Laden Sie also das Binärpaket direkt herunter und installieren Sie es auf einem eigenständigen Computer. Entpacken Sie es nach dem Herunterladen, ändern Sie die Konfigurationsdatei und starten Sie HBase dann direkt. Die verwendete Systemversion ist Ubuntu14.04.
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.2.4/hbase-1.2.4-bin.tar.gz tar zxvf hbase-1.2.4-bin.tar.gz
Ändern Sie hbase-env.sh und legen Sie JAVA_HOME fest.
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
Ändern Sie hbase-site.xml und legen Sie das Stammverzeichnis zum Speichern von Daten fest.
<configuration> <property> <name>hbase.rootdir</name> <value>file:///home/mi/work/hbase/data</value> </property></configuration>
bin/start-hbase.sh # 启动bin/hbase shell # 进入hbase交互shell
Nach der Installation von HBase müssen Sie auch Thrift installieren, denn wenn andere Sprachen HBase aufrufen, müssen sie dies tun Verbinden Sie sich über Thrift.
sudo apt-get install automake bison flex g++ git libboost1.55 libevent-dev libssl-dev libtool make pkg-config
PS: libboost1.55-all-dev, es gab ein Problem mit der Installation auf meinem Ubuntu14.04, also habe ich libboost1.55 installiert.
Laden Sie den Quellcode herunter, entpacken Sie ihn, kompilieren und installieren Sie ihn. Thrift-Download-Adresse
tar zxf thrift-0.10.0.tar.gzcd thrift-0.10.0/./configure --with-cpp --with-boost --with-python --without-csharp --with-java --without-erlang --without-perl --with-php --without-php_extension --without-ruby --without-haskell --without-gomake # 编译耗时较长sudo make install
bin/hbase-daemon.sh start thrift
Überprüfen Sie den Systemprozess
~/work/hbase/hbase-1.2.4/conf$ jps3009 ThriftServer4184 HMaster5932 Jps733 Main
Sie können sehen, dass ThriftServer erfolgreich gestartet wurde. und dann können wir mehrere Sprachen verwenden, um über Thrift auf HBase zuzugreifen.
Im Folgenden wird Python als Beispiel verwendet, um zu demonstrieren, wie auf HBase zugegriffen wird.
sudo pip install thriftsudo pip install hbase-thrift
from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocolfrom hbase import Hbasefrom hbase.ttypes import * transport = TSocket.TSocket('localhost', 9090) transport = TTransport.TBufferedTransport(transport) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = Hbase.Client(protocol) transport.open() contents = ColumnDescriptor(name='cf:', maxVersions=1)# client.deleteTable('test')client.createTable('test', [contents])print client.getTableNames()# insert datatransport.open() row = 'row-key1'mutations = [Mutation(column="cf:a", value="1")] client.mutateRow('test', row, mutations) # get one rowtableName = 'test'rowKey = 'row-key1'result = client.getRow(tableName, rowKey) print resultfor r in result: print 'the row is ', r.row print 'the values is ', r.columns.get('cf:a').value
['test'] [TRowResult(columns={'cf:a': TCell(timestamp=1488617173254, value='1')}, row='row-key1')] the row is row-key1 the values is 1
Das obige ist der detaillierte Inhalt vonBeispielcodeanalyse für eine HBase-Operation in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!