J'ai un petit cluster HBase
en cours d'exécution avec un frontend Java
. Je l'ai fait fonctionner avec succès avec le code de test qui établit une connexion, exécute des données de test, et se déconnecte, mais je dois l'étendre dans une application Web dans le cadre d'un projet plus vaste. Il a été suggéré que j'utilise Tomcat
comme service HTTP
pour l'interface avec la base de données, et dans ce cadre j'ai besoin de mettre en place un pool de connexion. Je comprends les pools de connexions au niveau conceptuel (une pile de connexions persistantes à la base de données distribuée aux clients si nécessaire et retournée au pool lorsqu'elle est supprimée), mais je n'ai jamais écrit de webapp auparavant et Tomcat
me vexe . Je peux trouver beaucoup de documentation sur comment configurer un pool de connexion à un serveur SQL
en utilisant JDBC
, mais rien sur HBase
(ou, d'ailleurs, quoi que ce soit MAIS SQL
) et rien sur comment (ou si je peux ou dois) écrire un interface personnalisée pour le faire fonctionner avec Tomcat
. Est-ce faisable, ou même possible, ou devrais-je adopter une approche différente?Pool de connexions HBase dans Tomcat?
0
A
Répondre
0
Je pense qu'il serait difficile de trouver quelque chose qui est fait pour Tomcat
, je ne pense pas qu'une telle chose existe. La plupart des gens utilisent probablement des classes personnalisées. Cela étant dit, vous devriez probablement construire quelque chose autour du HTablePool
qui vient avec HBase
.
Voici un exemple de quelque chose que vous pouvez utiliser dans votre projet:
public class HTableManager {
public static int HTABLE_POOL_SIZE = 15;
private static HTableManager instance;
private static HTablePool hTablePool;
/**
* Private Constructor
*/
private HTableManager() {
try {
Configuration config = HBaseConfiguration.create();
config.set("hbase.defaults.for.version.skip", "false");
hTablePool = new HTablePool(config, HTABLE_POOL_SIZE);
} catch (IOException ex) {
// Error handling
}
}
/**
* @return The HbaseTableManager instance
*/
public static HTableManager getInstance() {
if (instance == null) {
instance = new HTableManager();
}
return instance;
}
/**
* Method used to retrieve a HTable instance.
*
* @param tableName The table name
* @return The HTableInterface instance
* @throws IOException
*/
public synchronized HTableInterface getHTable(String tableName) throws IOException {
return hTablePool.getTable(tableName);
}
}
Et vous pouvez l'utiliser comme ceci:
HTableManager hTableManager = htableManager.getInstance();
HTableInterface hTable = hTableManager.getHTable("yourTableName");
...
// Work with the hTable instance
...
// A call to the close method returns it to the pool
hTable.close();
Questions connexes
- 1. Désactiver le pool de connexions sur Tomcat
- 2. Pool de fichiers (comme Pool de connexions)
- 3. Pool de connexions HTTP
- 4. Le pool de connexions JDBC manque de connexions lorsque Context reload = "true" est activé dans Tomcat
- 5. Le pool de connexions JDBC ne rouvre pas Connexions dans tomcat
- 6. Pool de connexions dans .net
- 7. Pool de connexions JDBC
- 8. Tomcat JDBC Connection Pool - Les connexions sont bloquées sur
- 9. pool d'objets vs pool de connexions
- 10. Pool d'applications dans TomCat?
- 11. Mise en pool de connexions Tomcat, connexions inactives et création de connexion
- 12. Erreur HBASE-ZOOKEEPER: Trop de connexions
- 13. tomcat hbase jar inclusion
- 14. Nombre de connexions disponibles dans le pool de connexions ADO.NET
- 15. Comment réduire le pool de connexions DB?
- 16. Surveillance du pool de connexions
- 17. Pool de connexions DBCP loginTimeout
- 18. Configuration du pool de connexions dans Microsoft.Practices.EnterpriseLibrary
- 19. Pool de connexions Postgresql dans Erlang
- 20. Utilisation du pool de connexions dans JPA
- 21. Tomcat DataSource - Max connexions actives
- 22. Combien de connexions contient un pool de connexions ADO?
- 23. Définition d'un autre pool de connexions dans Grails 2.3.6
- 24. Remplacer le pool de connexions Hibernate par le pool de connexions géré par conteneur?
- 25. Comment intégrer la structure de jeu 1.2.3 avec le pool de connexions Tomcat JDBC
- 26. Connexion non retournée à pool Tomcat
- 27. Inspecter le pool de connexions HTTP Java
- 28. Enregistrement du pool de connexions C3P0
- 29. Mise en pool de connexions et Thread.interrupt()
- 30. Taille du pool de connexions Hibernate config
Ici aussi je cant't trouver une raison, pourquoi la La méthode close reutrns la table dans le pool, Voir: http://stackoverflow.com/questions/12190826/hbase-htablepool-correct-usage/17712233#17712233 – seb
Lire le javadoc http://hbase.apache.org/apidocs /org/apache/hadoop/hbase/client/HTablePool.html –