{"id":350,"date":"2019-09-10T21:09:56","date_gmt":"2019-09-10T21:09:56","guid":{"rendered":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/?p=350"},"modified":"2024-07-25T12:05:16","modified_gmt":"2024-07-25T12:05:16","slug":"hadoop-mapreduce-o-spark-nuestro-dilema-entonces","status":"publish","type":"post","link":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/hadoop-mapreduce-o-spark-nuestro-dilema-entonces\/","title":{"rendered":"[HADOOP] MAPREDUCE o SPARK&#8230; nuestro dilema entonces."},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/f\/f3\/Apache_Spark_logo.svg\" alt=\"\" style=\"width:441px;height:auto\"\/><\/figure><\/div>\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">La verdad es que cuando comenzamos a crear nuestro primer ETL con <a href=\"https:\/\/hadoop.apache.org\/\"><strong>Hadoop<\/strong><\/a>, las primeras herramientas que analizamos trabajaban sobre <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce<\/strong><\/a>, y cuando dije que trabajaban, digo que no se pod\u00eda utilizar otra herramienta [m\u00e1s adelante, se pudo cambiar, pero en aquel momento no]. <a href=\"https:\/\/hive.apache.org\/\"><strong>Hive<\/strong><\/a>, <a href=\"https:\/\/sqoop.apache.org\/\"><strong>Sqoop<\/strong><\/a>, etc.. todas ellas, trabajaban exclusivamente con <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce<\/strong><\/a>.\u00a0<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">Obviamente <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce <\/strong><\/a>era un motor incre\u00edble de computaci\u00f3n, con varios a\u00f1os en sistemas de producci\u00f3n, y eso da estabilidad. Y a los arquitectos de sistemas, eso nos encanta\u2026 bueno, a los arquitectos de sistemas poco atrevidos.<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">En aquel momento, lleg\u00f3 a mis o\u00eddos una nueva herramienta, un motor de procesamiento que se supon\u00eda que era mucho m\u00e1s r\u00e1pido que <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce<\/strong><\/a>, un sistema que promet\u00eda tanto que obviamente cre\u00f3 un gran revuelo. Y todos los benchmark que le\u00eda, no hac\u00edan m\u00e1s que confirmarlo. \u00bfAdivinas qu\u00e9 es lo que hice?<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">Lo primero que hice fue instalarlo en mi sistema de pruebas. Conoc\u00eda todos los requisitos, ya que hab\u00eda le\u00eddo que, como el Google Chrome actual [el de 2019, por supuesto], consum\u00eda memoria que daba gusto [vamos un vampiro] y no me equivoqu\u00e9. El sistema de pruebas se qued\u00f3 sin memoria en poco tiempo, con un dataset peque\u00f1o, mientras que el mismo dataset pudo ser computado sin problemas con <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce<\/strong><\/a>, en el mismo sistema.<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">As\u00ed que indagu\u00e9 en la arquitectura de <strong><a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\">MapReduce <\/a><\/strong>y en la arquitectura de <a href=\"https:\/\/spark.apache.org\/\"><strong>Spark<\/strong><\/a>, y entend\u00ed el porqu\u00e9 uno era lento, pero confiable y llevaba mucho tiempo en producci\u00f3n, y otro era muy r\u00e1pido.\u00a0<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\"><a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce<\/strong><\/a>\u00a0es un sistema que en cada iteraci\u00f3n de computaci\u00f3n almacena en disco duro el resultado, esto permite tener un sistema confiable y resistente a fallos.<span id=\"docs-internal-guid-a6acce48-7fff-2afb-20db-5d3edc6995d8\"><div><span style=\"font-size: 11pt; font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; vertical-align: baseline;\"><\/span><\/div><\/span><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/mA_NbrhVeNetv9jRrXGU4Ankya16POrSD-_VsYJ4fowPtE8S4Co7F06GGGCFLXN7YLjgJSS5jvactfzi0IJ7GcHldQuhbz16gN_HnHAar5hNhe27sveUO9zFkwDbrpkrysh4ydZF\" alt=\"\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\"><a href=\"https:\/\/spark.apache.org\/\"><strong>Spark <\/strong><\/a>por el contrario almacena en cada iteraci\u00f3n de computaci\u00f3n el resultado en memoria en RDD, lo que permite tener un sistema de r\u00e1pido acceso a los resultados y una computaci\u00f3n rapid\u00edsima, ya que se elimina el delay de acceso a disco duro.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/jQtUlJAgkYqVKckOMRL9UCpruEyLNaFqOZf3WZr0sEhIR3vHIZTUm1v6VqL4ASr92n473p0dcl6gqC2gXDwnANQUQMFjMqtVa-IrkMLook5AZRskeMsOo-9VJypqwpgzcl3VIV-Z\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">Seguramente, ya has notado porque es m\u00e1s r\u00e1pido, no es por los algoritmos solamente, sino por el consumo de memoria. Esto realmente es incre\u00edble para el procesamiento en tiempo real, y de hecho es para lo que lo utilizamos, pero, imagina que tienes un cluster solo con Spark, has de saber que toda la memoria va a ser consumida por <a href=\"https:\/\/spark.apache.org\/\"><strong>Spark<\/strong><\/a>, como si no hubiera ma\u00f1ana. Y claro est\u00e1, la memoria es much\u00edsima m\u00e1s costosa que el disco duro.<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">As\u00ed pues, nosotros al utilizar una arquitectura Lambda en ese momento [no te preocupes, lo explicar\u00e9 en otra entrada], utilizamos <a href=\"https:\/\/spark.apache.org\/\"><strong>Spark <\/strong><\/a>en la parte de procesamiento de tiempo real, pero segu\u00edamos utilizando <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce <\/strong><\/a>en la parte de procesamiento batch, ya que <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce <\/strong><\/a>es bastante estable\u2026 y porque <a href=\"https:\/\/hive.apache.org\/\"><strong>Hive <\/strong><\/a>era el motor que utiliz\u00e1bamos en la parte de batch.<br><\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">Resumiendo, en mi experiencia, s\u00e9 que en 2019, no hay mucho que decir entre <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce <\/strong><\/a>y <a href=\"https:\/\/spark.apache.org\/\"><strong>Spark<\/strong><\/a>, <a href=\"https:\/\/spark.apache.org\/\"><strong>Spark <\/strong><\/a>es una herramienta muy utilizada en casi todos los pipeline de procesamiento, sobre todo por la arquitectura Kappa utilizada por las empresas, pero, tambi\u00e9n he de decir, que llevo utilizando herramientas como <a href=\"https:\/\/hive.apache.org\/\"><strong>Hive <\/strong><\/a>o <a href=\"https:\/\/sqoop.apache.org\/\"><strong>Sqoop <\/strong><\/a>con <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce <\/strong><\/a>a\u00f1os, y nunca he tenido problemas, en serio, ning\u00fan tipo de problema, pero cuando he cambiado en <a href=\"https:\/\/hive.apache.org\/\"><strong>Hive <\/strong><\/a>el motor, y he utilizado ORC, <a href=\"https:\/\/spark.apache.org\/\"><strong>Spark <\/strong><\/a>u otra herramienta de procesamiento, he encontrado problemas que con <a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/mapred_tutorial.html\"><strong>MapReduce <\/strong><\/a>no he tenido.<\/p>\n\n\n\n<p class=\"has-very-dark-gray-color has-text-color\" style=\"font-size:18px\">Si quieres hacerme un comentario, no dudes en seguirme o hacerme un comentario referenci\u00c3\u0083\u00c2\u00a1ndome a <strong><a href=\"https:\/\/twitter.com\/gatreyu\">Rafael Piernagorda<\/a><\/strong><\/p>\n\n\n\n<div class=\"wp-block-ugb-cta ugb-cta ugb-bb4d14a ugb-cta ugb-cta--v2 ugb-cta--design-plain ugb-main-block\"><style>.ugb-bb4d14a .ugb-button{border-radius:4px !important}.ugb-bb4d14a .ugb-button:before{border-radius:4px !important}<\/style><div class=\"ugb-inner-block\"><div class=\"ugb-block-content\"><div class=\"ugb-cta__item\"><h3 class=\"ugb-cta__title\">\u00bfTe gustar\u00ed\u00ada saber c\u00f3mo podr\u00eda encajar Hadoop con tu proyecto? <\/h3><p class=\"ugb-cta__description\">Contacta con nosotros y te ayudaremos con tu proyecto de Hadoop <\/p><div class=\"ugb-button-container\"><a class=\"ugb-button ugb-button--size-normal\" href=\"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/#contactUs\" rel=\"\" title=\"\"><span class=\"ugb-button--inner\">Contacta con nosotros<\/span><\/a><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>La verdad es que cuando comenzamos a crear nuestro primer ETL con Hadoop, las primeras herramientas que analizamos trabajaban sobre MapReduce, y cuando dije que trabajaban, digo que no se &#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[16,18,20,22],"class_list":["post-350","post","type-post","status-publish","format-standard","hentry","category-uncategorized-es","tag-arquitectura-es","tag-hadoop-es","tag-mapreduce-es","tag-spark-es"],"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","onepress-blog-small":"","onepress-small":"","onepress-medium":""},"post_excerpt_stackable_v2":"<p>La verdad es que cuando comenzamos a crear nuestro primer ETL con Hadoop, las primeras herramientas que analizamos trabajaban sobre MapReduce, y cuando dije que trabajaban, digo que no se pod\u00eda utilizar otra herramienta [m\u00e1s adelante, se pudo cambiar, pero en aquel momento no]. Hive, Sqoop, etc.. todas ellas, trabajaban exclusivamente con MapReduce.\u00a0 Obviamente MapReduce era un motor incre\u00edble de computaci\u00f3n, con varios a\u00f1os en sistemas de producci\u00f3n, y eso da estabilidad. Y a los arquitectos de sistemas, eso nos encanta\u2026 bueno, a los arquitectos de sistemas poco atrevidos. En aquel momento, lleg\u00f3 a mis o\u00eddos una nueva herramienta, un&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/category\/uncategorized-es\/\" rel=\"category tag\">Uncategorized<\/a>","author_info_v2":{"name":"Digital Drimz","url":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/author\/digitaldrimz\/"},"comments_num_v2":"0 comments","_links":{"self":[{"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/posts\/350"}],"collection":[{"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/comments?post=350"}],"version-history":[{"count":13,"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/posts\/350\/revisions"}],"predecessor-version":[{"id":394,"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/posts\/350\/revisions\/394"}],"wp:attachment":[{"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/media?parent=350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/categories?post=350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.digitaldrimz.com\/tusociotecnologico\/wp-json\/wp\/v2\/tags?post=350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}