Hadoop est-il mort? 2e partie



Une traduction de l'article a été préparée spécialement pour les étudiants du cours Data Engineer .


Lire la première partie

Personne n'a besoin de Big Data


Lorsque vous entendez "Personne n'a besoin de Big Data", regardez le CV du conférencier. Un opérateur télécom africain connaissant des niveaux de croissance incroyables ne va pas contacter le nouveau développeur web JavaScript et lui demander s'il peut l'aider à développer sa plateforme de données et optimiser les calculs de facturation. Vous pouvez trouver de nombreuses applications Web internes au siège de la compagnie aérienne, mais lorsqu'il s'agit d'analyser des pétaoctets de télémétrie d'avion pour une maintenance préventive, il ne peut pas y avoir un seul développeur PHP dans ce projet.

Les projets ci-dessus ne sont souvent pas annoncés de manière à ce que les développeurs Web puissent les découvrir. C'est pourquoi quelqu'un peut passer des années à travailler sur de nouveaux projets qui sont au bas de sa courbe en S en termes de croissance et d'accumulation de données, et dans la plupart des cas, ne voient jamais la nécessité d'un traitement des données au-delà de ce peut tenir dans la RAM sur une seule machine.

Au cours des 25 dernières années, le développement Web a été un grand moteur de la croissance du nombre de programmeurs. La plupart des gens qui s'appellent des programmeurs créent le plus souvent des applications Web. Je pense que bon nombre des ensembles de compétences dont ils disposent sont bien alignés sur ceux nécessaires à la conception de données, mais ils manquent souvent d'informatique répartie, de statistiques et de narration.

Les sites Web ne créent souvent pas de charge importante pour un seul utilisateur, et souvent l'objectif est de maintenir la charge sur les serveurs prenant en charge un grand nombre d'utilisateurs en dessous du seuil matériel maximal. Le monde des données se compose de charges de travail dans lesquelles une demande fait tout son possible pour maximiser un grand nombre de machines, pour terminer le travail le plus rapidement possible, tout en réduisant les coûts d'infrastructure.

Les entreprises de données Petabyte ont souvent des consultants et des fournisseurs de solutions expérimentés dans leur arsenal. J'ai rarement vu quelqu'un être retiré du développement Web par son employeur et transféré vers la zone de développement de la plate-forme de données; c'est presque toujours le résultat d'un long auto-recyclage.

Cet ensemble de données peut vivre dans la RAM


J'ai entendu des gens dire qu '"un ensemble de données peut tenir en mémoire". La quantité de RAM, même dans le cloud, a considérablement augmenté ces derniers temps. Il existe des instances d'EC2 avec 2 To de RAM. En règle générale, la RAM peut être utilisée à 12-25 Go / s, selon l'architecture de votre installation. L'utilisation de la RAM seule ne permet pas de récupérer après une panne en cas de panne de courant sur la machine. De plus, le coût par Go sera énorme par rapport à l'utilisation de disques.

Les disques deviennent également plus rapides. Une carte SSD PCIe 4.0 NVMe 4 x 2 To a été récemment annoncée, capable de lire et d'écrire à une vitesse de 15 Go / s. Le prix d'un disque PCIe 4.0 NVMe sera assez compétitif par rapport à la RAM et fournira une mémoire non volatile. Je suis impatient de voir un cluster HDFS avec un bon réseau utiliser ces lecteurs, car il montrera à quoi ressemble une archive de données en mémoire avec un stockage non volatile avec de riches outils d'écosystème Hadoop existants.

Surchargé d'excès d'ingénierie


Je ne voudrais pas consacrer 6 ou 7 chiffres au développement d'une plate-forme de données et d'une équipe pour une entreprise qui ne pourrait pas évoluer au-delà de ce qui tient sur un ordinateur portable d'un développeur.

Du point de vue du workflow, mes journées consistent principalement à utiliser BASH, Python et SQL. De nombreux nouveaux diplômés sont qualifiés dans ce qui précède.

Données de Petquet Parquet peut être facilement distribué sur un million de fichiers sur S3. La planification liée à ce qui précède n'est pas beaucoup plus compliquée que celle de la façon de stocker 100 000 fichiers de micropackets sur S3. Ce n'est pas parce qu'une solution est évolutive qu'elle est redondante.

Utilisez simplement PostgreSQL?


J'ai également entendu des arguments selon lesquels des systèmes orientés lignes comme MySQL et PostgreSQL peuvent répondre aux besoins des charges de travail analytiques ainsi qu'à leurs charges de travail transactionnelles traditionnelles. Ces deux suggestions peuvent être effectuées par l'analyse, et si vous affichez moins de 20 Go de données, la mise à l'échelle ne vaut probablement pas la peine.

J'ai dû travailler avec un système qui chargeait 10 milliards de lignes par jour dans MySQL. Dans MySQL et PostgreSQL, il n'y a rien qui puisse gérer une telle charge. Le coût de l'infrastructure de stockage des ensembles de données, même pendant plusieurs jours, dans un stockage orienté ligne, a éclipsé les coûts de personnel. Le passage à une solution de stockage sur colonnes pour ce client a réduit les coûts d'infrastructure et accéléré les temps de requête de deux ordres de grandeur pour chacun.

PostgreSQL dispose d'un certain nombre de modules complémentaires pour le stockage et la distribution de requêtes sur plusieurs machines. Les meilleurs exemples que j'ai vus sont des offres commerciales. Le Zedstore annoncé peut, à un degré ou à un autre, prendre en charge la création d'un stockage de colonnes en tant que fonction intégrée PostgreSQL standard. Il sera intéressant de voir si la distribution des demandes individuelles et la séparation du stockage deviendront à l'avenir des fonctions standard.

Si vous avez besoin d'un ensemble de données transactionnelles, il est préférable de garder cette charge de travail isolée à l'aide d'un entrepôt de données transactionnelles. C'est pourquoi je m'attends à ce que MySQL, PostgreSQL, Oracle et MSSQL durent très longtemps.

Mais aimeriez-vous voir une pause de 4 heures dans Uber parce qu'une de leurs demandes Presto a provoqué un comportement inattendu? Souhaitez-vous que votre entreprise soit informée de la nécessité d'une facturation mensuelle, pourquoi devriez-vous désactiver votre site Web pendant une semaine afin qu'il y ait suffisamment de ressources pour cette tâche? Les charges de travail analytiques ne doivent pas être associées à des charges de travail transactionnelles. Vous pouvez réduire les risques opérationnels et choisir l'équipement le plus approprié en les exécutant dans une infrastructure distincte.

Et puisque vous travaillez sur du matériel séparé, vous n'avez pas besoin d'utiliser le même logiciel. La plupart des compétences inhérentes à un ingénieur PostgreSQL compétent sont bien adaptées au monde des données analytiques; Il s'agit d'une petite étape par rapport au saut pour un développeur Web se déplaçant dans l'espace Big Data.

À quoi ressemble l'avenir?


Je continuerai d'analyser et d'élargir mes compétences en matière de données dans un avenir prévisible. Au cours des 12 derniers mois, j'ai travaillé en utilisant Redshift, BigQuery et Presto en quantités presque égales. J'essaie de distribuer mes paris, car je n'ai pas encore trouvé de boule de cristal fonctionnelle du prédicteur.

Ce que j'attends vraiment, c'est plus de fragmentation et plus d'acteurs entrant et sortant de l'industrie. Il existe des raisons à l'existence de la plupart des bases de données, mais les cas d'utilisation qu'elles peuvent servir peuvent être limités. Dans le même temps, les bons vendeurs peuvent augmenter la demande du marché pour toute offre. J'ai entendu dire que les gens croient que la création d'une base de données de qualité commerciale nécessite environ 10 millions de dollars, et c'est probablement le meilleur endroit pour le capital-risque.

Il existe de nombreuses suggestions et implémentations qui laissent les clients avec un arrière-goût désagréable. Il y a aussi une chose telle que le choc d'une étiquette de prix du cloud. Il existe des solutions qui sont bonnes, mais trop chères en raison du coût d'embauche d'experts. Les professionnels de la vente et du marketing de l'industrie seront occupés pendant un certain temps à discuter des compromis ci-dessus.

Cloudera et MapR sont peut-être dans une période difficile en ce moment, mais je n'ai rien entendu de tel pour me faire croire qu'il y a quelque chose dans AWS EMR, DataBricks et Qubole qui pourraient rivaliser. Même Oracle publie une offre pilotée par Spark . Ce serait bien si l'industrie voyait dans Hadoop quelque chose de plus qu'une simple offre Cloudera et reconnaissait que ces entreprises, ainsi que Facebook, Uber et Twitter, apportaient une contribution significative au monde de Hadoop.

Hortonworks, qui a fusionné avec Cloudera cette année, est un fournisseur de plate-forme pour Azure HDInsight, géré par Microsoft Hadoop. Il y a des gens dans l'entreprise qui peuvent fournir une plate-forme décente à un fournisseur de services cloud tiers. J'espère que toutes les propositions sur lesquelles ils travaillent se concentreront sur ce type de fourniture.

Je soupçonne que les premiers clients de Cloudera étaient des utilisateurs de HBase, Oozie, Sqoop et Impala. Ce serait bien de voir qu'ils ne rivalisent pas pour un temps de développement aussi long et pour les futures versions de leurs plates-formes qui seront livrées avec Airflow, Presto et la dernière version de Spark prête à l'emploi.

En fin de compte, si votre entreprise prévoit de déployer une plate-forme de données, elle ne trouvera pas de remplaçant pour une équipe de gestion exigeante qui peut effectuer des recherches approfondies, planifier soigneusement et identifier rapidement les défaillances.

Source: https://habr.com/ru/post/fr476908/


All Articles