Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Si estás leyendo este libro, no te sorprenderá que estemos en medio de una revolución en la forma en que se almacenan y procesan los datos en la empresa. Como sabe cualquiera que lleve algún tiempo en TI, las tecnologías y los enfoques que subyacen al procesamiento y almacenamiento de datos siempre están evolucionando. Sin embargo, en los últimos 10 ó 15 años, el ritmo del cambio ha sido notable. Hemos pasado de un mundo en el que casi todos los datos empresariales se procesaban y analizaban utilizando variantes de SQL y estaban contenidos en algún tipo de base de datos relacional, a otro en el que los datos de una empresa pueden encontrarse en una variedad de los llamados motores de almacenamiento NoSQL. Cada uno de estos motores sacrifica alguna restricción del modelo relacional para conseguir un rendimiento y una escalabilidad superiores para un determinado caso de uso. El panorama moderno de los datos incluye almacenes no relacionales de clave-valor, sistemas de archivos distribuidos, bases de datos columnares distribuidas, almacenes de registros y almacenes de documentos, además de las bases de datos relacionales tradicionales. Los datos de estos sistemas se explotan de múltiples formas y se procesan mediante algoritmos distribuidos de procesamiento por lotes, procesamiento de flujos, motores de consulta de procesamiento paralelo masivo, búsquedas de texto libre y conductos de aprendizaje automático.
Hay muchos motores para esta transformación, pero los predominantes son:
- Volumen
-
La expresión big data se ha utilizado demasiado para que conserve mucho valor, pero el enorme volumen de datos que generan las empresas actuales, especialmente las que tienen una fuerte presencia en la web -es decir, todas las empresas-, es asombroso. La explosión de datos procedentes de la computación de perímetro y de los dispositivos del Internet de las Cosas (IoT) no hará sino aumentar el volumen. Aunque almacenar los datos de la forma más granular posible puede no parecer útil a primera vista, cada vez será más importante para obtener nuevas perspectivas. El almacenamiento es barato, y las malas decisiones que tienen consecuencias duraderas son costosas. Es mejor almacenar con total fidelidad con una plataforma de datos moderna y tener la opción de tomar una nueva decisión más tarde. Las arquitecturas tradicionales basadas en bases de datos relacionales y almacenamiento de archivos compartidos son sencillamente incapaces de almacenar y procesar datos a estas escalas. Esto ha llevado directamente al desarrollo de nuevas herramientas y técnicas en las que los cálculos son linealmente escalables y distribuidos por defecto.
- Velocidad
-
Atrás quedaron los días en que los datos para el análisis llegaban en lotes diarios ordenados. Aunque esto sigue ocurriendo con algunos conjuntos de datos, cada vez más los datos llegan en forma de flujo a gran velocidad. La velocidad de su generación exige una nueva forma de almacenarlos, procesarlos y servirlos.
- Variedad
-
Las nuevas percepciones y los nuevos modelos se alimentan de datos: cuantos más, mejor. Cada vez hay más demanda de fuentes de datos hasta ahora sin explotar, quizá en formas semiestructuradas o completamente desestructuradas. Todos los aspectos del funcionamiento de una empresa son fuentes de información relevantes y potencialmente valiosas para obtener nuevos conocimientos y, en última instancia, ingresos. Es esencial disponer de una plataforma única y unificada con tecnologías capaces de almacenar y procesar todas estas muchas y variadas formas de datos.
- Concurso
-
Las empresas que triunfarán en la era de los datos serán las que creen nuevas estrategias y productos empresariales y, sobre todo, las que tomen decisiones basadas en la información obtenida de nuevas fuentes de datos. Para tomar las decisiones correctas basadas en los datos, necesitas una sólida plataforma de datos y cálculo. Dicha plataforma debe ser capaz de adoptar implementaciones tanto en las instalaciones como en la nube. También tiene que escalar para soportar la analítica de datos tradicional y permitir avances en tu negocio a partir de la ciencia de datos, el aprendizaje automático y la inteligencia artificial (IA).
Algunos conceptos erróneos
No hemos hecho más que empezar nuestra exploración de Hadoop en la empresa, pero merece la pena disipar desde el principio algunos conceptos erróneos comunes sobre las plataformas de datos y Hadoop:
- Los datos en Hadoop no tienen esquema
-
Aunque es cierto que muchas tecnologías del ecosistema Hadoop tienen nociones más flexibles de los esquemas y no los imponen tan estrictamente como, por ejemplo, una base de datos relacional, es un error pensar que los datos almacenados en clusters Hadoop no necesitan un esquema definido. Las aplicaciones que utilizan datos almacenados en Hadoop siguen necesitando comprender los datos que consultan, y siempre hay algún tipo de modelo o estructura de datos subyacente, ya sea implícita o explícita. Lo que sí ofrece el ecosistema Hadoop es mucha más flexibilidad en la forma de estructurar y consultar los datos. En lugar de imponer un esquema fijo global a los datos a medida que se ingieren y eliminar potencialmente cualquier campo que no coincida con el esquema, los datos obtienen su estructura de los marcos y aplicaciones que los utilizan. Este concepto suele denominarse esquema en lectura. Puedes almacenar cualquier tipo de datos en su forma bruta y luego procesarlos, transformarlos y combinarlos con otras fuentes en el mejor formato y estructura para tu caso de uso. Y si te equivocas, siempre puedes construir una nueva representación a partir de los datos en bruto.
- Una copia de los datos
-
Éste es un error muy común cuando se piensa en plataformas de datos modernas. Diferentes casos de uso requieren diferentes patrones de acceso, y esto a menudo significa almacenar los mismos conjuntos de datos de diferentes maneras utilizando diferentes motores de almacenamiento. Es una consecuencia lógica de las distintas optimizaciones que proporciona cada motor de almacenamiento. Esta duplicación de datos debe considerarse normal y aceptarse como un aspecto fundamental de la libertad de operar en el ecosistema Hadoop. Las plataformas Hadoop están diseñadas para ser escalables horizontalmente y para ser órdenes de magnitud más baratas (si el departamento informático de tu empresa tiene un enfoque sensato de las adquisiciones, claro) que las alternativas propietarias. Pero el dinero que te ahorras en almacenamiento es sólo un aspecto -quizá ni siquiera el más importante- del cambio a una plataforma de datos moderna. Lo que también te aporta es una multitud de opciones para procesar y consultar los datos y para extraer nuevo valor mediante análisis escalables y aprendizaje automático.
- Una enorme agrupación
-
En el entusiasmo inicial de pasar a Hadoop, surgió la noción de un lago de datos único y global, en el que todos los datos se almacenaban y todo el procesamiento y las consultas se realizaban en un único clúster, que constaba potencialmente de muchos miles de máquinas. Aunque Hadoop es ciertamente capaz de escalar hasta ese número de servidores, la variedad de patrones de acceso y modos de procesar los datos no necesariamente encajan bien en un único clúster. Colocar casos de uso que requieran garantías estrictas de tiempo de finalización de consulta con otras cargas de trabajo ad hoc y variables probablemente conduzca a una experiencia insatisfactoria. Existen controles de multiarrendamiento, pero no pueden cambiar el hecho de que un conjunto finito de recursos no puede satisfacer todos los requisitos todo el tiempo. En consecuencia, debes planificar múltiples clusters que sirvan a diferentes casos de uso con patrones de procesamiento o niveles de servicio similares. Sin embargo, no vayas demasiado lejos en el sentido contrario. Muchos clusters pequeños pueden ser tan malos como un "único cluster para gobernarlos a todos". Los clusters pueden y deben compartirse, pero prepárate para dividir y conquistar cuando sea necesario.
Algunas tendencias generales
Las tendencias de la industria son evidentes. Muchas empresas, si no la mayoría, ya se han embarcado en sus viajes impulsados por los datos y están haciendo grandes inversiones en hardware, software y servicios. Se prevé que el mercado de los macrodatos siga creciendo a buen ritmo, hasta alcanzar unos 90.000 millones de dólares de ingresos anuales en 2025. Los mercados relacionados, como el aprendizaje profundo y la inteligencia artificial, que son posibles gracias a las plataformas de datos, también experimentarán un crecimiento exponencial durante la próxima década.
El paso a Hadoop, y a las plataformas de datos modernas en general, ha coincidido con una serie de tendencias seculares en la TI empresarial, una selección de las cuales se analizan aquí. Algunas de estas tendencias están directamente causadas por el enfoque en big data, pero otras son el resultado de una multitud de otros factores, como el deseo de reducir los costes de software, consolidar y simplificar las operaciones de TI, y reducir drásticamente el tiempo necesario para adquirir nuevo hardware y recursos para nuevos casos de uso.
Escala horizontal
Esta tendencia ya está bien establecida. Ahora se acepta generalmente que, para el almacenamiento y el procesamiento de datos, la forma correcta de escalar una plataforma es hacerlo horizontalmente utilizando clusters distribuidos de servidores commodity (lo que no significa necesariamente los más baratos) en lugar de verticalmente con máquinas cada vez más potentes. Aunque algunas cargas de trabajo, como el aprendizaje profundo, son más difíciles de distribuir y paralelizar, aún pueden beneficiarse de un montón de máquinas con muchos núcleos, RAM y GPU, y los datos que impulsan dichas cargas de trabajo se ingestarán, limpiarán y prepararán en entornos escalables horizontalmente.
Adopción del código abierto
Aunque el software propietario siempre tendrá su lugar, las empresas han llegado a apreciar las ventajas de situar el software de código abierto en el centro de sus estrategias de datos, con sus consiguientes ventajas de transparencia y libertad de datos. Cada vez más, las empresas -especialmente los organismos del sector público- exigen que los nuevos proyectos se construyan con tecnologías de código abierto en su núcleo.
Adoptar la computación en nube
Hemos llegado a un punto de inflexión en el uso de los servicios de nube pública. Estos servicios han alcanzado un nivel de madurez en capacidad y seguridad en el que incluso los sectores regulados, como la sanidad y los servicios financieros, se sienten cómodos ejecutando buena parte de sus cargas de trabajo en la nube. Las soluciones en la nube pueden tener ventajas considerables sobre las soluciones locales, en términos de agilidad, escalabilidad y rendimiento. La posibilidad de imputar el uso de la nube a los gastos operativos -y no a los de capital-, aunque los costes puedan ser considerables a largo plazo, es también un factor importante para su adopción. Pero aunque el uso de los servicios de la nube pública está creciendo y seguirá haciéndolo, es poco probable que se convierta en omnipresente. Algunas cargas de trabajo tendrán que permanecer en clústeres locales tradicionales o en nubes privadas. En el panorama actual, las plataformas de datos tendrán que poder funcionar de forma transparente en las instalaciones, en la nube pública y en implementaciones de nube privada.
Nota
Se están produciendo muchos avances interesantes en las Implementaciones basadas en la nube, sobre todo en torno a las nuevas formas de implementar y ejecutar marcos de trabajo utilizando la contenedorización, como puede hacerse con Docker y Kubernetes. Puesto que aún no se han adoptado de forma generalizada en las empresas, y puesto que aún están surgiendo buenas prácticas y patrones de implementación, no cubrimos estas tecnologías con gran detalle en este libro, pero recomendamos seguir de cerca los avances en este espacio.
Computación y almacenamiento desacoplados
El deseo de desacoplar la computación del almacenamiento está estrechamente relacionado con el paso a la computación en nube. En sus primeros años, cuando las redes de alto rendimiento eran relativamente raras y muchos casos de uso de datos estaban limitados por el ancho de banda del disco, los clústeres Hadoop empleaban casi exclusivamente almacenamiento de conexión directa (por buenas razones, como veremos en próximos capítulos). Sin embargo, la migración de muchas cargas de trabajo a la nube pública ha abierto nuevas formas de interactuar con los datos persistentes que aprovechan sus sistemas de almacenamiento en red altamente eficientes, hasta el punto de que la computación y el almacenamiento pueden escalarse independientemente para muchas cargas de trabajo. Esto significa que la plataforma de datos del futuro tendrá que ser flexible en cómo y desde dónde permite acceder a los datos, ya que a los datos de los clústeres de almacenamiento accederán tanto los clústeres de cálculo locales como los remotos.
¿De qué trata este libro?
Cuando hablábamos de escribir este libro, pensamos seriamente en el título. Si viste los primeros borradores, sabrás que originalmente tenía un título diferente: Hadoop en la Empresa. Pero la verdad es que los clústeres son mucho más que el Sistema de Archivos Distribuidos Hadoop (HDFS), Otro Negociador de Recursos (YARN) y MapReduce. Aunque sigue siendo habitual referirse a estas plataformas como clústeres Hadoop, lo que realmente queremos decir es Hadoop, Hive, Spark, HBase, Solr y todo lo demás. La plataforma de datos moderna consiste en una multitud de tecnologías, y unirlas puede ser una tarea desalentadora.
También puede que te preguntes por qué necesitamos otro libro más sobre Hadoop y las tecnologías que lo rodean. ¿No están estas cosas ya bien tratadas -incluso exhaustivamente- en la literatura, la blogosfera y el circuito de conferencias? La respuesta es sí, hasta cierto punto. No hay escasez de material que cubra el funcionamiento interno de las propias tecnologías y el arte de diseñar aplicaciones de datos y aplicarlas a nuevos casos de uso. También hay material para administradores de sistemas sobre el funcionamiento de los clusters. Sin embargo, hay mucho menos contenido sobre cómo integrar con éxito los clusters Hadoop en un contexto empresarial.
Nuestro objetivo al escribir este libro es equiparte para que arquitectures, construyas, integres y ejecutes con éxito plataformas de datos empresariales modernas. Nuestra experiencia prestando servicios profesionales para Hadoop y sus servicios asociados durante los últimos cinco años o más ha demostrado que existe una gran falta de orientación tanto para el arquitecto como para el profesional. Emprender estas tareas sin una mano que las guíe puede conducir a costosos errores de arquitectura, un rendimiento decepcionante de las aplicaciones o la falsa impresión de que dichas plataformas no están preparadas para la empresa. Queremos hacer que tu viaje hacia el big data en general, y hacia Hadoop en particular, sea lo más fluido posible.
¿Quién debería leer este libro?
En este libro cubrimos mucho terreno. Algunas secciones son principalmente técnicas, mientras que otras tratan de la práctica y la arquitectura a un nivel superior. El libro lo puede leer cualquiera que trate con Hadoop como parte de su trabajo diario, pero teníamos en mente los siguientes públicos principales cuando escribimos el libro:
- Responsables informáticos
-
Cualquiera que sea responsable de entregar y operar clusters Hadoop en empresas (Capítulos 1, 2, 5 y 14)
- Arquitectos de empresa
-
Aquellos cuyo trabajo consiste en asegurarse de que todos los aspectos del clúster Hadoop se integran y gelifican con los demás sistemas de la empresa y que deben garantizar que el clúster funciona y se gobierna de acuerdo con las normas de la empresa (Capítulos 1-4, 6-7 y 9-18).
- Arquitectos de aplicaciones e ingenieros de datos
-
Desarrolladores y arquitectos que diseñen la próxima generación de aplicaciones basadas en datos y quieran saber cuál es la mejor forma de encajar su código en Hadoop y aprovechar sus capacidades (Capítulos1-2, 9-13 y 17-18).
- Administradores de sistemas y administradores de bases de datos (DBA)
-
Quienes se encargan del funcionamiento y monitoreo de los clusters y necesitan conocer en profundidad cómo funcionan juntos los componentes del cluster y cómo interactúan con el hardware subyacente y los sistemas externos (Capítulos 1, 3, 4 y 6-18).
Hemos señalado los capítulos especialmente relevantes, pero los lectores no deben sentirse limitados por esa selección. Cada capítulo contiene información de interés para cada público.
El camino por recorrer
Este libro trata de todo lo relacionado con la arquitectura. Lo hemos dividido en tres partes. En la Parte I, establecemos una base sólida para los clústeres examinando la infraestructura subyacente. En la Parte II, examinamos la plataforma en su conjunto y cómo construir un clúster sólido como una roca que se integre sin problemas con sistemas externos. Por último, en la Parte III, cubrimos los aspectos arquitectónicos importantes de la ejecución de Hadoop en la nube. Comenzamos con una introducción técnica sobre Hadoop y el ecosistema.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Safari O'Reilly
Nota
Safari (antes Safari Books Online) es una plataforma de formación y referencia basada en membresías para empresas, administraciones públicas, educadores y particulares.
Los miembros tienen acceso a miles de libros, vídeos de formación, rutas de aprendizaje, tutoriales interactivos y listas de reproducción de más de 250 editoriales, como O'Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, Jones & Bartlett y Course Technology, entre otras. Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett y Course Technology, entre otras.
Para más información, visita http://oreilly.com/safari.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en http://bit.ly/architectingModernDataPlatforms.
Para hacer comentarios o preguntas técnicas sobre este libro, envía un correo electrónico a bookquestions@oreilly.com.
Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://www.youtube.com/oreillymedia
Agradecimientos
El principal objetivo de este libro es ayudar a nuestros lectores a tener éxito en la integración de Hadoop en la empresa. Para ello, hemos tenido que ir más allá de los hechos y especificaciones técnicas para dar consejos prácticos, que son, en esencia, una descripción de cómo se hace big data en la TI empresarial. Esto habría sido completamente imposible sin la ayuda de muchas personas experimentadas que llevan mucho tiempo practicando big data, entre ellas muchos de nuestros actuales y antiguos colegas, clientes y otros expertos del sector. Nos sentimos privilegiados por haber podido confiar en sus conocimientos y experiencia cuando llegamos al límite de los nuestros.
Gracias a Jörg Grauvogl, Werner Schauer, Dwai Lahiri y Travis Campbell por proporcionarnos tantos comentarios y buenas prácticas sobre redes, nubes privadas y diseño de centros de datos. También nos gustaría dar las gracias a Stefan Letz y Roelf Zomerman por discutir y responder pacientemente a nuestras numerosas preguntas sobre nubes públicas. Un agradecimiento especial a Andrew Wang por su gran ayuda en los entresijos de la codificación de borrado de HDFS y sus capacidades para lecturas de copia cero. Gracias también a Dominik Meyer, Alexis Moundalexis, Tristan Stevens y Mubashir Kazia.
También debemos dar las gracias al increíble equipo de O'Reilly: Marie Beaugureau, Nicole Tache y Michele Cronin; muchas gracias por vuestro incesante empuje y supervisión. Sin vosotras, estaríamos perdidos en el espacio. Gracias adicionales a Kristen Brown, Colleen Cole, Shannon Wright y Nick Adams.
Nuestro más profundo agradecimiento a nuestros revisores: David Yahalom, Frank Kane, Ryan Blue, Jesse Anderson, Amandeep Khurana y Lars Francke. Han invertido gran parte de su valioso tiempo en leer este trabajo y en proporcionarnos comentarios inestimables, independientemente de la amplitud de los temas.
Ahora nuestros agradecimientos individuales:
- Ian Buss
-
Por apoyarme durante todo el proceso tanto con tiempo como con ánimos, estoy sumamente agradecido a mi empleador, Cloudera, y, en particular, a Hemal Kanani y a mis colegas de Nueva York, Jeremy Beard, Ben Spivey y Jeff Shmain, por las conversaciones y las bromas. Gracias también a Michael Ernest por proporcionarme muchos consejos sobre "estilo verbal".
Como ocurre con muchas cosas en la vida, escribir un libro es siempre más trabajo del esperado, pero ha sido un raro privilegio poder trabajar con mis compañeros autores, Jan, Paul y Lars. Gracias por las reseñas, las discusiones y todo el duro trabajo que habéis realizado... y por la camaradería. Ha sido divertido.
Por último -y lo más importante- quiero dar las gracias a mi maravillosa familia, Jenna, Amelia y Sebastian. Gracias por permitirme embarcarme en este proyecto, por vuestro amor, apoyo y ánimo infalibles durante todo el largo proceso, y por no pronunciar nunca una palabra de queja por las tardes, fines de semana y vacaciones perdidos -ni siquiera cuando descubristeis que, a pesar de su portada, el libro no trataba de pájaros-. Este libro es para vosotros.
- Jan Kunigk
-
Para Dala, Ilai, Katy y André. Gracias por creer en mí.
También me gustaría expresar mi gratitud a mis compañeros autores: Ian, Paul y Lars: hemos pasado por lo bueno y lo malo, hemos aprendido mucho sobre quiénes somos y hemos conseguido mantener la calma. Para mí es un honor trabajar con vosotros.
- Paul Wilkinson
-
A mi familia, Sarah, Tom y Evie: gracias. Escribir este libro ha sido un raro privilegio, pero, sin duda, el mayor sacrificio para hacerlo posible ha sido el vuestro. Por ello, por vuestra paciencia y por vuestro apoyo, os estoy verdaderamente agradecido.
También estoy increíblemente agradecido a mis coautores, Jan, Ian y Lars. No me cabe duda de que este libro se vería muy mermado sin vuestras aportaciones, y no sólo en número de palabras. Vuestra amistad y camaradería significan mucho para mí.
Por último, ésta es también una oportunidad excepcional para dar las gracias a los miles de personas que me han apoyado. A todos mis amigos, profesores, conferenciantes, clientes y colegas: cada uno de vosotros ha desempeñado un papel importante en mi vida, moldeando mi pensamiento y mi comprensión, aunque no seáis conscientes de ello. ¡Gracias a todos!
- Lars George
-
Esto es para mi querida familia, Katja, Laura y León. Gracias por seguir conmigo, aunque haya incumplido promesas o os haya descuidado en el proceso: sois el mundo para mí.
Gracias también a mis coautores, Doc Ian, Tenacious Jan y "Brummie" Paul, que no sólo son antiguos colegas míos, sino también amigos de por vida. Vosotros lo habéis hecho posible, y estoy agradecido por formar parte de ello.
Y a todas las personas de O'Reilly por su paciencia con nosotros, a los revisores por su inquebrantable ayuda, y a todas las personas detrás de Hadoop y big data que construyeron este ecosistema: gracias. Nos mantenemos firmes sobre vuestros hombros.
A pesar de su enorme complejidad, el ecosistema Hadoop ha facilitado una rápida adopción de los sistemas distribuidos en la TI empresarial. Estamos encantados de formar parte de este viaje entre las excelentes personas que nos han ayudado a transmitir lo que sabemos sobre este campo. El big data empresarial ha alcanzado una altitud de crucero, pero, sin duda, la innovación en los marcos de software de procesamiento de datos, la cantidad de datos y su valor seguirán disparándose más allá de lo que hoy imaginamos.
¡Esto es sólo el principio!
Get Arquitectura de plataformas de datos modernas now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.