Ordenadores

¿Qué es el análisis de Big Data con Hadoop?

Autor: Peter Berry
Fecha De Creación: 19 Mes De Julio 2021
Fecha De Actualización: 10 Mayo 2024
Anonim
¿Qué es el análisis de Big Data con Hadoop? - Ordenadores
¿Qué es el análisis de Big Data con Hadoop? - Ordenadores

Contenido

Soy un desarrollador de software con un gran interés en el análisis de datos y las estadísticas.

¿Qué es el análisis de Big Data?

El término "Big Data" en sí mismo explica que los datos tienen un tamaño enorme, como en GB, TB y PT de datos. Debido a las últimas tecnologías, dispositivos y avances en los sitios de redes sociales, la actividad diaria de estos sistemas genera enormes cantidades de datos. Estos datos no se pueden manejar ni procesar con las bases de datos relacionales tradicionales. Big Data se refiere a conjuntos de datos que no se pueden almacenar, administrar y analizar utilizando herramientas de software de base de datos tradicionales o una computadora tradicional.

Fuentes de Big Data

  • Red eléctrica
  • Paginas de redes sociales
  • Bolsas de valores
  • Industrias de telecomunicaciones
  • IoT (sensores, etc.)

Características de Big Data

Para manejar Big Data es muy importante comprender sus características. Las propiedades del Big Data están representadas por las 4 V's:


Volumen

El volumen está relacionado con el tamaño de los datos. ¿Qué tan grandes son los datos? En función del volumen de datos podemos considerarlo como Big Data o no.

Velocidad

La velocidad es la frecuencia de los datos de origen que deben procesarse. Los datos se pueden enviar a diario, cada hora o en tiempo real, como los datos de las redes sociales.

Variedad

Diferentes tipos de datos disponibles, pueden ser estructurados, semiestructurados o no estructurados.Según el formato de los datos, se divide en tres categorías.

  • Datos estructurados: Todas las bases de datos relacionales son ejemplos de datos estructurados, ya que han definido la estructura con tipos de datos definidos de los campos en las tablas.
  • Datos semiestructurados: Los formatos XML y JSON se incluyen en datos semiestructurados, ya que pueden tener una jerarquía definida de los elementos, pero es posible que no siempre tengan tipos de datos definidos.
  • Datos no estructurados: Cualquier documento de Word o PDF, archivos de texto o registros de Media / Server son datos no estructurados.

Veracidad

La veracidad se trata de la confiabilidad de los datos. Es obvio que tendremos algún nivel de discrepancias en los datos recibidos.


Ciclo de vida de Big Data

En general, los siguientes procesos están involucrados en el análisis de Big Data.

  • Manipulación de datos
  • Limpieza de datos
  • Integración de datos como anotaciones con diferentes fuentes de datos.
  • Calcularlo y analizarlo aplicando varios métodos de análisis de datos.
  • Visualización de los resultados en forma de cuadros de mando o gráficos.

Beneficios de analizar Big Data

No se trata solo del tamaño de los datos. Pero cómo usarlo / analizarlo para predecir el futuro y tomar decisiones comerciales inteligentes. Puede ayudar a impulsar el negocio al analizar los datos del producto y puede ayudar a lanzar un nuevo producto o mejorar los servicios de la empresa al analizar los datos de los comentarios de los clientes. Ayuda a tomar cualquier decisión de gestión en cualquier negocio para crear y planificar mejores estrategias comerciales.


  • Ahorro de costes: Las tecnologías de Big Data, como la computación en clúster / basada en la nube en Apache Hadoop o Apache Spark, nos salvan de comprar máquinas de alta configuración para procesar Big Data.
  • Reducción de tiempo: La alta velocidad en los cálculos de la memoria reduce el tiempo de procesamiento de datos y nos permite tomar decisiones rápidas.
  • Desarrollo de nuevo producto: Ayuda a conocer las necesidades del cliente y el nivel de satisfacción del próximo producto que se va a desarrollar.
  • Comprensión de las tendencias del mercado: Como conocer los patrones de compra de los clientes o los artículos más comprados puede ayudar a conocer las demandas del mercado.
  • Análisis de los sentimientos: Extraer la opinión de los clientes de varios sitios de redes sociales puede ayudar a cualquier industria de productos o servicios a mejorar sus ofertas.

Tecnologías y herramientas de Big Data

Hablemos brevemente de las tecnologías y herramientas disponibles para resolver diferentes tipos de problemas en la analítica de Big Data.

Apache Hadoop y ecosistema

Es un marco de código abierto para procesar / calcular datos en paralelo. Es una plataforma estándar para procesar big data. Se originó a partir de los documentos MapReduce y Google File System de Google.

Es un proyecto de ecosistema que contiene muchos otros proyectos como Pig, Hive, Kafka, etc. Otras herramientas de análisis son Apache Spark y Apache Storm.

Apache Spark

Esto es más avanzado que Apache Hadoop y también es un motor multipropósito. Este es un motor de acceso a datos de propósito general para el procesamiento de datos rápido y a gran escala. Está diseñado para Iterativo, In-Memory: cálculos y minería de datos interactiva. Proporciona soporte en varios idiomas: para Java, Scala, Python y R. Tiene varias bibliotecas integradas que permiten a los trabajadores de datos iterar rápidamente sobre los datos para ETL, Machine Learning, SQL y procesamiento Stream.

Hay muchas otras formas de procesar Big Data. Arriba hay 2 marcos básicos.

P.ej. Apache Hive para almacenamiento de datos, Apache Pig para consultar Big Data, Apache Drill, Apache Impala, Apache Spark SQL y Presto y muchos más.

Apache SystemML, Apache Mahout y MLlib de Apache Spark son muy útiles para aplicar varios algoritmos de aprendizaje automático a los datos.

Colmena

Se ejecuta sobre Hadoop y es compatible con HiveQL para consultar Big Data.

Cerdo

Es para personas que no saben programar en lenguajes como Java y Scala. Pueden usar Pig para analizar los datos fácilmente, proporciona acceso de consulta a los datos.

Cucharón

Ayuda a transferir conjuntos de datos estructurados de bases de datos relacionales a Hadoop.

Presto

Facebook ha desarrollado un motor de consulta de código abierto llamado Presto, que puede manejar petabytes de datos y, a diferencia de Hive, no depende del paradigma MapReduce y puede recuperar los datos en poco tiempo.

Apache Flink

Es una plataforma de código abierto para el procesamiento de datos de flujo distribuido en lotes.

Apache Kafka

Es un sistema de mensajería muy rápido, duradero, tolerante a fallas y tipo publicación-suscripción.

Apache Ambari

Apache ™ Ambari es una plataforma para aprovisionar, administrar y monitorear clústeres de Hadoop. Ambari proporciona servicios básicos para operaciones, desarrollo y puntos de extensión para ambos.

Apache Zeppelin

Es un cuaderno basado en la web para ingenieros de datos, analistas de datos y científicos de datos. Aporta funciones interactivas de ingestión, exploración, visualización, uso compartido y colaboración de datos a Hadoop y Spark.

Bases de datos de Big Data

Si queremos almacenar Big Data en una base de datos deberíamos tener una base de datos paralela o bases de datos con arquitectura de nada compartido como Vertica, Netezza, Aster, Greenplum, etc.

Bases de datos NoSQL

Google bigtable, Amazon dynamo, Apache Hbase, Apache Cassandra, etc. son ejemplos de bases de datos NoSQL.

Búsquedas más rápidas

Para poder buscar este Big Data más rápido, hay muchas soluciones / motores disponibles como Apache Solr o Elastic Search. Apache Solr es un potente motor de búsqueda.

Arquitectura Hadoop

Hadoop es un marco de código abierto para el procesamiento distribuido de grandes conjuntos de datos en grupos de máquinas. Proporciona almacenamiento distribuido (sistema de archivos) así como computación distribuida en un clúster.

Arquitectura

El siguiente diagrama describe cuatro componentes básicos de Hadoop.

Mapa reducido

Es un paradigma de programación para procesar Big Data en paralelo en los clústeres de hardware básico con confiabilidad y tolerancia a fallas.

El patrón consiste en dividir un problema en pequeñas piezas de trabajo. Map, Reduce y Shuffle son tres operaciones básicas de MapReduce.

  • Mapa: Toma los datos de entrada y los convierte en un conjunto de datos donde todas y cada una de las líneas de entrada se dividen en un par clave-valor (tupla).
  • Reducir: Esta tarea toma la entrada de la salida de la fase Mapa y combina (agrega) tuplas de datos en conjuntos más pequeños basados ​​en claves.
  • Barajar: Es el proceso de transferir los datos de los mapeadores a los reductores.

Todos y cada uno de los nodos del clúster consta de un JobTracker maestro y un TaskTracker esclavo.

  • JobTracker es responsable de la gestión de recursos y el seguimiento de la disponibilidad de los recursos. Programa las tareas del trabajo en los esclavos. Es un solo punto de falla, lo que significa que si falla, todos los trabajos en ejecución se detienen.
  • TaskTrackers ejecuta las tareas asignadas por el maestro y proporciona el estado de la tarea al maestro periódicamente.

HDFS (sistema de archivos distribuido Hadoop)

Es el sistema de archivos proporcionado por Hadoop. Se basa en el sistema de archivos de Google (GFS) y se ejecuta en el grupo de máquinas de una manera confiable y tolerante a fallas. Tiene una arquitectura maestro / esclavo.

  • NameNode: Gestiona los metadatos del sistema de archivos y almacena la ubicación de los datos.
  • DataNode: Los datos reales se almacenan en el DataNode.
  • Nodo de nombre secundario: El NameNode también copia los metadatos en el NameNode secundario para tener la copia de seguridad, de modo que cuando el NameNode deja de funcionar, el NameNode secundario toma el lugar de NameNode.

Un archivo en HDFS se divide en fragmentos de datos llamados bloques y esos bloques se almacenan en el DataNode. NameNode mantiene la asignación de bloques a DataNodes. HDFS proporciona una interfaz de shell con una lista de comandos para interactuar con el sistema de archivos.

YARN (otro negociador de recursos)

Es la característica de Hadoop 2, es un administrador de recursos.

Características

  • Multi-tenancy: permite que varios motores utilicen Hadoop, que pueden acceder simultáneamente al mismo conjunto de datos.
  • Utilización de clústeres: la programación de YARN utiliza el recurso de clústeres de forma optimizada.
  • Escalabilidad: YARN se centra en la programación cuando los clústeres se expanden.
  • Compatibilidad: las aplicaciones MapReduce existentes que se desarrollan con Hadoop 1 pueden ejecutarse en YARN sin ninguna interrupción.

¿Cómo funciona la arquitectura MapReduce?

Un usuario puede enviar un trabajo dando los siguientes parámetros.

  • La ubicación de los archivos de entrada y salida.
  • El archivo jar que contiene las clases del mapa y reduce la implementación.
  • La configuración del trabajo mediante el establecimiento de diferentes parámetros para un trabajo específico.

El cliente de trabajo de Hadoop luego envía el trabajo y la configuración al JobTracker, que nuevamente distribuye el código / configuración a los esclavos, programa las tareas y las monitorea.

Los TaskTracker en diferentes nodos ejecutan la tarea según la implementación de MapReduce y generan los datos en HDFS.

Hadoop - Configuración del entorno

Java

Se debe requerir Java, verifique si el sistema tiene Java instalado con el siguiente comando:

Java -versión

Le dará detalles de la versión si ya está instalada, si no, siga los siguientes pasos para instalar java en su máquina.

  • Descargue Java desde el enlace y extráigalo.
  • Muévalo a / usr / local / o su ubicación preferida para que esté disponible para todos los usuarios.
  • Establezca la variable de entorno PATH y JAVA_HOME:

exportar JAVA_HOME=/ usr /local/jdk1.7.0_71 exportar CAMINO=$ RUTA:$ JAVA_HOME/compartimiento

  • Verifique la instalación de Java:

Java -versión

Instalación de Hadoop

Descargue y extraiga la última versión de Hadoop de la base del software Apache.

Los siguientes son los modos en los que podemos operar Hadoop.

  • Modo autónomo: En este modo, Hadoop se puede ejecutar como un único proceso java en local.
  • Modo pseudodistribuido: En este modo, cada demonio de Hadoop como HDFS, YARN, MapReduce se puede ejecutar como un proceso Java separado mediante simulación distribuida en una sola máquina. En desarrollo, este modo es el preferido principalmente.
  • Modo completamente distribuido: En este modo, Hadoop se ejecuta en un clúster de al menos más de una máquina.

Instalación independiente de Hadoop

  • Ya hemos descargado y extraído Hadoop, podemos moverlo a la ubicación preferida o en / usr / local / y necesitamos configurar una variable de entorno de la siguiente manera:

exportar Hadoop_HOME = / usr / local / Hadoop

  • Verifique la versión de Hadoop instalada con el siguiente comando.

versión hadoop

  • Si obtiene los detalles de la versión, significa que el modo independiente está funcionando bien.
  • Ahora puede ejecutar el jar de ejemplos, lo veremos más adelante.

Instalación de Hadoop pseudodistribuida

  • Reemplace la ruta de Java en Hadoop-env.sh file reemplazando el valor JAVA_HOME con la ubicación del directorio de instalación de Java en su máquina.
  • core-site.xml contiene las configuraciones para el número de puerto de la instancia de Hadoop, el límite de memoria, la ubicación del almacenamiento de datos, el tamaño de los búferes para lectura / escritura. Edite el archivo y agregue la siguiente configuración.

configuración> propiedad> nombre> fs.default.name/name> valor> hdfs: // localhost: 9000 / valor> / propiedad> / configuración>

  • hdfs-site.xml El archivo contiene configuraciones para el factor de replicación, rutas de namenode y ruta de datanodes en sus máquinas locales. Abra el archivo y agregue las siguientes configuraciones en él según los requisitos.

configuración> propiedad> nombre> dfs.replication / nombre> valor> 1 / valor> / propiedad> propiedad> nombre> dfs.name.dir / nombre> valor> ubicación del directorio namenode de su sistema de archivos local / valor> / propiedad > propiedad> nombre> dfs.data.dir / nombre> valor> ubicación del directorio de nodo de datos de su sistema de archivos local / valor> / propiedad> / configuración>

  • yarn-site.xml se utiliza para configurar YARN en Hadoop.
  • mapred-site.xml se usa para especificar configuraciones relacionadas con el marco MapReduce que necesitamos usar.

Verificación de la instalación de Hadoop

  • Configure el nodo de nombre usando los siguientes comandos.

Nodo de nombre HDFS -formato

  • Verifique Hadoop dfs usando los siguientes comandos.

start-dfs.sh

  • Verifique el guión de hilo.

start-yarn.sh

  • Acceda a Hadoop en un navegador en http: // localhost: 50070 /
  • Verifique todas las aplicaciones que se ejecutan en el clúster en http: // localhost: 8088 /

¿Qué es HDFS?

HDFS es un sistema de archivos distribuido basado en el sistema de archivos de Google (GFS). Funciona con hardware básico. Proporciona almacenamiento para las aplicaciones que se ejecutan sobre Hadoop.

Arquitectura HDFS

HDFS sigue la arquitectura maestro / esclavo y consta de los siguientes elementos en su arquitectura.

¿Como funciona?

Toma datos en forma de archivos y los divide en varios fragmentos llamados bloques y los distribuye por todo el clúster en varios nodos de datos. También replica cada pieza de datos en otro rack de servidores para que, en caso de falla, los datos se puedan recuperar.

Cuadra

El archivo en HDFS se divide en segmentos, llamados bloques. El tamaño predeterminado del bloque es 64 MB, la cantidad mínima de datos se puede almacenar en un segmento. Se puede cambiar en la configuración de HDFS.

Namenode

Es el hardware básico y actúa como maestro y, a continuación, se muestra la lista de sus tareas.

  • Administra el espacio de nombres del sistema de archivos. Almacena los metadatos de los archivos almacenados en los esclavos. Almacena datos en RAM y no en el disco.
  • Regula el acceso de los datos a los clientes.
  • También ejecuta operaciones de archivo como cambiar el nombre de un archivo, abrir un archivo, etc.

Nodo de nombre secundario

fileSystem Image se guarda en la memoria principal de Name Node (contiene información de metadatos).

Llegan nuevas entradas, se captura en el registro de edición. El nodo de nombre secundario toma la copia del registro de edición y la imagen del sistema de archivos de NameNode periódicamente, luego la combina, crea una nueva copia y la carga en NameNode.

DataNode

Todos los DataNodes se ejecutan en hardware básico que actúa como esclavos. Responsabilidades de DataNode:

  • Realiza operaciones de lectura / escritura.
  • También realizan operaciones como la creación, eliminación y replicación de bloques de acuerdo con la solicitud de Namenode.

Características de HDFS

Tolerancia a fallos

Aquí en HDFS, la tolerancia a fallas se refiere a la capacidad de manejar situaciones desfavorables. Cuando cualquier máquina del clúster deja de funcionar debido a alguna falla, un cliente puede acceder fácilmente a los datos debido a la función de replicación de HDFS. HDFS también replica bloques de datos en otro bastidor para que el usuario pueda acceder a esos datos desde otro bastidor cuando una máquina deja de funcionar.

Alta disponibilidad

Entonces, al igual que la tolerancia a fallas, es un sistema de archivos de alta disponibilidad, un usuario puede acceder a los datos donde quiera desde las máquinas más cercanas en el clúster, incluso si alguna de las máquinas ha fallado. Un NameNode que contiene los metadatos de los archivos almacenados en los DataNodes sigue almacenando datos en el NameNode secundario también con fines de respaldo en caso de falla de NameNode, por lo que cuando un NameNode falla, puede recuperarse por completo de un NameNode secundario, se llama Alta disponibilidad de NameNode .

Fiabilidad de los datos

HDFS puede almacenar datos en el rango de 100 PB. Es un almacenamiento de datos distribuido confiable. Hace que los datos sean confiables al crear réplicas de los bloques. Por lo tanto, no ocurre pérdida de datos en condiciones críticas.

Replicación

Ésta es la característica más importante de HDFS.

Movimiento de datos mínimo

Hadoop mueve el código a los datos en HDFS, lo que reduce la E / S de la red y ahorra ancho de banda.

Escalabilidad

HDFS almacena datos en varias máquinas, por lo que cuando los requisitos aumentan, podemos escalar el clúster.

  1. Escalabilidad vertical: Se trata de agregar más recursos como CPU, memoria y disco en los nodos existentes del clúster.
  2. Escalabilidad horizontal: Se trata de agregar más máquinas a los clústeres sobre la marcha sin tiempo de inactividad.

Operaciones HDFS

Cuando haya instalado recientemente Hadoop y configure HDFS, abra namenode y ejecute el siguiente comando. Formatea el HDFS.

nodo de nombre de hadoop -formato

El siguiente comando iniciará el sistema de archivos distribuido.

comienzo-dfs.sh

Operaciones

Listado de archivos en HDFS

hadoop fs -ls argumentos>

Esto listará los archivos en la ruta dada.

Insertar datos en HDFS

  • El siguiente comando para crear un directorio de entrada.

hadoop fs -mkdir ruta del directorio de entrada>

  • Para insertar los datos del sistema de archivos local en HDFS.

hadoop fs -poner ruta del archivo de entrada local que se colocará en HDFS>ruta del directorio de entrada>

  • Verifique el archivo usando el comando ls.

hadoop fs -mkdir ruta del directorio de entrada>

Recuperando datos en HDFS

  • Vea los datos usando comandos cat.

hadoop fs -cat ruta del archivo que se va a ver>

  • Obtenga el archivo de HDFS al sistema de archivos local.

hadoop fs -obtenerRuta del archivo HDFS> ruta del sistema de archivos local donde se guardará el archivo>

Apagando el HDFS

Este comando detendrá el HDFS.

detener-dfs.sh

Otros comandos

  • ls camino>: Enumera el contenido del directorio dado.
  • ruta lsr>: También muestra de forma recursiva el contenido de los subdirectorios.
  • du path>: Muestra el uso del disco.
  • camino dus>: Imprime el resumen del uso del disco.
  • mv src> dest>: Mueve el archivo o directorio al destino.
  • cp src> dest>: Copia el archivo del directorio en el destino.
  • camino rm>: Elimina el archivo dado o el directorio vacío
  • ruta rmr>: Elimina de forma recursiva el archivo dado o el directorio vacío.
  • poner local src> dest>: copia el archivo o directorio del local al HDFS.
  • copyFromLocal local src> dest>: igual que -put
  • moveFromLocal local src> dest>: Mueve el archivo o directorio del local a HDFS.
  • obtener src> destino local>: Copia el archivo o directorio de HDFS a local.
  • getmerge src> destino local>: Recupera los archivos y luego los combina en un solo archivo.
  • cat nombre de archivo>: Para ver el contenido del archivo.
  • copyToLocal src> destino local> : igual que -get
  • moveToLocal src> destino local>: Funciona como -get pero luego se elimina del HDFS.
  • ruta mkdir>: Crea un directorio en el HDFS.
  • ruta touchz>: Para crear un archivo vacío en la ruta HDFS dada.
  • prueba - [ezd] ruta>: Para probar si la ruta HDFS dada existe o no, devolverá 0 si no existe más 1.
  • ruta de [formato] estadística>: Imprime la información de la ruta.
  • tail [-f] nombre de archivo>: Muestra el último contenido del archivo.
  • chmod: Para cambiar los permisos de archivos o directorios.
  • chown: Para establecer el propietario del archivo o directorios.
  • chgrp: Para configurar el grupo de propietarios.
  • ayuda nombre-comando>: Para mostrar el detalle de uso de cualquiera de los comandos.

Selección De Sitios

Interesante Hoy

Cómo usar Instagram en su navegador web
Los Telefonos

Cómo usar Instagram en su navegador web

Me encanta jugar videojuego y compartir mi de cubrimiento , con ejo y truco .In tagram e una plataforma podero a, ¡e inclu o puede er muy divertido de u ar! in embargo, uno de lo principale probl...
Software de verificación de productos y datos según lo construido y diseñado
Ordenadores

Software de verificación de productos y datos según lo construido y diseñado

Tamara Wilhite e e critora técnica, ingeniera indu trial, madre de do hijo y autora publicada de ciencia ficción y terror.Lo dato de con trucción on la información relacionada con ...