Accès aux tables HBase à l'aide de Hive - Amazon EMR

Accès aux tables HBase à l'aide de Hive

HBase et Apache Hive sont étroitement intégrés, ce qui vous permet d'exécuter des charges de travail MPP (Massively Parallel Processing) directement sur des données stockées dans HBase. Pour utiliser Hive avec HBase, vous pouvez généralement les lancer sur le même cluster. Vous pouvez, toutefois, lancer Hive et HBase sur des clusters distincts. L'exécution de HBase et de Hive séparément sur des clusters différents peut améliorer les performances, car cela permet à chaque application d'utiliser les ressources de cluster plus efficacement.

Les procédures suivantes montrent comment vous connecter à HBase sur un cluster à l'aide de Hive.

Note

Vous pouvez connecter un cluster Hive à un seul cluster HBase.

Pour connecter Hive à HBase
  1. Créez des clusters séparés avec Hive et HBase installés ou créez un cluster unique avec HBase et Hive installés.

  2. Si vous utilisez des clusters séparés, modifiez vos groupes de sécurité afin que les ports HBase et Hive soient ouverts entre ces deux nœuds maîtres.

  3. Utilisez SSH pour vous connecter au nœud maître pour le cluster doté de Hive. Pour plus d'informations, consultez Connexion au nœud principal à l'aide de SSH dans le Guide de gestion d'Amazon EMR.

  4. Lancez le shell Hive à l'aide de la commande suivante.

    hive
  5. (Facultatif) Vous n'avez pas besoin de procéder ainsi si HBase et Hive se trouvent sur le même cluster. Connectez le client HBase sur votre cluster Hive au cluster HBase qui contient vos données. Dans l'exemple suivant, public-DNS-name est remplacé par le nom DNS public du nœud principal du cluster HBase, par exemple : ec2-50-19-76-67.compute-1.amazonaws.com.

    set hbase.zookeeper.quorum=public-DNS-name;
  6. Exécutez les requêtes Hive sur vos données HBase comme vous le souhaitez, ou passez à la procédure suivante.

Pour accéder aux données HBase depuis Hive
  • Une fois la connexion entre les clusters Hive et HBase établie (comme indiqué dans la procédure précédente), vous pouvez accéder aux données stockées sur le cluster HBase en créant une table externe dans Hive.

    L'exemple de code suivant, lorsqu'il est exécuté à partir de l'invite de Hive sur le nœud maître, crée une table externe qui référence les données stockées dans une table HBase appelée inputTable. Vous pouvez ensuite référencer inputTable dans les instructions Hive pour interroger et modifier les données stockées dans le cluster HBase.

    set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com; create external table inputTable (key string, value string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1") tblproperties ("hbase.table.name" = "t1"); select count(key) from inputTable ;

Pour découvrir un cas d'utilisation plus avancé et un exemple combinant HBase et Hive, consultez le billet du blogue AWS sur le Big Data, Combine NoSQL and massively parallel analytics using Apache HBase and Apache Hive on Amazon EMR (Combiner NoSQL et les analytics massivement parallèles à l'aide d'Apache HBase et d'Apache Hive sur Amazon EMR).