Sunday, March 3, 2013

CR du Hadoop User Group Paris du 26 Février sur Impala


Le HUG s'est déroulé dans les locaux d'AF83, dans le 2ème arrondissement Parisien.
Il n'y a eu qu'une seule présentation, celle de Marcel Kornacker Lead Architect chez Cloudera sur le projet Impala.

La présentation était très dense et portait sur Impala aujourd'hui et dans un futur proche.
Voici ce que j'en ai retenu.



Impala

Qu'est ce qu'Impala ?

Impala est un projet OpenSource de Cloudera et non de la fondation Apache permettant de faire du requêtage SQL sur des jeux de données de type Big Data.
Impala est adapté aussi bien à des traitements OLAP qu'OLTP et garantie des temps de réponse très rapides.

Niveau de maturité

C'est aujourd'hui une bêta que Cloudera installe chez ses clients lorsque ces derniers veulent tester le produit et donner du feedback pour son amélioration.

Impala n'est pas, aujourd'hui, prêt pour la production comme pour du POC.
Cependant, un premier palier déstabilisé sera franchi avec la sortie d'une version GA en Avril 2013.

Architecture

Dans Impala, on distingue deux composants.

Le Statestore

C'est ici que se trouvent les schéma des tables et que les agents impalas (voir plus bas) s'enregistrent.
Le statestore exporte aussi une façade Thrift pour le contrôler à distance.
Au jour d'aujourd'hui, le statestore lit le contenu du NameNode et du Metastore de Hive.

Il ne s'agit pas d'une base de référence en ce sens qu'elle se construit sur la base à la fois du contenu du NameNode et des RegionServer HBase. Cloudera parle de soft-state.
Ainsi, il sera possible d'utiliser un statestore pour consolider les données se trouvant dans plusieurs clusters Hadoop et les requêtes SQL se répartiront entre les agents impalad des différents clusters en fonction du besoin.

Les agents Impalad

Installés sur chacun des noeuds Hadoop (HDFS ou HBase), ce composant assure à la fois le point d'entrée des requêtes SQL, le calcul du plan d'exécution et l'exécution des chunks.
Le résultat intermédiaire sur chaque agent est ensuite streamé sur le noeud à l'origine de la requête.
Le choix de l'agent qui peut traiter un bout de requête se fait en fonction de la localité de la donnée, comme pour Map Reduce donc.

Accès à Impala

Il y a deux modes d'accès à Impala :
 - ODBC/JDBC
 - impala-shell, qui se connecte à un agent impalad
Aujourd'hui, on doit se connecter à un noeud en particulier. Il est prévu d'ajouter un mécanisme de load balancing afin de ne plus avoir à se soucier de la charge des agents.
D'autre part, Kerberos est déjà supporté.

Stockage et formats supportés
Il n'y a pas de contrainte particulière de stockage ni de format, le produit se voulant le plus ouvert possible.
Ce qui est supporté aujourd'hui :
 - stockage RAW avec ou sans compression LZO
 - stockage SequenceFile ou RCFile avec Snappy ou GZip
La version GA apportera entre autres le support pour les fichiers binaires Avro.

Les performances

Les performances sont un élément fondamental pour eux. Impala est écrit en C++, ne repose pas sur MapReduce et les requêtes SQL soumises au moteur sont transformées en bytecode LLVM pour que ce dernier puisse générer au runtime le code exécutant l'opération SQL demandée.
Un autre point important est de réduire autant que possible l'empreinte mémoire des agents.

Un moteur SQL

Impala permet de requêter en SQL-92 avec globalement les même limitations que Hive plus le fait qu'aujourd'hui on ne peut pas faire d'opération de DDL.
Le support pour les opérations DDL arriveront courant 2013 de même que les opérations d'INSERT, de DELETE et d'UPDATE.

Limitations fonctionnelles actuelles

Aujourd'hui, Impala ne supporte pas d'UDF personnalisées, de Serdes, ni d'extension au delà de SQL tels que XPath, Json, …
De la même manière, une requête doit tenir en mémoire, les ORDER BY nécessitent une clause LIMIT, il n'y a pas de support les TOP-n et l'ordre des JOIN dépend de l'ordre dans la requête.
Ce sont là des points qui seront dépassés dans le courant de l'année 2013.

Quelques métriques de performances

Sans avoir fait des tests poussés, les métriques suivantes ont été constatées :
 - Sur une petite table avec des données facilement compressible,le ratio de compression de Parquet par rapport à Snappy est de 15:1
 - Impala est plus intensif en I/O que Hive. Sur certaines requêtes, les I/O peuvent être  saturées
 - Sur des requêtes simples tenant sur la mémoire d'un seul noeud, un gain jusqu'à x100 a été constaté par rapport à Hive
 - Sur des requêtes plus complexe, le gain constaté est d'environ x2 à x3 par rapport à Hive

Parquet

Parquet est le successeur de Trevni, un format de stockage orienté colonne.
Il sert pour la sérialisation de :
 - Avro
 - Thrift
 - ProtoBuf
Le projet est OpenSource et conjointement développé par Cloudera et Twitter.
Parmi les fonctionnalités attendues se trouvent :
 - un nombre de colonne différent pour chaque ligne
 - les types natifs
 - l'indexation de pages pour accélérer les opérations de lookup
 - l'ajout de nouveaux encodages de types
 - la compression dictionnaire pour les valeurs à faible cardinalité

D'autre part, Impala avec Parquet supportera les JOIN.

Conclusion

La vision que nous a exposé Marcel Kornacker pour Impala peut se résumer ainsi :
 Impala devra pouvoir être utilisé pour des requêtes exploratoires et de production sur le même cluster dans impact sur les jobs de production de ce cluster.

2 comments:

  1. It means 카지노 사이트 추천 the net on line casino requires you to carry out quantity of|numerous|a variety of} performs by way of the bonus itself. So, for instance, you get a 100% bonus in your $100 deposit with wagering requirements of 20x. While this can be a|it is a} bit spooky, it’s an excellent security measure towards id theft. Just imagine what a legal might do with the credit card they simply stole from you if these measures weren’t applied. Some on-line roulette sites offer wonderful customer support, while others are a bit lacking on this space. Their Fresh Deck live vendor on line casino additionally offers one of the vigorous and realistic wheel experiences we've performed.

    ReplyDelete
  2. For example casino.edu.kg if the player’s ultimate hand was 5c, 5d, 5s, 3s, 2nd because the 3s and 2nd sum to five the hand can be paid as a four of a Kind. Bob is probably the most well-known skilled video poker player round, and his web site shares his insights. Once I put $100 right into a $0.25 machine and performed it for some time.I performed it all the way down to} zero credit, after which I hit Four of a Kind, which saved me.

    ReplyDelete