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

黄舟
Libérer: 2017-05-07 11:02:51
original
1716 Les gens l'ont consulté


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
Copier après la connexion

Configuration

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

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
Copier après la connexion

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>
Copier après la connexion

Démarrer

bin/start-hbase.sh  # 启动bin/hbase shell  # 进入hbase交互shell
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

Démarrez le service Thrift de HBase

bin/hbase-daemon.sh start thrift
Copier après la connexion

Vérifiez le processus système

~/work/hbase/hbase-1.2.4/conf$ jps3009 ThriftServer4184 HMaster5932 Jps733 Main
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal