41 votes

Comment se connecter à HBase distant en Java ?

J'ai un serveur HBase autonome. Voici mon hbase-site.xml :

 <configuration>
 <property>
    <name>hbase.rootdir</name>
    <value>file:///hbase_data</value>
  </property>
</configuration>

J'essaie d'écrire un programme Java pour manipuler les données dans le HBase.

Si j'exécute le programme sur le serveur HBase, cela fonctionne très bien. Mais je ne sais pas comment le configurer pour l'accès à distance.

   Configuration config = HBaseConfiguration.create();
   HTable table = new HTable(config, "test");
   Scan s = new Scan();

J'ai essayé d'ajouter IP et Port, cela ne fonctionne pas :

 config.set("hbase.master", "146.169.35.28:60000")

Quelqu'un peut-il me dire comment faire?

Merci!

30voto

Nija Points 3625

Voici un extrait d'un système que nous utilisons pour créer une HTable que nous utilisons pour nous connecter à HBase

 Configuration hConf = HBaseConfiguration.create(conf);
hConf.set(Constants.HBASE_CONFIGURATION_ZOOKEEPER_QUORUM, hbaseZookeeperQuorum);
hConf.setInt(Constants.HBASE_CONFIGURATION_ZOOKEEPER_CLIENTPORT, hbaseZookeeperClientPort);

HTable hTable = new HTable(hConf, tableName);

HTH

EDIT : Exemples de valeurs :

 public static final String HBASE_CONFIGURATION_ZOOKEEPER_QUORUM                     = "hbase.zookeeper.quorum";
public static final String HBASE_CONFIGURATION_ZOOKEEPER_CLIENTPORT                 = "hbase.zookeeper.property.clientPort";
...
hbaseZookeeperQuorum="PDHadoop1.corp.CompanyName.com,PDHadoop2.corp.CompanyName.com";
hbaseZookeeperClientPort=10000;
tableName="HBaseTableName";

10voto

Marquez Points 1980

En résumé voici ce que j'utilise :

     Configuration hBaseConfig =  HBaseConfiguration.create();
    hBaseConfig.setInt("timeout", 120000);
    hBaseConfig.set("hbase.master", "*" + hbaseHost + ":9000*");
    hBaseConfig.set("hbase.zookeeper.quorum",zookeeperHost);
    hBaseConfig.set("hbase.zookeeper.property.clientPort", "2181");

Pour hBaseHost et zookeeperHost, je transmets simplement l'adresse IP d'un ordinateur en cluster sur lequel zookeeper est installé. Bien sûr, vous pouvez également paramétrer les numéros de port. Je ne suis pas sûr à 100% que ce soit le meilleur moyen d'assurer une connexion réussie, mais jusqu'à présent, cela fonctionne sans aucun problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X