0% encontró este documento útil (0 votos)
119 vistas20 páginas

Herramientas de Spark

Este documento describe las herramientas de Apache Spark y el sistema de archivos distribuidos HDFS. Explica que Spark es una herramienta de código abierto que se ha convertido en una de las mejores opciones para el procesamiento y análisis de grandes volúmenes de datos. También describe los componentes clave de Spark como RDDs, resiliencia, memoria compartida y más. Además, explica el sistema de archivos distribuidos HDFS, su arquitectura y cómo permite el almacenamiento de grandes cantidades de datos en clusters.

Cargado por

waldo lobos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
119 vistas20 páginas

Herramientas de Spark

Este documento describe las herramientas de Apache Spark y el sistema de archivos distribuidos HDFS. Explica que Spark es una herramienta de código abierto que se ha convertido en una de las mejores opciones para el procesamiento y análisis de grandes volúmenes de datos. También describe los componentes clave de Spark como RDDs, resiliencia, memoria compartida y más. Además, explica el sistema de archivos distribuidos HDFS, su arquitectura y cómo permite el almacenamiento de grandes cantidades de datos en clusters.

Cargado por

waldo lobos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

HERRAMIENTAS DE APACHE SPARK Y

SISTEMA ARCHIVOS DISTRIBUIDOS


HDFS

Lobos Rodas, Waldo Antonio

Universidad de El Salvador

lr03012@ues.edu.sv

Magaña Vázquez, Ángel Aroldo

Universidad de El Salvador

mv02001@ues.edu.sv

Osorio Guandique, José Antonio

Universidad de El Salvador

og99016@ues.edu.sv

Romero Rivas, David Mauricio

Universidad de El Salvador

rr13009@ues.edu.sv

DOCENTE: ING. Arnoldo Inocencio Rivas

GRUPO TEÓRICO: 01

GRUPO DE TRABAJO: 09

CIUDAD UNIVERSITARIA, MARZO 17 DE 2020


Contenido
ABSTRACT ........................................................................................................................................ 3
OBJETIVOS ....................................................................................................................................... 3
INTRODUCCION .............................................................................................................................. 5
RESULTADOS ................................................................................................................................... 5
MARCO TEORICO ........................................................................................................................ 5
Antecedentes: .............................................................................................................................. 5
BASES TEORICAS .................................................................................................................... 8
Apache Spark .............................................................................................................................. 8
Evolución de Spark Apache ........................................................................................................ 8
Componentes de Spark ................................................................................................................ 9
Sistema de Archivo Distribuidos con Hadoop .............................................................................. 11
Conceptos básicos de Hadoop ................................................................................................... 11
Arquitectura............................................................................................................................... 11
CONCLUSIONES ............................................................................................................................ 18
REFERENCIAS ................................................................................................................................ 20
ABSTRACT

Actualmente las empresas necesitan respuestas relacionadas con los datos, estamos de
acuerdo que para las empresas ya no es un problema obtener los datos y almacenarlos sino
lo procesos de análisis alrededor de ellos que les proporcionen análisis descriptivos de gran
calidad, búsquedas y capacidades más avanzadas que les permitan predecir el
comportamiento de sus consumidores, mejorar y enfocar sus estrategias de marketing,
aprovisionar sus inventarios en forma óptima, sabiendo que momentos son los apropiados,
por ejemplo, para comprar ciertas cantidades de ciertos productos, mejorar proceso internos
de la empresa implementando metodologías de tipo Machine Learning con el
procesamiento de datos y entrenamiento de modelos neuronales por mencionar algunos.
Con miras a esta incipiente necesidad de poner a disposición de casi cualquier empresa
herramientas de código abierto fueron apareciendo y poco a poco ganándose el respeto de
los científicos de datos, varias herramientas que con más o menos carencias que otras
permiten brindar análisis cuantiosos de datos con presupuestos más adecuados a empresas
medianas o hasta pequeñas, entre estas herramientas destaca por ser una de las más
utilizadas Apache Spark.
Spark, es un ecosistema aún joven que se ha convertido en poco tiempo en una de las
mejores opciones para el manejo y procesamiento de información. Una de las cualidades
más interesantes de Spark y la que lo ha convertido en una de las primeras opciones es su
capacidad de agrupar en una sola herramienta el sistema de analítica pues Spark centraliza
un gran rango de otras herramientas muy útiles en el procesamiento de Big Data y su
facilidad para implementar y manejar infraestructuras complejas como “clusters” arriba de
8000 nodos

OBJETIVOS

General:

Realizar una investigación acerca de Herramientas de Spark y su implementación

Específicos:

 Describir en qué consisten las Herramientas de Spark.

 Establecer como se hace el sistema distribuido de archivos (HDFS), MapReduce,


Hbase, Hive, HCatalog y pig

 Definir los principales cursos de Herramientas Spark


 Realizar una implementación de las Herramientas de Spark
INTRODUCCION

Con el constante crecimiento alrededor del mundo de la Big Data y la computación paralela
esta investigación describe precisamente al mayor exponente que más esta suscitando
interés en el mundo como son las Herramientas de Apache Spark y Sistemas de archivos
distribuidos HDFS.
Con el paso del tiempo, el mundo viene cambiando día a día y con ello las tecnologías. Es
por ello que en estos tiempos los seres humanos buscan como mejorar su vida cotidiana.
Desde el más pequeño hasta el más grande necesitan estar informados para tomar una
decisión. El niño que comienza la escuela, el adolescente en la universidad y el adulto en el
trabajo.
Todos necesitan recopilar grandes cantidades de información, la cual al analizarla y
procesarla contribuye en la toma de decisiones.
Se necesitan herramientas para procesarlas y analizar la información y entre las
herramientas más usadas en la actualidad se encuentran las Herramientas Spark la cual
ayuda a procesar los volúmenes de información para la toma de decisiones en las grandes
empresas.
Para comprender mejor el potencial y utilidad que seguirá adquiriendo Apache Spark que
nace en 2009, la investigación proporciona los términos necesarios para entender la
funcionabilidad que brindan sus herramientas y se muestra una implementación de un
Sistemas de Archivos Distribuidos con Hadoop.

RESULTADOS
MARCO TEORICO
Antecedentes:
Con el avance y crecimiento del mundo las empresas y organizaciones se han visto
obligadas a comprender mejor a sus clientes y usuarios, pero debido a que el mundo y las
poblaciones crecen exponencialmente se tienen millones de datos que representan a un
grupo de personas. Es de este hecho donde parte el concepto de Big Data y las muchas
tecnologías que engloban este concepto. Propiamente Big Data significa grandes
volúmenes de datos, y como se tienen estos grandes volúmenes, son necesarias tecnologías
que puedan extraer y transformar estos datos en información útil para las empresas.
Lo que hace que Big Data sea tan útil para muchas empresas es el hecho de que
proporciona respuestas a muchas preguntas que las empresas ni siquiera sabían que tenían.
En otras palabras, proporciona un punto de referencia. Con una cantidad tan grande de
información, los datos pueden ser moldeados o probados de cualquier manera que la
empresa considere adecuada. Al hacerlo, las organizaciones son capaces de identificar los
problemas de una forma más comprensible.
La recopilación de grandes cantidades de datos y la búsqueda de tendencias dentro de los
datos permiten que las empresas se muevan mucho más rápidamente, sin problemas y de
manera eficiente. También les permite eliminar las áreas problemáticas antes de que los
problemas acaben con sus beneficios o su reputación.1
Existen muchas definiciones sobre Big Data, pero los expertos concuerdan en que este
conocimiento se puede definir con cinco “Vs”, porque estos puntos reflejan la importancia
de Big Data.
 Volumen: Con la misma palabra “Big” define que son una gran cantidad de datos
que representan retos para las empresas, porque se tratan de millones de datos y
estas deben de contar con la infraestructura necesario para poder superar este reto.

 Velocidad: Teniendo millones de datos la velocidad es un tema importante porque


las organizaciones necesitan información en tiempo real, por esto es imprescindible
procesar la información en el menor tiempo posible.

 Variedad: Uno de los principales retos es que los orígenes de datos pueden ser muy
distintos y se debe conocer del tema para poder integrar estos y procesarlos, un
ejemplo de estos seria Spark que transforma los orígenes de datos en un RDD donde
se pueden manipular con mayor facilidad

 Veracidad: Una gran cantidad de datos no tiene valor si son incorrectos y puede
perjudicar a las organizaciones si se quiere tomar decisiones en base a estos datos.
Por eso es necesario que los datos sean verídicos.

 Valor: Se utiliza estas herramientas porque se espera obtener beneficios para las
empresas, por eso estos análisis necesitan generar un valor. 2

Herramientas para poner en práctica lo que es Big Data y para qué sirve en las
empresas

Big Data necesita nuevas herramientas y tecnologías que puedan abarcar la complejidad de
datos no estructurados y en continua expansión. Para ello, las tecnologías tradicionales de
1
Powerdata. (2019). Power Data. Obtenido de https://www.powerdata.es/big-data
2
Emanuele Carisio (2018). MediaCloud. Obtenido de https://blog.mdcloud.es/
base de datos relacionales, no son adecuadas. Además, se necesitan aplicaciones avanzadas
de análisis y visualización, para poder extraer todo el potencial de los datos y explotarlo
para nuestros objetivos de negocio.
A continuación, se mencionarán algunas de las principales herramientas:
Hadoop: Es una estructura de software de código abierto para almacenar datos y ejecutar
aplicaciones en clústeres de hardware comercial. Proporciona almacenamiento masivo para
cualquier tipo de datos, enorme poder de procesamiento y la capacidad de procesar tareas o
trabajos concurrentes virtualmente ilimitados. El procesamiento de datos y aplicaciones
está protegido contra fallos del hardware. Si falla un nodo, los trabajos son redirigidos
automáticamente a otros modos para asegurarse de que no falle el procesamiento
distribuido. Se almacenan múltiples copias de todos los datos de manera automática. 3
Base de datos NoSQL: están diseñadas específicamente para modelos de datos específicos
y tienen esquemas flexibles para crear aplicaciones modernas. Las bases de datos NoSQL
son ampliamente reconocidas porque son fáciles de desarrollar, por su funcionalidad y el
rendimiento a escala. Esta página incluye recursos que lo ayudan a comprender mejor las
bases de datos NoSQL y comenzar a usarlas. Las bases de datos NoSQL utilizan una
variedad de modelos de datos para acceder y administrar datos. Estos tipos de bases de
datos están optimizados específicamente para aplicaciones que requieren grandes
volúmenes de datos, baja latencia y modelos de datos flexibles, lo que se logra mediante la
flexibilización de algunas de las restricciones de coherencia de datos en otras bases de
datos. Ejemplo MongoDB o DynamoDB. 4

Apache Spark: es un framework de programación para procesamiento de datos


distribuidos diseñado para ser rápido y de propósito general. Como su propio nombre
indica, ha sido desarrollada en el marco del proyecto Apache, lo que garantiza su licencia
Open Source.
Parte de la esencia de Spark es su carácter generalista. Consta de diferentes APIs y módulos
que permiten que sea utilizado por una gran variedad de profesionales en todas las etapas
del ciclo de vida del dato.
Dichas etapas pueden incluir desde soporte para análisis interactivo de datos con SQL a la
creación de complejos pipelines de machine learning y procesamiento en streaming, todo
usando el mismo motor de procesamiento y las mismas APIs. 5
AWS Glue: Es un servicio de extracción, transformación y carga (ETL) completamente
administrado que ayuda a los clientes a preparar y cargar los datos para su análisis. Puede
crear y ejecutar un trabajo de ETL con tan solo unos clics en la consola de administración

3
Sas. (2019). Sas. Obtenido de https://www.sas.com/es_mx/insights/big-data/hadoop.html
4
Amazon Web Services. (2020). AWS. Obtenido de https://aws.amazon.com/es/nosql/
5
Miguel Moraleja Yudego. (2018). ICEMD. Obtenido de https://www.icemd.com/digital-knowledge/articulos/apache-
spark-introduccion-que-es-y-como-funciona/
de AWS. Simplemente debe apuntar AWS Glue a sus datos almacenados en AWS y AWS
Glue encontrará sus datos y almacenará los metadatos asociados (p. ej., esquemas y
definiciones de tablas) en el catálogo de datos de AWS Glue. Una vez catalogados, puede
realizar búsquedas y consultas inmediatamente en sus datos, que están disponibles para
operaciones de ETL. AWS Glue es un servicio sin servidor. No es necesario aprovisionar ni
administrar infraestructura. AWS Glue administra el aprovisionamiento, la configuración y
el escalado de los recursos necesarios para ejecutar sus trabajos de ETL en un entorno
Apache Spark totalmente administrado y escalable. Solo paga por los recursos utilizados
mientras se ejecutan los trabajos. 6

BASES TEORICAS

Apache Spark
Es una tecnología de la computación en clúster de la velocidad del rayo, diseñado para el
cálculo rápido. Está basada en Hadoop MapReduce y se extiende el modelo MapReduce
para utilizar eficientemente para más tipos de cálculos, que incluye consultas interactivas y
procesamiento de flujo. La característica principal de Spark es su clúster de computación en
memoria que aumenta la velocidad de procesamiento de la solicitud.
Spark está diseñado para cubrir una amplia gama de cargas de trabajo, tales como
aplicaciones de lotes, algoritmos iterativos, consultas interactivas y streaming. Aparte de
apoyar todas estas cargas de trabajo en un sistema respectivo, se reduce la carga de gestión
del mantenimiento de herramientas separadas
Evolución de Spark Apache
Spark es una de las sub proyecto de Hadoop desarrollado en 2009 en la Universidad de
Berkeley en laboratorios AMP de Matei Zaharia. Era de código abierto en el año 2010 bajo
una licencia BSD. Fue donada a la fundación del software de Apache en 2013, y ahora
Apache Spark se ha convertido en un proyecto de Apache alto nivel desde febrero del 2014.
7

Poco después de que el proyecto Spark tuviera éxito en laboratorios AMP, se convirtió en
código abierto en 2010 y transferido a la Apache Software Foundation en 2013.
Actualmente está siendo dirigido por Databricks.
Spark ofrece muchas ventajas distintas sobre otras plataformas informáticas distribuidas,
como:
 Una plataforma de ejecución más rápida tanto para aprendizaje automático iterativo
como interactivo para el análisis de los datos.

6
Amazon Web Services. (2020). AWS. Obtenido de https://aws.amazon.com/es/glue/

7
Arturo (2018). Github. Obtenido de https://github.com/arturisimo/spark-intro
 Stack simples para procesamiento por lotes, consultas SQL, procesamiento de flujo
en tiempo real, procesamiento gráfico y análisis de datos complejos.
 Proporciona API de alto nivel para desarrollar una amplia gama de aplicaciones
distribuidas y ocultando las complejidades de la programación distribuida
 Soporte ininterrumpido para varias fuentes de datos como RDBMS, HBase,
Cassandra, Parquet, MongoDB, HDFS, Amazon S3, etc. 8

Componentes de Spark
Spark Core: El núcleo de Spark, en cierto modo, es similar al núcleo de un sistema
operativo. Es el motor general de ejecución, que es rápido y tolerante a fallas. Todo el
ecosistema Spark está construido encima de este motor central. Está diseñado
principalmente para hacer la programación de trabajos, distribución de tareas y monitoreo
de trabajos a través de nodos de trabajadores. También es responsable de la gestión de la
memoria, interactuando con varios sistemas de almacenamiento heterogéneos, y varias
otras operaciones. El componente principal del núcleo de Spark es el conjunto de datos
distribuidos resilientes (RDD), que es una colección de elementos inmutable y tolerante a
fallas. Spark puede crear RDD desde una variedad de fuentes de datos como HDFS,
sistemas de archivos locales, Amazon S3, otros RDD, NoSQL almacenes de datos como
Cassandra, etc. Son resistentes en el sentido de que reconstruir automáticamente en caso de
falla. Los RDD se crean mediante transformaciones paralelas diferidas.

Spark SQL: Spark SQL es un componente en la parte superior del núcleo chispa que
introduce una nueva abstracción de datos llamada SchemaRDD, que proporciona soporte
para datos estructurados y semiestructurados.
Spark Streaming: La ventana de procesamiento para los datos empresariales se está
acortando más que nunca. Para abordar los requisitos de procesamiento en tiempo real de la

8
Srinivas Duvvuri. (2016). Spark for Data Science. BIRMINGHAM - MUMBAI: Packt Publishing Ltd.
industria, se diseñó este componente de Spark, que es tolerante a fallas y escalable. Spark
permite el análisis de datos en tiempo real en transmisiones de datos en vivo al admitir
análisis de datos, aprendizaje automático y procesamiento de gráficos en ellos.
Cuatro aspectos principales de la transmisión de chispas
 Recuperación rápida de fallas y rezagados
 Mejor equilibrio de carga y uso de recursos.
 Combinación de transmisión de datos con conjuntos de datos estáticos y consultas
interactivas.
 Integración nativa con bibliotecas de procesamiento avanzadas (SQL, aprendizaje
automático, procesamiento de gráficos). 9

Spark Machine Learning Library MLlib: está diseñado para la simplicidad, la


escalabilidad y la fácil integración con otras herramientas. Con la escalabilidad, la
compatibilidad de idiomas y la velocidad de Spark, los científicos de datos pueden
centrarse en sus problemas y modelos de datos en lugar de resolver las complejidades que
rodean a los datos distribuidos (como infraestructura, configuraciones, etc.).
Construido sobre Spark, MLlib es una biblioteca de aprendizaje automático escalable que
consta de algoritmos y utilidades de aprendizaje comunes, que incluyen clasificación,
regresión, agrupación, filtrado colaborativo, reducción de dimensionalidad y primitivas de
optimización subyacentes. Spark MLLib se integra a la perfección con otros componentes
de Spark como Spark SQL, Spark Streaming y DataFrames y se instala en el tiempo de
ejecución de Databricks. La biblioteca se puede usar en Java, Scala y Python como parte de
las aplicaciones de Spark, para que pueda incluirla en flujos de trabajo completos. 10
MLlib permite el preprocesamiento, munging, entrenamiento de modelos y hacer
predicciones a escala en los datos. Incluso puede usar modelos entrenados en MLlib para
hacer predicciones en Streaming estructurado. Spark proporciona una API de aprendizaje
automático sofisticada para realizar una variedad de tareas de aprendizaje automático,
desde la clasificación hasta la regresión, la agrupación y el aprendizaje profundo.
Spark GraphX: Los datos estructurados con gráficos están en todas partes: redes sociales,
la web e incluso registros de teléfonos móviles. Ver los datos como gráficos puede revelar
información valiosa para orientar anuncios, recomendar productos y predecir el
comportamiento. GraphX es la biblioteca de procesamiento de gráficos incluida en Spark.

9
Databricks. (2020). Apache Spark. Obtenido de https://databricks.com/glossary/what-is-spark-streaming
10
Databricks. (2020). Apache Spark. Obtenido de https://databricks.com/glossary/what-is-machine-learning-
library
GraphX viene con una variedad de algoritmos gráficos y hace que sea fácil escribir el suyo
usando una API simple que puede mezclar gráficos y RDD. 11
Sistema de Archivo Distribuidos con Hadoop
Apache Hadoop es un framework que permite el procesamiento distribuido de grandes
conjuntos de datos a través de un conjunto de ordenadores utilizando modelos básicos de
programación.
Hadoop está diseñado para escalar de un servidor individual a miles de máquinas,
ofreciendo computación y almacenamiento local. Por otro lado, en lugar de depender del
hardware para ofrecer HA, Hadoop detecta y controla los errores en la capa de aplicación.
12

Conceptos básicos de Hadoop


HDFS (Hadoop Distributed File System): es un sistema de archivos distribuido altamente
tolerante a fallos y está diseñado para ser implementado en hardware de bajo coste.
YARN (Yet Another Resource Negotiator): es el sistema de gestión de recursos del cluster
Hadoop
Nodos Masters: Servidores que albergan los servicios de administración del cluster
Nodos Slaves: Servidores encargados de realizar el procesamiento y almacenamiento de los
datos.
Especificaciones de las máquinas
 Plataforma: Máquina virtual sobre OpenStack
 SO: Ubuntu Server 14.04
 Cores: 2
 RAM: 4GB
 Disco: 40 GB

Arquitectura
La arquitectura, en modalidad cluster que vamos a desplegar es la siguiente:

 1 Master Node (ResourceManager y NameNode):


o hd-master
 3 Slaves Nodes (DataNode y NodeManger):
o hd-slave1
o hd-slave2

11
Databricks. (2020). Apache Spark. Obtenido de https://databricks.com/session/graphx-graph-analytics-in-
spark
12
Hadoop. (2019). Apache Hadoop. Obtenido de https://hadoop.apache.org/docs/stable/
o hd-slave3
Paso 1: Incluimos el nombre de todos los nodos que conforman el cluster en el fichero
/etc/hosts:
192.168.40.4 hd-master

192.168.40.5 hd-slave1

192.168.40.6 hd-slave2

192.168.40.7 hd-slave3

Paso 2: Creamos el usuario y grupo hadoop:


root@hd-master:~# addgroup hadoop

root@hd-master:~# adduser --ingroup hadoop hadoop

root@hd-master:~# passwd hadoop

Paso 3: Establecemos la relación de confianza SSH entre el MasterNode y los SlavesNodes:


root@hd-master:~#su - hadoop

hadoop@hd-master:~#ssh-keygen -t rsa

hadoop@hd-master:~#ssh-copy-id hadoop@hd-slave1

#Comprobamos el acceso sin password

hadoop@hd-master:~#ssh hadoop@hd-slave1

Paso 4: Instalación de Java jdk


root@hd-master:~# apt-get install default-jdk

Paso 5: Inclusión de variables de entorno de Hadoop y Java en el fichero .bashrc del


usuario hadoop:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop

export PATH=$PATH:$HADOOP_INSTALL/bin

export PATH=$PATH:$HADOOP_INSTALL/sbin

export HADOOP_MAPRED_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_HOME=$HADOOP_INSTALL

export HADOOP_HDFS_HOME=$HADOOP_INSTALL

export YARN_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

Instalación y Configuración de Hadoop


Ficheros de configuración disponible en hadoop

Fichero Formato Descripción


Variables de entorno que son usadas
hadoop-env.sh Bash script en los scripts que ejecutan Hadoop.
Configuración para Hadoop Core,
como ajustes de I/O que son comunes
core-site.xml Hadoop configuration XML para HDFS y MapReduce.
Ajustes de configuración para los
daemons de HDFS: NameNode,
hdfs-site.xml Hadoop configuration XML Secundary NameNode y DataNodes.
Ajustes de configuración para los
daemons MapReduce: Jobtracker,
mapred-site.xml Hadoop configuration XML Tasktrackers o YARN.
Ajustes de configuración específicos
yarn-site.xml Hadoop configuration XML para YARN.
Lista de máquinas (una por línea) que
masters Texto Plano iniciarán un Secundary NameNode.
Lista de máquinas (una por línea) que
iniciarán un DataNode y un
slaves Texto Plano NodeManager
Paso 6: A continuación, descargamos e instalamos Hadoop en el nodo master (después de
realizar la configuración, la replicaremos en todos los nodos slaves). (La última versión de
Hadoop es la 2.10.0)
wget http://ftp.cixug.es/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

tar xzvf hadoop-2.6.0.tar.gz

mv hadoop-2.6.0 /usr/local/hadoop

chown -R hadoop: hadoop /usr/local/hadoop

Paso 7: Realizamos la configuración básica en el nodo Master:


Editamos /usr/local/hadoop/etc/hadoop/core-site.xml:
<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hd-master:9000</value>

<description>NameNode URI</description>

</property>

</configuration>

Editamos /usr/local/hadoop/etc/hadoop/hdfs-site.xml:
<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

<description>Default block replication</description>


</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>

</property>

</configuration>

Editamos /usr/local/hadoop/etc/hadoop/mapred-site.xml:
<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<description>Execution framework</description>

</property>

</configuration>

Editamos /usr/local/hadoop/etc/hadoop/slaves:
hd-slave1

hd-slave2

hd-slave3

Paso 8: Creamos el directorio para almacenar los datos HDFS del NameNode:
root@hd-master:~# mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode

root@hd-master:~# chown -R hadoop:hadoop /usr/local/hadoop

Paso 9: Duplicamos la configuración de Hadoop en todos los Slaves Nodes:


root@hd-master:~# scp -r /usr/local/hadoop/etc/hadoop/* hadoop@hd-
slave1:/usr/local/hadoop/etc/hadoop

root@hd-master:~# scp -r /usr/local/hadoop/etc/hadoop/* hadoop@hd-


slave2:/usr/local/hadoop/etc/hadoop

root@hd-master:~# scp -r /usr/local/hadoop/etc/hadoop/* hadoop@hd-


slave3:/usr/local/hadoop/etc/hadoop

root@hd-slave[1-3]:~# chown -R hadoop:hadoop /usr/local/hadoop/etc/hadoop

Paso 10: Creamos el directorio para almacenar los datos HDFS den DataNode:
root@hd-slave[1-3]:~# mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

root@hd-slave[1-3]:~# chown -R hadoop:hadoop /usr/local/hadoop

Paso 11: Cambiamos configuración del NameNode por DataNode en todos los Slaves
Nodes:
<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

<description>Default block replication</description>

</property>
<property>

<name>dfs.datanode.name.dir</name>

<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>

</property>

</configuration>

Paso 12: Damos formato al nuevo filesystem distribuido:


hadoop@hd-master:~#hdfs namenode -format

Paso 13: Iniciamos YARN/HDFS manualmente:


#Start Services

hadoop-daemon.sh --script hdfs start namenode

yarn-daemon.sh start resourcemanager

#Stop Services

yarn-daemon.sh stop resourcemanager

hadoop-daemon.sh --script hdfs stop namenode

#Start Services

hadoop-daemon.sh --script hdfs start datanode

yarn-daemon.sh start nodemanager

#Stop Services

yarn-daemon.sh stop nodemanager

hadoop-daemon.sh --script hdfs stop datanode


Hadoop NameNode se levanta por defecto en el puerto 50070 del Master Node, es posible
acceder a la información utilizando un navegador web.
http://hd-master:50070

Para obtener la información sobre el cluster y todas las aplicaciones, podemos acceder
Resource Manager a través del puerto 8088 del Nodo Master: 13
http://hd-master:8088

Se muestra la siguiente pantalla:

CONCLUSIONES

Hoy en día el análisis de Big Data es indispensable para las empresas y organizaciones
porque sin este tipo de herramientas es casi imposible conocer a su publico objetivo e
identificar nuevas oportunidades de crecimiento y ganancia. Por eso este tipo de
tecnologías se han vuelto muy populares y ocupadas, pero como en todas las
organizaciones es necesario buscar un equilibrio entre los gastos incurridos en montar una
infraestructura para procesar datos y la información que será de utilidad. En la busca de este
equilibrio nacen tecnologías como Hadoop, que permite al usuario distribuir los datos,
teniendo la capacidad de que nuestros datos estén corriendo en paralelo, en nodos

13
Juan Alonso Ramos. (2014). Autentia. Obtenido de
https://www.adictosaltrabajo.com/2014/02/25/hadoop-first-steps/
independientes que forman un cluster. Este tipo de infraestructura es bastante económica y
sobre todo es bastante veloz y eficiente.
Otra característica destacable de Hadoop y Spark es una tolerancia a fallos, porque usa la
alta disponibilidad y además usa la replicación; los datos suelen estar replicados con
replicación 3 en el HDFS que es el sistema de almacenamiento de Hadoop, de forma que, si
un nodo cae, tendremos los datos en el resto de los nodos configurados. Además, que son
un Open Source, un proyecto de código abierto.
REFERENCIAS

Srinivas Duvvuri. (2016). Spark for Data Science. BIRMINGHAM - MUMBAI: Packt
Publishing Ltd.
DataBricks. (2020). Apache Spark. Obtenido de https://databricks.com/spark/about.
Holden Karau, Andy Konwinski, Patrick Wendell & Matei Zaharia. (2015). Learning
Spark. United States of America: O’Reilly.
Hadoop. (2019). Apache Hadoop. Obtenido de https://hadoop.apache.org/docs/stable/
Spark. (2019). Apache Spark. Obtenido de https://spark.apache.org/docs/latest/

También podría gustarte