Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcodeanalyse für eine HBase-Operation in Python

Beispielcodeanalyse für eine HBase-Operation in Python

黄舟
黄舟Original
2017-05-07 11:02:511656Durchsuche


HBase installieren

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.

Herunterladen

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

Konfiguration

Ä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>

Starten

bin/start-hbase.sh  # 启动bin/hbase shell  # 进入hbase交互shell

Thrift installieren

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.

Thrift-Abhängigkeiten installieren

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.

Kompilieren und installieren

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

Starten Sie den Thrift-Dienst von HBase

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.

Python betreibt HBase

Im Folgenden wird Python als Beispiel verwendet, um zu demonstrieren, wie auf HBase zugegriffen wird.

Abhängige Pakete installieren

sudo pip install thriftsudo pip install hbase-thrift

Demoprogramm

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(&#39;localhost&#39;, 9090)

transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)

client = Hbase.Client(protocol)
transport.open()

contents = ColumnDescriptor(name=&#39;cf:&#39;, maxVersions=1)# client.deleteTable(&#39;test&#39;)client.createTable(&#39;test&#39;, [contents])print client.getTableNames()# insert datatransport.open()

row = &#39;row-key1&#39;mutations = [Mutation(column="cf:a", value="1")]
client.mutateRow(&#39;test&#39;, row, mutations)
# get one rowtableName = &#39;test&#39;rowKey = &#39;row-key1&#39;result = client.getRow(tableName, rowKey)
print resultfor r in result:    
print &#39;the row is &#39;, r.row    
print &#39;the values is &#39;, r.columns.get(&#39;cf:a&#39;).value

Ausführungsergebnis:

[&#39;test&#39;]
[TRowResult(columns={&#39;cf:a&#39;: TCell(timestamp=1488617173254, value=&#39;1&#39;)}, row=&#39;row-key1&#39;)]
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn