Cloudera Data Platform (CDP) Private Cloud est la plate-forme sur site la plus complète pour l'analyse intégrée et la gestion des données. Il combine le meilleur de Cloudera Enterprise Data Hub et Hortonworks Data Platform Enterprise Plus, et apporte les dernières et meilleures technologies open source pour la gestion et l'analyse des données au centre de données.
Avec la dernière version (7) de CDP Private Cloud Base, nous avons introduit un certain nombre de nouvelles fonctionnalités et améliorations. Dans cet article de blog, nous aimerions partager les améliorations de performances disponibles dans Apache HBase.
Pour ceux qui découvrent HBase ou qui l'évaluent pour un nouveau projet, HBase est une base de données distribuée non relationnelle à laquelle font confiance les architectes et les développeurs qui souhaitent traiter de gros volumes de données de manière rapide et fiable.
Pour cette comparaison des performances, nous avons mesuré HBase2 disponible dans CDP Private Cloud Base 7 à Hbase1 disponible dans CDH 5 en utilisant les charges de travail YCSB. La comparaison nous aide à comprendre les améliorations de performances et les implications pour les clients effectuant des mises à niveau sur place sans modifier le matériel sous-jacent.
Remarque :les clients qui effectuent une mise à niveau de CDH 5 vers CDP 7 recevront également une mise à niveau HBase de HBase1 vers HBase2.
- Charge de travail de mise à jour YCSB personnalisée uniquement
- Notre charge de travail personnalisée YCSB Update Only fonctionne
- Opérations de mise à jour à 100 %
- Un exemple d'application serait un magasin de métriques
- Performances de la charge de travail : Mise à jour CDP 7 YCSB Seul le débit d'exécution de la charge de travail (opérations par seconde) était 20 % meilleur que lorsqu'il était exécuté avec CDH5
- Notre charge de travail personnalisée YCSB Update Only fonctionne
- Charge de travail A du YCSB
- La charge de travail A du YCSB s'exécute
- 50 % d'opérations de lecture
- 50 % des opérations de mise à jour
- Un exemple d'application serait un magasin de sessions enregistrant les actions récentes d'une session utilisateur
- Performances de la charge de travail :CDP Private Cloud Base 7.1 HBase2 YCSB charge de travail A débit (opérations par seconde) était 15 % supérieur à CDH5 HBase1
- La charge de travail A du YCSB s'exécute
- Charge de travail C du YCSB (lecture seule)
- YCSB Workload C est une charge de travail en lecture seule et exécute
- Opérations de lecture à 100 %
- Un exemple d'application serait la lecture du cache de profil utilisateur lorsque les profils sont créés ailleurs (par exemple, Hadoop) ou un système bancaire pour accéder et afficher les relevés de compte
- Performances de charge de travail :CDP 7 YCSB charge de travail C avait un débit similaire (opérations par seconde) à CDH 5
- YCSB Workload C est une charge de travail en lecture seule et exécute
Verdict :CDP 7 offre des performances améliorées par rapport à CDH 5 dans YCSB
Charge de travail UpdateOnly personnalisée :La charge de travail de la mise à jour CDP 7 YCSB a été 20 % meilleure que C5.
YCSB Workload A :La charge de travail A du CDP 7 YCSB a obtenu 15 % de mieux que CDH5.
YCSB Workload C :CDP 7 YCSB en lecture seule, la charge de travail C présentait des opérations/un débit similaires à CDH 5
Au cours de nos tests, nous avons remarqué que la mise à niveau de JDK8 vers JDK 11 dans CDP 7 peut améliorer les performances de 10 % supplémentaires. Cela va au-delà des améliorations de performances obtenues en passant de CDH5 à CDP7.
CDP 7 est livré avec JDK8 installé par défaut et prend en charge une mise à niveau vers JDK11. Lors de nos exécutions de test, CDP 7 a été mis à jour pour utiliser JDK 11 pour les exécutions de charge de travail YCSB présentées ci-dessus. Nous avons également exécuté les mêmes charges de travail avec JDK8, et les résultats des tests ont montré que les performances de JDK11 sont meilleures de 5 à 10 % par rapport à JDK8 , comme indiqué dans le tableau ci-dessous
Pour mettre à niveau CDP 7 de JDK 8 vers OpenJDK 11, veuillez suivre les étapes ci-dessous :
Étape 1 :Installez OpenJDK11 sur tous les hôtes en utilisant ce qui suit
RHEL
sudo yum install java-11-openjdk
Ubuntu
sudo apt install openjdk-11-jdk
Étape 2 :Sur l'hôte Cloudera Manager Server uniquement (non requis pour les autres hôtes) :
- Ouvrez le fichier /etc/default/cloudera-scm-server dans un éditeur de texte.
- Editez la ligne qui commence par export JAVA_HOME (si cette ligne n'existe pas, ajoutez-la) et changez le chemin vers le chemin du nouveau JDK (le JDK est généralement installé dans / usr/lib/jvm)(ou /usr/lib64/jvm sur SLES 12), mais le chemin peut différer selon la manière dont le JDK a été installé).
Pour plus d'informations sur la mise à jour du JDK, veuillez suivre Mettre à jour le JDK
Environnement de test
Méthodologie des tests
CDH 5.16.3/HBase1 a été installé sur le cluster et les données de charge de travail avec 1 milliard de lignes (taille de l'ensemble de données 1 To) ont été générées et les charges de travail CDH 5.16.3 YCSB ont été exécutées. Après le chargement, nous avons attendu la fin de toutes les opérations de compactage avant de lancer le test de charge de travail.
Une fois les exécutions de CDH 5.16.3 terminées, CDP Private Cloud Base 7.1 HBase2 a été installé proprement et les données ont été régénérées sur le même cluster. Les charges de travail CDP Private Cloud Base 7.1 YCSB ont ensuite été exécutées pour obtenir les horaires de test. Avant chaque exécution de charge de travail, nous avons initialisé la table HBase utilisée par YCSB. Instantané de la table utilisateur utable_snap ont été créés et appliqués avant chaque exécution.
Chaque charge de travail testée a été exécutée 3 fois pendant 15 minutes chacune pour mesurer le débit*. Les résultats affichés sont les moyennes tirées des 3 tests.
*Débit (ops/sec) =Nombre d'opérations par seconde
CDP Private Cloud Base 7.1 inclut HBase2 et CDH 5.16.3 inclut HBase1. CDP Private Cloud Base 7.1 et CDH5 ont tous deux installé JDK 8. CDP Private Cloud Base 7.1 prend en charge JDK11 et CDP Private Cloud Base 7.1 a été mis à jour pour utiliser JDK 11 pour les tests YCSB, les exécutions CDH 5.13.3 ont été exécutées avec JDK 8 (1.8.0_141)
Configuration des tests
- YCSB Version 0.17.0
- Version de liaison YCSB hbase2(CDP-CD 7.1) et hbase1(CDH 5)
- Les clients du YCSB en ont utilisé 2
- Fils YCSB par client 20
- Taille des données
- Tableau YCSB à l'échelle de 1 To
- Nombre total d'enregistrements dans la table YCSB 1 000 000 000 (1 To), chaque enregistrement fait 1 Ko
- Nombre de régions dans la table YCSB 250, avec un cluster de nœuds 5+1, ses environ 50 régions par serveur de région
- Espace de stockage régional moyen utilisé par taille de serveur 290 G
- Les serveurs de la région HBase ont été configurés avec un tas de 32 Go
- Seul le cache L1 avec LruBlockCache a été utilisé avec une taille de cache de 12,3 Go
- Le pourcentage d'accès au cache L1 observé lors des exécutions sur les serveurs de région était de 85 %
- Le cache L2 hors tas n'a pas été configuré sur le cluster
Configurations de cluster
- Cluster utilisé : Cluster à 6 nœuds (1 maître + 5 serveurs de région)
- Description : Dell PowerEdge R430, 20c/40t Xenon e5-2630 v4 à 2,2 Ghz, 128 Go de RAM, disques de 4 à 2 To
- Sécurité : Aucun configuré (pas de Kerberos)
Versions Cloudera comparées
Version C7 :Base de cloud privé CDP 7.1.0
Version C5 : CDH5.16.3
JDK utilisés :JDK 8 ( 1.8.0_141) et JDK 11 (11.0.6)
Sur la base de nos tests (résultats ci-dessus), les clients qui souhaitent passer de CDH 5 à CDP 7 doivent s'attendre à une amélioration des performances pour des charges de travail similaires par rapport à ce qu'ils obtiennent aujourd'hui.
En savoir plus sur la base de données opérationnelle Cloudera ici