Hadoop Unit
Test or…
par Khanh Tuong MAUDOUX
@jetoile
112/09/2019
Hadoop Unit
Qui je suis…
• Khanh Tuong Maudoux
• Développeur Java, JavaEE, BigData indépendant
• blog : blog.jetoile.fr
• @jetoile
• khanh.maudoux@jetoile.fr
2
Hadoop Unit
Contexte
3
Hadoop Unit
Contexte
• Big Data : écosystème composé éventuellement
d’Hadoop mais pas que…
• Hadoop = HDFS + YARN?
4
Hadoop Unit
Les « officiels »
5
Hadoop Unit
Les spécifiques…
6
Hadoop Unit
Et les « non officiels »…
7
Hadoop Unit
Et nous…?
8
Hadoop Unit
Et nous…?
• Comment qu’on fait?
– en mode de développement?
– pour tester?
– …
9
Hadoop Unit
ET NOUS…?!!!!
10
Hadoop Unit
Hadoop et les tests : solutions
11
Hadoop Unit
Hadoop et les tests : solutions
• Docker
• Mais…
– Comment faire en environnements hostiles (windows,
admin, …)
– Trouver la bonne image…
12
Hadoop Unit
Hadoop et les tests : solutions
• Utilisation de Spark local / Spark Testing base
• Mais…
– Ecosystème (hive/hbase/…)
– Si enableHiveSupport() sous windows…
13
Hadoop Unit
Hadoop et les tests : solutions
• LocalFS, LocalOozie, HiveLocal
• Mais…
– Verbeux
– Conflit de classloader
– Sous windows… c’est compliqué…
14
Hadoop Unit
Hadoop et les tests : solutions
• Hadoop Mini Cluster (https://github.com/sakserv/hadoop-mini-
clusters)
• Mais…
– Moins verbeux
– Conflit de classloader
– Sous windows… c’est compliqué…
15
Hadoop Unit
Hadoop et les tests : solutions
• Hadoop Unit
16
Hadoop Unit
Hadoop Unit
Fonctionnement
17
Hadoop Unit
Hadoop Unit
Fonctionnement
• S’appuie sur Hadoop Mini Cluster (https://github.com/sakserv/hadoop-mini-clusters)
• Supporte :
– Hdfs
– Zookeeper
– Hivemetastore / Hiverserver2
– Solr 6.6.1
– SolrCloud 6.6.1
– Oozie
– Kafka 1.0.0
– HBase
– MongoDB
– Cassandra 3.11.0
– Elasticsearch 6.2.4
– Redis 4.0.0
– Alluxio 1.8.1
– Neo4J 3.2.2
– Knox 0.12.0
– Confluent 5.3.0
– Docker
– Docker-Compose
18
Hadoop Unit
Hadoop Unit
Fonctionnement
• Compatible avec les REPL :
– HDFS
– Kafka
– HBase Shell
– Hive Shell / beeline
– Cassandra Shell
– KSQL Shell
• Fonctionne sous Linux/Mac/Windows
19
Hadoop Unit
Hadoop Unit
Fonctionnement
• 3 modes:
– Maven dependencies
– Maven Embedded
– Standalone
20
Hadoop Unit
Hadoop Unit
Fonctionnement
• En mode Maven dependencies:
21
Transitif
Démarre dans le bon ordre
Hadoop Unit
Hadoop Unit
Fonctionnement
• Avec Maven embedded :
12/09/2019 22
Plus de conflit de classloader
Hadoop Unit
Hadoop Unit
Fonctionnement
23
Hadoop Unit
Hadoop Unit
Fonctionnement
• En mode standalone :
12/09/2019 24
Pour tester plus rapidement
Pour prototyper
Hadoop Unit
Hadoop Unit
Bonus
12/09/2019 25
Développer ses propres composants
Hadoop Unit
Hadoop Unit
Bonus
12/09/2019 26
Réduire le code inutile pour les tests
Hadoop Unit
Hadoop Unit
Anatomie
27
Hadoop Unit
Hadoop Unit
Anatomie
• Utilisation de :
– Hadoop mini cluster (https://github.com/sakserv/hadoop-mini-clusters)
– Achilles (https://github.com/doanduyhai/Achilles)
– Embedded ElasticSearch (https://github.com/allegro/embedded-
elasticsearch)
– Redis Unit (https://github.com/ishiis/redis-unit)
– Archetype Resolver
=> Isolation des classloader
28
Hadoop Unit
Hadoop Unit
Anatomie
• Développer ses propres composants
29
Hadoop Unit
Questions ?
30
Hadoop Unit
Merci !
31
https://github.com/jetoile/hadoop-unit
http://blog.jetoile.fr/hadoop-unit/
https://search.maven.org/search?q=a:hadoop-unit-
standalone

Hadoop unit

Notes de l'éditeur