CURSO: APACHE SPARK CAPÍTULO 3: SPARK CONCEPTOS BÁSICOS.

Documentos relacionados
CURSO: CURSO APACHE SPARK

CURSO PRESENCIAL EN MADRID: ARQUITECTURAS BIG DATA

INTRODUCCIÓN A APACHE SPARK CON PYTHON

MÁSTER: MÁSTER EXPERTO BIG DATA

Curso Spark. 01 Núcleo de Conceptos

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

Procesamiento de documentos XML.

CURSO PRESENCIAL: Apache Spark

Estructuras en LabVIEW.

UNIDAD 1 ESTUDIO DE UNA APLICACIÓN DISTRIBUIDA: HADOOP HDFS PARA EL ALMACENAMIENTO DE BIG DATA

Software de control y adquisición de datos SCM4000

Jesús Fernández Bes MLG 3JUN2013

MÁSTER: MÁSTER DESARROLLADOR BIG DATA

CURSO PRESENCIAL: DESARROLLADOR BIG DATA

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

JAVA 7 Los fundamentos del lenguaje Java

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Herramientas Informáticas I Software: Sistemas Operativos

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

MongoDB Up & Running

Qué es un programa informático?

Ponente Dr. Gabriel Guerrero. 8 de Diciembre de 2014 Tecnológico de Estudios Superiores de Chalco TESCHA

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

ESET Secure Authentication

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López

ANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO

Laboratorio. Instalación de Visual Studio Community. Back To Basics Instalando Visual Studio Community. Versión: 1.0.

Tema V Generación de Código

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

Tema 2 Introducción a la Programación en C.

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Análisis de sentimientos de tweets.

Aplicaciones web con MVC. Desarrollo de aplicaciones II

Tema IV El lenguaje de programación PHP Tipos de Datos

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

Implantación de soluciones de Alta Disponibilidad

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con

Curso Implementing and Maintaining Microsoft SQL Server 2008 Reporting Services (6236)

Introducción a Big Data

INSTALACIÓN Y CONFIGURACIÓN DEL SERVIDOR MCAFEE Guía paso a paso

Agente de Comunicaciones Manual de Usuario

Oracle PL/SQL. Programa de Estudio.

Guía para la instalación de discos duro SATA y Configuración RAID

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Mitos y Realidades del Big Data -Introducción al Big Data-

Arquitectura de sistemas: Título: AnalyticsMOOC- Solución TIC Big Data para entornos MOOC Número de expediente: TSI

Tema 3.1: Introducción a Servicios Web

Objetivos y Temario CURSO MySQL 5

Manual de instalación AutoFirma 1.4.3

Introducción a los Sistemas Operativos

INTRODUCCION A LA PROGRAMACION EN JAVA

1. Almacenamiento redundante

FAQS Cert/IBV. Versión /06/15. Cuidamos tu calidad de vida

PROGRAMA FORMATIVO: BIG DATA DEVELOPER CON CLOUDERA APACHE HADOOP

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...

Asumir el control de big data: soluciones de análisis y almacenamiento para obtener información de gran impacto sobre el negocio

Principios de Computadoras II

ServiceTonic. Guía de instalación

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

Visual Basic y.net: Procedimientos Sub y funciones Function. Parámetros. Organizar programas en módulos. (CU00338A)

Práctica #1 Crear Base de Datos

Reporting (objeto Query)

Manual del Integrador Contable Premium Soft

La ruta de ubicación del software es \Archivos de programa\btgtmq\driges.vce

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Sistemas de Bases de Datos 2 Practica 1

Por qué hoy me debo interesar en el lenguaje Scala?

Introducción. BDAS (Berkeley Data Analytics Stack) Fuente:

Fundamentos de Programación Visual Basic

Para realizar los procesos de cierre y apertura del ejercicio es conveniente disponer de la última versión de la aplicación es decir la V

1-Componentes Físicos y Lógicos de un Ordenador.

Manual de usuario de configuración de Navegadores para Sede Electrónica del SEPE

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

BlockChain: Una base de datos distribuida de solo escritura para mantener libros de

Sistemas Distribuidos. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

FUNDAMENTOS DE INFORMÁTICA

ANEXO APLICACIÓN DE FIRMA

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Universidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación

ENIAC, Primer computador electrónico y su panel de conexiones

El lenguaje de programación PHP Tipos de Datos. Semestre: A-2010

Elabora en un documento PDF la instalación y configuración de servicios de clusters en Windows 2008 Server.

BANCO CENTRAL DE VENEZUELA

Unidad I Marco teórico sobre redes de computadoras

Manual de turbo pascal

DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 )

Guía práctica de estudio 03: Algoritmos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Transcripción:

CURSO: APACHE SPARK CAPÍTULO 3: SPARK CONCEPTOS BÁSICOS www.formacionhadoop.com

Índice 1 Introducción a Spark 2 3 Spark Shell 2.1 SparkContext Introducción a RDDs (Resilient Distributed Datasets) 3.1 Creación de un RDD 3.2 Operaciones de un RDD 3.3 Ejecución de operaciones (Lazy Execution) 2

ÍNDICE Introducción a Spark

Apache Spark es el motor de procesamiento de datos con mayor velocidad del mercado. Gracias a el vamos a poder aprovechar todos los beneficios que nos ofrece un cluster Hadoop incrementando su rendimiento con esta gran tecnología de procesamiento de datos inmemory. Spark está desarrollado con el lenguaje de programación Scala. Gracias a esto Spark se ejecuta en la JVM. Spark Shell: Como muchas de las herramientas del ecosistema Hadoop, Spark dispone de su propia Shell para poder ejecutar sentencias y realizar procesamientos de datos. Aplicación Spark: En Spark también es posible realizar nuestras propias aplicaciones. Estas aplicaciones son destinadas a largos procesamientos de datos. Estas aplicaciones pueden ser escritas en Python, Scala o Java. 4

ÍNDICE Spark Shell

La Shell de Spark nos va a permitir interactuar con Spark y realizar procesamientos de datos más sencillos. La creación de aplicaciones se verá a lo largo del curso. Existen dos tipos de Shell: - Python Shell: pyspqrk - Scala Shell: spark-shell 6

2.1 SparkContext SparkContext es la parte principal del API de Spark. Sobre este objecto realizaremos todas las operaciones. SparkContext representa la conexión al cluster Spark, y se puede utilizar para crear DDR, acumuladores y variables de radiodifusión en ese cluster. En la imagen anterior observamos la llamada al SparContext a través de la Shell de python. El objeto context en el caso de la Shell ya está configurado. Para la creación de aplicaciones en Spark el desarrollador deberá instanciar y configurar el SparkContext (Esto lo veremos con más detalle a lo largo del curso). 7

ÍNDICE Introducción a RDDs (Resilient Distributed Datasets)

Spark gira en torno al concepto de un conjunto de datos resistente distribuido (RDDs), que es una colección de alta disponibilidad de elementos que puedan ser explotados en forma paralela. Hay dos formas de crear RDDs: Paralelización de una colección existente en el driver del programa, o que hacen referencia a un conjunto de datos en un sistema de almacenamiento externo, como puede ser un sistema de ficheros compartido, HDFS, HBase, o cualquier fuente de datos queofrezca unhadoop InputFormat. A continuación podemos ver las características más importantes de los RDDs: - Resistente: Si los datos en memoria son perdidos, existe la posibilidad de recuperarlos ( lo veremos a lo largo del curso) - Distribuido: Los datos son almacenados a lo largo del cluster: Programación paralela con Spark (lo veremos a lo largo del curso) 9

3.1 Creación de un RDD Como ya hemos comentado anteriormente, existen varias formas de generar nuestros RDDs: - Obtener datos de un fichero - Obtener datos que tengamos almacenados en memoria - Obtener los datos de otro RDD Creación de un RDD de un fichero de texto: A través de SparkContext.textFile podemos realizar las siguientes acciones: Carga de un fichero: sc.textfile( mifichero.txt ) Carga de varios ficheros: sc.textfile( misdatos/*.log ) Carga de una lista de ficheros: sc.textfile( fichero1.txt,fichero2.txt ) Cada una de las líneas de los ficheros es cargada en un registro diferente en nuestro RDD. - Uri de ficheros: - Ruta absoluta: file:/home/formacionhadoop/fichero.txt - Ruta relativa (usa el sistema de ficheros por defecto): fichero.txt En caso de no especificar un sistema de ficheros (por ejemplo, "file: /") Spark asumirá el URI es relevante al sistema de ficheros por defecto. En el caso de la CDH Spark el sistema de ficheros por defecto es el HDFS. 10

3.2 Operaciones de un RDD Existen dos tipos de operaciones en los RDDs: - Acciones (devuelven un valor): Algunas de estas acciones son: - count(): Devuelve el número de elementos del RDD - take(n): Devuelve un array con los primeros n elementos del RDD - collect(): Devuelve un array con todos los elementos del RDD - saveastextfile(fichero): Guarda el RDD en el fichero de salida - Transformaciones (genera otro RDD basado en el actual): Los RDDs son inmutables: No es posible modificar los datos de un RDD, para realizar esto habrá que ir transformando los RDDs secuencialmente. Algunas de estas transformaciones son: - map(function): Crea un nuevo RDD ejecutando la función en cada registro del RDD. - filter(function): Crea un nuevo RDD incluyendo o excluyendo los registros del RDD acorde con la función boolean. 11

3.2 Operaciones de un RDD Ejemplo de las transformaciones map y filter: 12

3.3 Ejecución de operaciones (Lazy Execution) Los datos de un RDD no son procesados hasta que una acción es ejecutada: En la imagen anterior el procesamiento de los datos no se realizará hasta que ejecutemos una acción, en este caso vamos a ejecutar una acción de tipo count(). datos = sc.textfile( fichero.txt ) result = datos.map(lambda line: line.upper()) resultfilter = result.filter(lambda line: line.startswith( A )) resultfilter.count() Es posible realizar las transformaciones concatenando las instrucciones: Datos = sc.textfile( ficheros.txt ).map(lambda line:line.upper()).filter(lambda line: \ line.startswith( A )).count() 13

Contacto administracion@formacionhadoop.com www.formacionhadoop.com TWITTER Twitter.com/formacionhadoop FACEBOOK Facebook.com/formacionhadoop LINKEDIN linkedin.com/company/formación-hadoop 14