Comment éliminer l'erreur « Les caches des limites de région ne sont plus à jour » qui se produit lorsqu'un cluster HBase de réplica en lecture Amazon EMR est exécuté avec Phoenix ?
Dernière mise à jour : 13/04/2020
Lorsque j'essaye de me connecter à Apache HBase sur un cluster de réplica en lecture Amazon EMR par le biais d'Apache Phoenix, je reçois le message d'erreur suivant :
Error: ERROR 1108 (XCL08): Cache of region boundaries are out of date. (state=XCL08,code=1108) org.apache.phoenix.schema.StaleRegionBoundaryCacheException: ERROR 1108
(XCL08): Cache of region boundaries are out of date.
at org.apache.phoenix.exception.SQLExceptionCode$14.newException(SQLExceptionCode.java:365)
at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
at org.apache.phoenix.util.ServerUtil.parseRemoteException(ServerUtil.java:189)
at org.apache.phoenix.util.ServerUtil.parseServerExceptionOrNull(ServerUtil.java:169)
at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:140)
Brève description
Phoenix tente de se connecter à la table hbase:meta par défaut. Toutefois, étant donné que la table hbase:meta appartient au cluster principal, Phoenix ne parvient pas à se connecter au cluster de réplica en lecture. Afin de résoudre ce problème, modifiez hbase-site.xml afin de pointer vers la table hbase:meta_cluster-id qui appartient au cluster de réplica en lecture HBase.
Résolution
Avant de commencer, confirmez que Phoenix est installé sur le cluster principal ainsi que sur le cluster de réplica en lecture. Phoenix ne peut pas se connecter à HBase à partir d'un cluster de réplica en lecture s'il n'est pas installé sur le cluster principal.
Sur un cluster en cours d'exécution
1. Ajoutez les configurations suivantes au fichier de configuration HBase (/etc/phoenix/conf/hbase-site.xml), sur le nœud maître. Remplacez cluster-id par l'ID de votre cluster de réplica en lecture.
<property>
<name>hbase.balancer.tablesOnMaster</name>
<value>hbase:meta</value>
</property>
<property>
<name>hbase.meta.table.suffix</name>
<value>cluster-id</value>
</property>
2. Redémarrez le service Phoenix :
sudo stop phoenix-queryserver
sudo start phoenix-queryserver
Dans les versions 5.21.0 et ultérieures d'Amazon EMR, vous pouvez également effectuer ces changements de configuration en remplaçant la configuration du cluster du groupe d'instances maître :
1. Ouvrez la console Amazon EMR.
2. Dans la liste de clusters, sélectionnez le cluster de réplica en lecture que vous souhaitez reconfigurer.
3. Ouvrez la page détaillée de ce cluster et accédez à l'onglet Configurations.
4. Dans la liste déroulante Filtrer, sélectionnez le groupe d'instances maître.
5. Dans le menu déroulant Reconfigurer, sélectionnez Modifier dans la table.
6. Sélectionnez Ajouter une configuration, puis ajoutez les deux configurations suivantes :
Classification : phoenix-hbase-site
Propriété : hbase.balancer.tablesOnMaster
Valeur : hbase:meta
Classification : phoenix-hbase-site
Propriété : hbase.meta.table.suffix
Valeur : ${emr.clusterId}
7. Sélectionnez Enregistrer les modifications.
Pour plus d'informations sur ce processus, consultez Apporter une configuration à un groupe d'instances dans la console.
Sur un nouveau cluster
Ajoutez un objet de configuration semblable à l'objet suivant lorsque vous lancez un cluster sur une version d'Amazon EMR 4.6.0 ou ultérieure :
[
{
"Classification": "phoenix-hbase-site",
"Configurations": [
],
"Properties": {
"hbase.balancer.tablesOnMaster" : "hbase:meta",
"hbase.meta.table.suffix" : "${emr.clusterId}"
}
},
{
"Classification": "hbase-site",
"Configurations": [
],
"Properties": {
"hbase.meta.table.suffix" : "${emr.clusterId}"
}
}
]
Informations connexes
Cet article vous a-t-il été utile ?
Que pouvons-nous améliorer ?
Besoin de plus d'aide ?