Entradas

Mostrando las entradas de junio, 2017

WordCount usando RecordReader

Imagen
Cómo vimos en la anterior entrada por fin probamos un código del tipo MapReduce en nuestro ambiente construido a lo largo de este post. Probamos el Famoso código de WordCount, pero como se menciono en el apartado de Teoría de MapReduce, podemos utilizar pasos intermedios que un proceso MapReduce contiene, en esta nueva entrada programaremos de nuevo el WordCount, pero esta vez las palabras no vendrán de un archivo de texto que nosotros podemos copiar y poner en el, esta vez utilizaremos archivos no estructurados como archivos docx , pptx , pdf , xlsx , xls , ppt , doc las palabras  las extraeremos de estos archivos no estructurados. El código al igual que el anterior lo podrán encontrar en el siguiente link: https://github.com/NeoChoosenOne/BigDataBlogCodeWordCountRecordReader . Este código implementa el RecordReader para definir nuestra forma personalizada de leer la información de HDFS y poderla procesar a nuestra manera, definiendo nosotros nuestros pares (key,value) person...

WordCount

Imagen
Bueno después de mucha teoría les traigo el primer código del "Hola Mundo" en el BigData, la explicación de como funciona este código fue dada en la entrada de Teoría de MapReduce el código viene comentado en inglés por cuestiones de prestigio para mí, para este apartado asumo que el lector conoce java y las tecnologías usadas para el desarrollo de código el cuál se puede encontrar en el siguiente link:  https://github.com/NeoChoosenOne/BigDataBlogCodeWordCount . Aquí solo mostraré como ejecutarlo en nuestro ambiente que hemos construido hasta el momento. Para la ejecución de este código necesitamos lo siguiente: Apache Hadoop Instalado y ejecutándose. Apache YARN (No es necesario, pero para darle un poco más de seriedad a nuestro clúster) El jar del Job de wordcount programado y compilado con java. Los primeros dos requerimientos deberíamos de tenerlos listos por qué es lo de lo que he hablado en mis post pasados, nuestra máquina pseudo distribuida o nuestro clú...

MapReduce

Imagen
Este no es un componente de Apache para Big Data, pero es la Base del procesamiento de información en las herramientas de Apache en su mayoría, he mencionado mucho el término MapReduce, pero no he explicado su manera de procesar la información, antes de empezar a programar MapReduce necesitamos saber como funciona esta forma de procesamiento. La Imagen siguiente que encontré en Internet de describe casi de manera completa el flujo de un MapReduce, a continuación listaré los pasos que debe de seguir un proceso MapReduce. Input: El Input es la información Inicial. Spliting:  El   Spliting  es el encargado de dividir el archivo (s) del paso de Input en bloques para que el RecordReader trabaje con ellos. RecordReader: El   RecordReader es la forma en que se leerá un archivo de entrada ( Input ) usualmente para un archivo de Texto se leen renglones por salto de linea. Mapping: El Mapping es la parte del proceso donde tiene por entrada un par (key, value) donde us...

Apache YARN Configuración

Imagen
Apache Hadoop por defecto tiene configurado el YARN cuando hacemos una instalación como la que hemos realizado en este blog, por defecto hadoop toma todos los recursos disponibles, limitándonos a lanzar un Job en nuestro clúster aunque tengamos más recursos disponibles para más jobs, esto se puede solucionar los archivos correspondientes al YARN en los archivos de configuración de Hadoop encontraremos dos archivos importantes, el yarn-site.xml y el mapred-site.xml.template en el yarn-site.xml encontraremos propiedades relacionadas con el manejo de los recursos físicos (RAM, cores, etc) y en el mapred-site.xml encontraremos lo relacionado con la memoria virtual, ¿A qué me refiero con la memoria virtual?, a todos los recursos de la JVM. Primero configuraremos el archivo yarn-site.xml por default viene sin ninguna propiedad, como mencione este archivo controla los recursos físicos para cada container, a continuación agregaremos las siguientes propiedades de las siguientes imágenes. ...

Apache YARN

Imagen
El componente Apache YARN (Yet Another Resources Negotiator) surge con la versión de Apache Hadoop 2, usualmente conocido con su función MR2, anteriormente en la versión uno de Apache Hadoop solo nos ofrecía una forma de procesar la información, el famoso Map Reduce, Hadoop por si mismo esta configurado para tomar todos los recursos disponibles para sus jobs, ¿Qué significa esto?, Qué si queremos ejecutar dos  jobs al mismo tiempo, no se podrá, ¿Pero entonces que hace hadoop en estos casos?, Hadoop encola los jobs y cuando tiene recursos disponibles empieza la ejecución de el siguiente jobs inmediatamente. El YARN nace con la necesidad de separar las funcionalidades de un Manejador de Recursos y el Programador/Monitoreador de Tareas en diferentes demonios. Esto implicaría que tendríamos un manejador de recursos maestro (RM) y un AM(Application Master) por aplicación, una aplicación se ve definida como un job o un DAG de jobs, Pero, ¿Qué es un DAG ?, DAG (directed acyclic graph)...