Maison >développement back-end >Tutoriel Python >Exemple d'analyse de code d'opération HBase en Python

Exemple d'analyse de code d'opération HBase en Python

黄舟
黄舟original
2017-05-07 11:02:511766parcourir


Installer HBase

HBase est un système de stockage de colonnes distribuées construit sur HDFS, principalement utilisé pour le stockage massif de données structurées. Ici, notre objectif est simplement de fournir un environnement de base pour Python pour accéder à HBase, alors téléchargez directement le package binaire et installez-le sur une seule machine. Après le téléchargement, décompressez-le, modifiez le fichier de configuration , puis démarrez directement HBase. La version du système utilisée est Ubuntu14.04.

Télécharger

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

Configuration

Modifiez hbase-env.sh et définissez JAVA_HOME.

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Modifiez hbase-site.xml et définissez le répertoire racine pour stocker les données.

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///home/mi/work/hbase/data</value>
    </property></configuration>

Démarrer

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

Installer Thrift

Après avoir installé HBase, vous devez également installer Thrift, car lorsque d'autres langages appellent HBase, ils doivent connectez-vous via Thrift.

Installer les dépendances 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, il y a eu un problème avec l'installation sur mon ubuntu14.04, j'ai donc installé libboost1.55.

Compilez et installez

Téléchargez le code source, décompressez-le, compilez et installez. Adresse de téléchargement de Thrift

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

Démarrez le service Thrift de HBase

bin/hbase-daemon.sh start thrift

Vérifiez le processus système

~/work/hbase/hbase-1.2.4/conf$ jps3009 ThriftServer4184 HMaster5932 Jps733 Main

Vous pouvez voir que ThriftServer a été démarré avec succès, et ensuite nous pouvons utiliser plusieurs langues pour accéder à HBase via Thrift.

Python exploite HBase

Ce qui suit utilise Python comme exemple pour montrer comment accéder à HBase.

Installer les packages dépendants

sudo pip install thriftsudo pip install hbase-thrift

Programme de démonstration

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

Résultat de l'exécution :

[&#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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn