|
181 | 181 | }, |
182 | 182 | "source": [ |
183 | 183 | "- Tecnología de gestión de clústeres en Hadoop de segunda generación.\n", |
184 | | - "- La idea de YARN es dividir las funcionalidades de gestión de recursos y programación/supervisión de trabajos en demonios separados: un ResourceManager (RM) global y un ApplicationMaster (AM) por aplicación.\n", |
| 184 | + "- La idea de YARN es dividir las funcionalidades de gestión de recursos y programación/supervisión de trabajos en demonios separados: un *ResourceManager (RM)* global y un *ApplicationMaster (AM)* por aplicación.\n", |
185 | 185 | "- Una aplicación es un solo trabajo o un DAG de trabajos.\n", |
186 | | - "- El ResourceManager y el NodeManager forman el framework de cálculo de datos. " |
| 186 | + "- El *ResourceManager* y el *NodeManager* forman el framework de cálculo de datos. " |
187 | 187 | ] |
188 | 188 | }, |
189 | 189 | { |
190 | 190 | "cell_type": "markdown", |
191 | | - "id": "81955e2c", |
| 191 | + "id": "e3337ce9", |
192 | 192 | "metadata": { |
193 | 193 | "slideshow": { |
194 | | - "slide_type": "fragment" |
| 194 | + "slide_type": "slide" |
195 | 195 | } |
196 | 196 | }, |
197 | 197 | "source": [ |
198 | | - "- Fuente: <https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html>" |
| 198 | + "- El *ResourceManager* arbitra los recursos entre todas las aplicaciones del sistema.\n", |
| 199 | + "- El *NodeManager* es el agente del framework por máquina que es responsable de los contenedores, monitorea el uso de sus recursos (CPU, memoria, disco, red) e informa al *ResourceManager / Scheduler*. " |
199 | 200 | ] |
200 | 201 | }, |
201 | 202 | { |
202 | 203 | "cell_type": "markdown", |
203 | | - "id": "e3337ce9", |
| 204 | + "id": "e70c52c4", |
204 | 205 | "metadata": { |
205 | 206 | "slideshow": { |
206 | 207 | "slide_type": "slide" |
207 | 208 | } |
208 | 209 | }, |
209 | 210 | "source": [ |
210 | | - "- El ResourceManager arbitra los recursos entre todas las aplicaciones del sistema.\n", |
211 | | - "- El NodeManager es el agente del framework por máquina que es responsable de los contenedores, monitorea el uso de sus recursos (cpu, memoria, disco, red) e informa al ResourceManager / Scheduler. " |
| 211 | + "- La aplicación *ApplicationMaster* es en efecto una biblioteca específica del framework y tiene la tarea de negociar recursos del *ResourceManager* y trabajar con los *NodeManagers* para ejecutar y monitorear las tareas." |
212 | 212 | ] |
213 | 213 | }, |
214 | 214 | { |
215 | 215 | "cell_type": "markdown", |
216 | | - "id": "e70c52c4", |
| 216 | + "id": "81955e2c", |
217 | 217 | "metadata": { |
218 | 218 | "slideshow": { |
219 | | - "slide_type": "slide" |
| 219 | + "slide_type": "fragment" |
220 | 220 | } |
221 | 221 | }, |
222 | 222 | "source": [ |
223 | | - "- La aplicación ApplicationMaster es en efecto una biblioteca específica del framework y tiene la tarea de negociar recursos del ResourceManager y trabajar con los NodeManager(s) para ejecutar y monitorear las tareas." |
| 223 | + "- Fuente: <https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html>" |
224 | 224 | ] |
225 | 225 | }, |
226 | 226 | { |
|
264 | 264 | } |
265 | 265 | }, |
266 | 266 | "source": [ |
267 | | - "- Consta de un único ResourceManager maestro, un NodeManager trabajador por nodo de clúster y MRAppMaster por aplicación.\n", |
| 267 | + "- Consta de un único *ResourceManager* maestro, un *NodeManager* trabajador por nodo de clúster y *MRAppMaster* por aplicación.\n", |
268 | 268 | "- Las aplicaciones especifican las ubicaciones de entrada/salida y el mapa de suministro y reducen las funciones a través de implementaciones de interfaces apropiadas y/o clases abstractas.\n", |
269 | 269 | "- Estos y otros parámetros del trabajo comprenden la configuración del trabajo." |
270 | 270 | ] |
|
278 | 278 | } |
279 | 279 | }, |
280 | 280 | "source": [ |
281 | | - "- El cliente de trabajo de Hadoop luego envía el trabajo (jar/ejecutable, etc.) y la configuración al ResourceManager, que entonces asume la responsabilidad de distribuir el software/configuración a los trabajadores, programar tareas y monitorearlas, proporcionando estado e información de diagnóstico al trabajo-cliente." |
| 281 | + "- El cliente de trabajo de Hadoop luego envía el trabajo (jar/ejecutable, etc.) y la configuración al *ResourceManager*, que entonces asume la responsabilidad de distribuir el software/configuración a los trabajadores, programar tareas y monitorearlas, proporcionando estado e información de diagnóstico al trabajo-cliente." |
282 | 282 | ] |
283 | 283 | }, |
284 | 284 | { |
|
290 | 290 | } |
291 | 291 | }, |
292 | 292 | "source": [ |
293 | | - "- Las aplicaciones de MapReduce no necesitan estar escritas en Java.\n", |
294 | | - "- Hadoop Streaming es una utilidad que permite a los usuarios crear y ejecutar trabajos con cualquier ejecutable (por ejemplo, utilidades de shell) como mapeador y/o reductor.\n", |
295 | | - "- Hadoop Pipes es una API C++ compatible con SWIG para implementar aplicaciones MapReduce (no basadas en JNI™)." |
| 293 | + "- Las aplicaciones de *MapReduce* no necesitan estar escritas en Java.\n", |
| 294 | + "- Hadoop *Streaming* es una utilidad que permite a los usuarios crear y ejecutar trabajos con cualquier ejecutable (por ejemplo, utilidades de shell) como mapeador y/o reductor.\n", |
| 295 | + "- Hadoop *Pipes* es una API C++ compatible con SWIG para implementar aplicaciones *MapReduce* (no basadas en JNI™)." |
296 | 296 | ] |
297 | 297 | }, |
298 | 298 | { |
|
305 | 305 | }, |
306 | 306 | "source": [ |
307 | 307 | "- Entradas y salidas:\n", |
308 | | - "- El framework MapReduce opera exclusivamente en pares <clave, valor>, es decir, el framework ve la entrada del trabajo como un conjunto de pares <clave, valor> y produce un conjunto de pares <clave, valor> como la salida de el trabajo, posiblemente de diferentes tipos." |
| 308 | + "- El framework *MapReduce* opera exclusivamente en pares <clave, valor>, es decir, el framework ve la entrada del trabajo como un conjunto de pares <clave, valor> y produce un conjunto de pares <clave, valor> como la salida de el trabajo, posiblemente de diferentes tipos." |
309 | 309 | ] |
310 | 310 | }, |
311 | 311 | { |
|
567 | 567 | " - Extraído de: <https://spark.apache.org/>." |
568 | 568 | ] |
569 | 569 | }, |
| 570 | + { |
| 571 | + "cell_type": "markdown", |
| 572 | + "id": "ffd99109-653e-4ca9-8a92-f8f1b4241df4", |
| 573 | + "metadata": {}, |
| 574 | + "source": [ |
| 575 | + "- Sus funcionalidades básicas son:\n", |
| 576 | + " - Procesamiento de datos en *batch/streaming* utilizando Python, SQL, Scala, Java o R.\n", |
| 577 | + " - Analíticas mediante SQL ejecutando consultas para *dashboards* e informes más rápidas que la mayoría de los *data warehouses*.\n", |
| 578 | + " - Ciencia de datos en escala realizando *Exploratory Data Analysis - EDA* con petabytes de datos.\n", |
| 579 | + " - *Machine Learning* para entrenar algoritmos en un ordenador portátil usando el mismo código que luego se utilizará en clústeres de miles de máquinas." |
| 580 | + ] |
| 581 | + }, |
570 | 582 | { |
571 | 583 | "cell_type": "markdown", |
572 | 584 | "id": "41e63a7c", |
|
576 | 588 | } |
577 | 589 | }, |
578 | 590 | "source": [ |
579 | | - "- También es compatible con un amplio conjunto de herramientas de alto nivel, que incluyen Spark SQL para SQL y procesamiento de datos estructurados, MLlib para aprendizaje automático, GraphX para procesamiento de gráficos y transmisión estructurada para procesamiento incremental y de streaming." |
| 591 | + "- También es compatible con un amplio conjunto de herramientas de alto nivel, que incluyen:\n", |
| 592 | + " - Spark SQL para SQL y procesamiento de datos estructurados, \n", |
| 593 | + " - MLlib para aprendizaje automático, \n", |
| 594 | + " - GraphX para procesamiento de gráficos, y \n", |
| 595 | + " - Transmisión estructurada para procesamiento incremental y de streaming." |
580 | 596 | ] |
581 | 597 | }, |
582 | 598 | { |
|
932 | 948 | "- Las topologías y los componentes de procesamiento de Storm se pueden definir en cualquier idioma, lo que hace que Storm sea accesible para casi cualquier persona." |
933 | 949 | ] |
934 | 950 | }, |
935 | | - { |
936 | | - "cell_type": "markdown", |
937 | | - "id": "f14c26e0", |
938 | | - "metadata": { |
939 | | - "slideshow": { |
940 | | - "slide_type": "slide" |
941 | | - } |
942 | | - }, |
943 | | - "source": [ |
944 | | - "## Storm vs. Spark" |
945 | | - ] |
946 | | - }, |
947 | | - { |
948 | | - "cell_type": "markdown", |
949 | | - "id": "0f90c48b", |
950 | | - "metadata": { |
951 | | - "slideshow": { |
952 | | - "slide_type": "slide" |
953 | | - } |
954 | | - }, |
955 | | - "source": [ |
956 | | - "| Situación | Spark | Storm |\n", |
957 | | - "|------- | ---------------- | -------- | \t\t\t\n", |
958 | | - "| Stream processing | Batch processing | Micro-batch processing |\n", |
959 | | - "| Latency | Latency of a few seconds | Latency of milliseconds |\n", |
960 | | - "| Multi-language support | Lesser language support | Multiple language support |\n", |
961 | | - "| Languages | Java – Scala | Java – Scala – Clojure |\n", |
962 | | - "| Stream sources | HDFS | Spout |\n", |
963 | | - "| Resource management | Yarn, Mesos | Yarn, Mesos |\n", |
964 | | - "| Provisioning | Basic using Ganglia | Apache Ambari |\n", |
965 | | - "| Messaging | Netty, Akka | ZeroMQ, Netty |" |
966 | | - ] |
967 | | - }, |
968 | 951 | { |
969 | 952 | "cell_type": "markdown", |
970 | 953 | "id": "d8754350", |
|
1013 | 996 | }, |
1014 | 997 | "source": [ |
1015 | 998 | "- Alto rendimiento: \n", |
1016 | | - " - Entregue mensajes con un rendimiento limitado de la red utilizando un grupo de máquinas (cluster) con una latencia de tan solo 2 ms." |
| 999 | + " - Entrega mensajes con un rendimiento limitado de la red utilizando un grupo de máquinas (cluster) con una latencia de tan solo 2 ms." |
1017 | 1000 | ] |
1018 | 1001 | }, |
1019 | 1002 | { |
|
1025 | 1008 | } |
1026 | 1009 | }, |
1027 | 1010 | "source": [ |
1028 | | - "- Escalable\n", |
| 1011 | + "- Escalable:\n", |
1029 | 1012 | " - Es posible escalar clústeres de producción con hasta mil brokers, billones de mensajes por día, petabytes de datos, cientos de miles de particiones.\n", |
1030 | 1013 | " - También expandir y contraer elásticamente el almacenamiento y procesamiento." |
1031 | 1014 | ] |
|
1039 | 1022 | } |
1040 | 1023 | }, |
1041 | 1024 | "source": [ |
1042 | | - "- Almacenamiento permanente\n", |
1043 | | - " - Almacene flujos de datos de forma segura en un clúster distribuido, duradero y tolerante a fallas." |
| 1025 | + "- Almacenamiento permanente:\n", |
| 1026 | + " - Almacena flujos de datos de forma segura en un clúster distribuido, duradero y tolerante a fallas." |
1044 | 1027 | ] |
1045 | 1028 | }, |
1046 | 1029 | { |
|
1052 | 1035 | } |
1053 | 1036 | }, |
1054 | 1037 | "source": [ |
1055 | | - "- Alta disponibilidad\n", |
1056 | | - " - Estire los clústeres de manera eficiente sobre las zonas de disponibilidad o conecte clústeres separados en regiones geográficas." |
| 1038 | + "- Alta disponibilidad:\n", |
| 1039 | + " - Extiende los clústeres de manera eficiente sobre las zonas de disponibilidad o los conecta separados en regiones geográficas." |
1057 | 1040 | ] |
1058 | 1041 | }, |
1059 | 1042 | { |
|
1065 | 1048 | } |
1066 | 1049 | }, |
1067 | 1050 | "source": [ |
1068 | | - "- Procesamiento de flujo incorporado\n", |
1069 | | - " - Procese secuencias de eventos con uniones, agregaciones, filtros, transformaciones y más, utilizando el procesamiento solo una vez con el tiempo de evento." |
| 1051 | + "- Procesamiento de flujo incorporado:\n", |
| 1052 | + " - Procesa secuencias de eventos con uniones, agregaciones, filtros, transformaciones y más, utilizando el procesamiento solo una vez con el tiempo de evento." |
1070 | 1053 | ] |
1071 | 1054 | }, |
1072 | 1055 | { |
|
1078 | 1061 | } |
1079 | 1062 | }, |
1080 | 1063 | "source": [ |
1081 | | - "- Conéctese a casi cualquier cosa\n", |
| 1064 | + "- Conexión a múltiples fuentes:\n", |
1082 | 1065 | " - La interfaz *Connect* lista para usar de Kafka se integra con cientos de orígenes de eventos y receptores de eventos, incluidos PostgreSQL, JMS, Elasticsearch, AWS S3 y más." |
1083 | 1066 | ] |
1084 | 1067 | }, |
|
1091 | 1074 | } |
1092 | 1075 | }, |
1093 | 1076 | "source": [ |
1094 | | - "- Bibliotecas de clientes\n", |
| 1077 | + "- Bibliotecas de clientes:\n", |
1095 | 1078 | " - Posibilidad de Leer, escribir y procesar flujos de eventos en una amplia gama de lenguajes de programación." |
1096 | 1079 | ] |
1097 | 1080 | }, |
|
1104 | 1087 | } |
1105 | 1088 | }, |
1106 | 1089 | "source": [ |
1107 | | - "- Herramientas de código abierto para grandes ecosistemas\n", |
| 1090 | + "- Herramientas de código abierto para grandes ecosistemas:\n", |
1108 | 1091 | " - Gran ecosistema de herramientas de código abierto: existe una amplia gama de herramientas impulsadas por la comunidad." |
1109 | 1092 | ] |
1110 | 1093 | }, |
|
0 commit comments