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.
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
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>
bin/start-hbase.sh # 启动bin/hbase shell # 进入hbase交互shell
Après avoir installé HBase, vous devez également installer Thrift, car lorsque d'autres langages appellent HBase, ils doivent connectez-vous via 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.
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
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.
Ce qui suit utilise Python comme exemple pour montrer comment accéder à HBase.
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
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!