Integración de Python con Hadoop y Spark

Inhalt

[*]

Dieser Artikel wurde im Rahmen der Data Science Blogathon

Einführung

Wetter. Son datos con un tamaño y complejidad tan grandes que ninguna de las herramientas tradicionales de administración de datos los almacenará o procesará con eficiencia.

Big Data es un campo que trata las formas de investigar, analizar y extraer información de forma consistente de una gran cantidad de datos estructurados o no estructurados.

Python tiene varias características incorporadas para admitir el procesamiento de datos, ya sea de tamaño pequeño o enorme. Estas funciones admiten el procesamiento de datos no estructurados y no convencionales. Esta es la razón por la que los científicos de datos y las empresas de Big Data prefieren elegir Python para el procesamiento de datos, da es als eine der wichtigsten Anforderungen im Bereich Big Data gilt.

Es gibt auch andere Technologien, die Big Data effizienter als Python verarbeiten können. Dies sind Hadoop und Spark.

Hadoop

Hadoop ist die beste Lösung zur Speicherung und Verarbeitung von Big Data, da Hadoop riesige Dateien in Form von Verteiltes Dateisystem (HDFS) Hadoop ohne Angabe eines Schemas speichert.

Es ist hoch skalierbar, da jedem beliebigen Knoten zur Leistungsverbesserung hinzugefügt werden kann. In Hadoop, sind die Daten auch bei einem Hardwareausfall hoch verfügbar.

Funke – Funke

Spark ist ebenfalls eine gute Option zur Verarbeitung großer Mengen strukturierter oder unstrukturierter Datensätze, da die Daten in Clustern gespeichert werden. Spark wird so konzipiert sein, dass es die maximale Datenmenge im Speicher hält, damit sie auf die Festplatte überläuft. Es wird einen Teil des Datensatzes im Speicher speichern und, Daher, die restlichen Daten auf der Festplatte.

Die erste Wahl der Sprache für Today Data Scientist ist Python, und sowohl Hadoop als auch Spark bieten Python-APIs, die Big-Data-Verarbeitung ermöglichen und auch einen einfachen Zugriff auf Big-Data-Plattformen erlauben.

988737-3558956

Bildquelle: für mich

Bedarf von Python im Big Data

1. Open Source:

Python ist eine Open-Source-Programmiersprache, die unter einer von der OSI genehmigten Open-Source-Lizenz entwickelt wurde, was sie frei nutzbar und verteilbar macht, auch für kommerzielle Nutzung.

Python ist eine interpretierte Hochsprache mit allgemeinem Zweck. No es necesario compilarlo para ejecutarse. Un programa conocido como intérprete ejecuta código Python en prácticamente cualquier tipo de sistema. Esto implica que un desarrollador puede modificar el código y ver rápidamente los resultados.

2. Leicht zu lernen:

Python es muy fácil de aprender al igual que el idioma inglés. Su sintaxis y código son fáciles y legibles también para principiantes. Python tiene muchas aplicaciones como el desarrollo de aplicaciones web, Datenwissenschaft, maschinelles Lernen, etc.

Python nos permite escribir programas con menos líneas de código que la mayoría de los otros lenguajes de programación. La popularidad de Python está creciendo rápidamente debido a su simplicidad.

3. Bibliotecas de procesamiento de datos:

Cuando se trata de procesamiento de datos, Python hat eine
reichhaltiges Werkzeugset mit einer breiten Palette von Vorteilen. Da es eine Open-Source-Programmiersprache ist, ist es einfach zu lernen und verbessert sich auch kontinuierlich. Python besteht aus einer Liste mehrerer nützlicher Bibliotheken zur Datenverarbeitung und ist auch mit anderen Sprachen integriert (wie Java), sowie mit bestehenden Strukturen. Python ist bibliothekenreicher, was seine Funktionalität weiter verbessert.

4. Kompatibilität mit Hadoop und Spark:

Das Hadoop-Framework ist in der Programmiersprache Java geschrieben; aber trotzdem, Hadoop-Programme können in Python oder C codiert werden ++. Wir können Programme wie MapReduce in Python schreiben, obwohl es nicht erforderlich ist, den Code in Java-Jar-Dateien zu übersetzen.

Spark proporciona una API de Python llamada PySpark lanzada por la comunidad de Apache Spark para admitir Python con Spark. Usando PySpark, uno simplemente integrará y trabajará con RDD dentro del lenguaje de programación Python también.

Spark viene con un shell de Python interactivo llamado PySpark shell. Este shell de PySpark es responsible del enlace entre la API de Python y el núcleo de chispa y de inicializar el contexto de chispa. PySpark también se puede iniciar directamente desde la línea de comando dando algunas instrucciones para uso interactivo.

5. Velocidad y eficiencia:

Python es un lenguaje de programación de alto nivel poderoso y eficiente. Ya sea para desarrollar una aplicación o trabajar para resolver cualquier problema comercial a través de la ciencia de datos, Python lo tiene cubierto todos estos límites. Python siempre funciona bien para optimizar la productividad y la eficiencia de los desarrolladores.

Podemos crear rápidamente un programa que puede resolver un problema comercial y satisface una necesidad práctica. Aber trotzdem,
Es posible que las soluciones no alcancen el rendimiento optimizado de Python mientras se desarrollan rápidamente.

6. Escalable y flexible:

Python es el lenguaje más popular para ML / AI debido a su conveniencia. La flexibilidad de Python también permite instrumentar el código de Python para formar la escalabilidad ML / AI posiblemente sin requerir una mayor experiencia en el sistema distribuido y muchos cambios de código invasivos. Deswegen, los usuarios de ML / AI obtienen las ventajas de la escalabilidad en todo el clúster con un esfuerzo mínimo.

Componentes de Hadoop:

Hay principalmente dos componentes de Hadoop:

  1. HDFS (Hadoop verteiltes Dateisystem)
  2. Kleine Karte

Sistema de archivos distribuido Hadoop

El sistema de archivos Hadoop se desarrolló sobre la base del modelo de sistema de archivos distribuido. Funciona con hardware básico. A diferencia de los diferentes sistemas distribuidos, HDFS es extremadamente tolerante a fallas y está diseñado con hardware económico.

HDFS puede almacenar una gran cantidad de datos y también proporciona un acceso más fácil a esos datos. Para almacenar una cantidad tan grande de datos, Die Dateien werden in mehreren Systemen gespeichert. Diese Dateien werden redundant gespeichert, um das System im Falle eines Datenverlusts zu retten. Was ist mehr, HDFS bietet Anwendungen für die Multiprozessverarbeitung.

  • Es ist verantwortlich für die Speicherung von Daten in einem Cluster wie verteilte Speicherung und Verarbeitung.
  • Die Daten-Server des Knoten Name-Node und Knowledge-Node erleichtern es Benutzern, einfach den Status des Clusters zu überprüfen.
  • Jeder Block wird standardmäßig mehrfach repliziert 3 mal. Die Replikate werden auf völlig unterschiedlichen Knoten gespeichert.
  • Hadoop Streaming dient als Brücke zwischen Ihrem Python-Code und, Daher, dem auf Java basierenden HDFS, und ermöglicht Ihnen einen nahtlosen Zugriff auf Hadoop-Cluster und das Ausführen von Aufgaben Karte verkleinern.
  • HDFS proporciona permisos y autenticación de archivos.
34924hadoop-7598607

Bildquelle: für mich

Instalación de Hadoop en Google Colab

Hadoop es un marco de procesamiento de datos basado en programación Java. Instalemos la configuración de Hadoop paso a paso en Google Colab. Es gibt zwei Möglichkeiten, la primera es que tenemos que instalar java en nuestras máquinas y la segunda es que instalamos java en google colab, por lo que no es necesario instalar java en nuestras máquinas. Como usamos Google colab, elegimos la segunda forma de instalar Hadoop:

# Install java
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
#create java home variable 
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.0.0-bin-hadoop3.2"

Paso 1: instalar Hadoop

#download hadoop
!wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
7335011-2082001
#Wir verwenden den tar-Befehl mit dem -x-Flag zum Extrahieren, -z zum Entkomprimieren, 
#-V für ausführliche Ausgabe, und -f, um anzugeben, dass wir aus einer Datei extrahieren
!tar -xzvf hadoop-3.3.0.tar.gz
#kopiere die Hadoop-Datei nach user/local
!cp -r hadoop-3.3.0/ /usr/local/

Paso 2: configurar la Variable de inicio de Java

#finding the default Java path
!readlink -f /usr/bin/java | sed "S:bin/java::"

Paso 3: Ejecuta Hadoop

#Running Hadoop
!/usr/local/hadoop-3.3.0/bin/hadoop
!mkdir ~/input
!cp /usr/local/hadoop-3.3.0/etc/hadoop/*.xml ~/input
!/usr/local/hadoop-3.3.0/bin/hadoop jar /usr/local/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep ~/input ~/grep_example 'allowed[.]*'

Jetzt, Google Colab está listo para implementar HDFS.

Kleine Karte

MapReduce es un modelo de programación que se asocia con la implementación del procesamiento y la generación de grandes conjuntos de datos con la ayuda de reglas algorítmicas distribuidas en paralelo en un clúster.

Un programa MapReduce consiste en un procedimiento de mapa, que realiza filtrado y clasificación, y una técnica de reducción, que realiza una operación de esquema.

60207mapreduce-9644994

Bildquelle: für mich

  • MapReduce podría ser un marco de procesamiento de datos para procesar datos en el clúster.
  • Dos fases consecutivas: mapear y reducir.
  • Cada tarea de mapa opera en partes separadas de datos.
  • Después del mapa, el reductor trabaja con los datos generados por el asignador en los nodos de datos distribuidos.
  • MapReduce usó E / S de disco para realizar operaciones con datos.
37060disk-8561576

Bildquelle: für mich

Apache Spark

Apache Spark es un motor de análisis de datos de código abierto para el procesamiento a gran escala de datos estructurados o no estructurados. Para trabajar con Python, incluidas las funcionalidades de Spark, la comunidad de Apache Spark había lanzado una herramienta llamada PySpark.

La API Spark Python (PySpark) revela el modelo de programación Spark a Python. Usando PySpark, podemos trabajar con RDD en el lenguaje de programación Python. Es atribuible a una biblioteca conocida como Py4j que pueden alcanzar esto.

66188spark-3383970

Bildquelle: XanonStack

Conjuntos de datos distribuidos resistentes (RDD)

Los conceptos sobre conjuntos de datos distribuidos resilientes (RDD) Sohn:

  • El enfoque principal de la programación Spark es RDD.
  • Spark es extremadamente tolerante a fallas. Es verfügt über Sammlungen von Objekten, die in einem Cluster verteilt sind und parallel arbeiten können.
  • Al usar Spark, kann automatisch von einem Maschinenfehler wiederhergestellt werden.
  • Wir können ein RDD erstellen, indem wir Elemente aus einer bestehenden Sammlung kopieren oder auf einen extern gespeicherten Datensatz verweisen.
  • Es gibt zwei Arten von Operationen, die RDDs ausführen: Transformationen und Aktionen.
  • Die Transformationsoperation verwendet einen vorhandenen Datensatz, um einen neuen zu erstellen. Beispiel: abbilden, Filter, beitreten.
  • Die auf dem Datensatz ausgeführten Aktionen geben den Wert an das Steuerprogramm zurück. Beispiel: reduzieren, erzählen, versammeln, speichern.

Wenn die Speicherkapazität unzureichend erscheint, werden die Daten auf einer Festplatte wie bei MapReduce gespeichert.

41052Speicher-6913452

Bildquelle: für mich

Spark-Installation in Google Colab:

Spark ist ein leistungsfähiges Datenverarbeitungs-Framework. Wir können es problemlos in Google Colab installieren.

# Install java
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
#Spark installieren (Ändern Sie die Versionsnummer bei Bedarf)
!wget -q https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz
#Entpacken Sie die Spark-Datei in den aktuellen Ordner
!tar xf spark-3.0.0-bin-hadoop3.2.tgz
#Legen Sie Ihren Spark-Ordner in Ihrem System-Pfad fest. 
Importieren von OS
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.0.0-bin-hadoop3.2"
#Installieren Sie findspark mit pip
!pip install -q findspark
#Spark für Python (pyspark)
!pip installieren pyspark
#importing pyspark
import pyspark
#importing sparksessio
from pyspark.sql import SparkSession
#creating a sparksession object and providing appName 
spark=SparkSession.builder.appName("lokal[*]").getOrCreate()
#printing the version of spark
print("Apache Spark Version: ", spark.version)
1372512-5562747

Jetzt, Google Colab ist bereit, Spark in Python auszuführen.

Vorteile von Apache Spark:

  • Spark ist 10 ein 100 mal schneller als Hadoop MapReduce, wenn es um Datenverarbeitung geht.
  • Hat sImplementieren Sie einen Datenverarbeitungsrahmen und interaktive APIs für Python, die die Anwendungsentwicklung beschleunigen helfen.
  • Was ist mehr, Es ist effizienter, da es über mehrere Werkzeuge für komplexe analytische Operationen verfügt.
  • Es kann leicht in die vorhandene Hadoop-Infrastruktur integriert werden.

Fazit:

In diesem Blog, Wir haben untersucht, wie Python auch zu einem guten und effizienten Werkzeug für die Big-Data-Verarbeitung werden kann. Wir können alle Big-Data-Werkzeuge mit Python integrieren, Was die Datenverarbeitung einfacher und schneller macht. Python ist nicht nur für Data Science, sondern auch für die Big-Data-Verarbeitung zu einer geeigneten Wahl geworden.

Danke fürs Lesen. Bitte lassen Sie es mich wissen, wenn es Kommentare oder Feedback gibt.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher