Heim  >  Artikel  >  Backend-Entwicklung  >  Big-Data-Full-Stack-Entwicklungssprache – Python

Big-Data-Full-Stack-Entwicklungssprache – Python

巴扎黑
巴扎黑Original
2017-03-29 15:51:101355Durchsuche

Vor einiger Zeit hielt ThoughtWorks eine Community-Veranstaltung in Shenzhen ab und hielt einen Vortrag mit dem Titel „Fullstack JavaScript“, bei dem es um die Verwendung von JavaScript für die Front-End-, Server- und sogar Datenbankentwicklung (MongoDB) ging Wenn Sie eine Sprache lernen müssen, können Sie die gesamte Anwendung implementieren.

Davon inspiriert entdeckte ich, dass Python als Big-Data-Full-Stack-Entwicklungssprache bezeichnet werden kann. Weil Python eine beliebte Sprache in der Cloud-Infrastruktur, DevOps, Big-Data-Verarbeitung und anderen Bereichen ist.

领域 流行语言
云基础设施 Python, Java, Go
DevOps Python, Shell, Ruby, Go
网络爬虫 Python, PHP, C++
数据处理 Python, R, Scala

So wie Sie eine vollständige Webanwendung schreiben können, solange Sie JavaScript beherrschen, können Sie eine vollständige Big-Data-Verarbeitungsplattform implementieren, solange Sie Python beherrschen.

Cloud-Infrastruktur

Wenn wir heutzutage keine Cloud-Plattformen, Massendaten oder dynamische Skalierung unterstützen, trauen wir uns nicht zu sagen, dass wir Big Data betreiben. Wir trauen uns allenfalls zu sagen, dass wir Business Intelligence (BI) betreiben.

Cloud-Plattformen werden in private Clouds und öffentliche Clouds unterteilt. OpenStack, die beliebte private Cloud-Plattform, ist in Python geschrieben. CloudStack, der frühere Verfolger, betonte beim ersten Start nachdrücklich, dass es in Java geschrieben sei und Vorteile gegenüber Python habe. Infolgedessen kündigte Citrix, der Gründer von CloudStack, Anfang 2015 an, der OpenStack Foundation beizutreten, und CloudStack stand kurz vor dem Ende.

Wenn Sie Schwierigkeiten haben und keine eigene private Cloud erstellen möchten, verwenden Sie eine öffentliche Cloud. Ob AWS, GCE, Azure, Alibaba Cloud oder Qingyun, sie alle bieten Python-SDKs. GCE bietet nur Python- und JavaScript-SDKs. während Qingyun nur Python-SDKs bereitstellt. Man erkennt, dass verschiedene Cloud-Plattformen großen Wert auf Python legen.

Wenn es um den Aufbau der Infrastruktur geht, müssen wir Hadoop erwähnen. Heutzutage ist Hadoop nicht mehr die erste Wahl für die Verarbeitung großer Datenmengen, da die Datenverarbeitungsgeschwindigkeit von MapReduce nicht schnell genug ist. HDFS und Yarn, die beiden Komponenten von Hadoop, sind es jedoch wird immer beliebter. Die Entwicklungssprache von Hadoop ist Java und es gibt keine offizielle Python-Unterstützung. Es gibt jedoch viele Bibliotheken von Drittanbietern, die die API-Schnittstelle von Hadoop kapseln (Pydoop, Hadoopy usw.).

Der Ersatz für Hadoop MapReduce ist angeblich 100-mal schneller. Seine Entwicklungssprache ist Scala, es bietet jedoch Entwicklungsschnittstellen für Scala, Java und Python. Es ist wirklich unvernünftig, so vielen Datenwissenschaftlern gefallen zu wollen in Python, ohne Python zu unterstützen. HDFS-Alternativen wie GlusterFS, Ceph usw. bieten alle direkt Python-Unterstützung. Als Ersatz für Yarn ist Mesos in C++ implementiert und bietet neben C++ auch Unterstützungspakete für Java und Python.

DevOps

DevOps hat einen chinesischen Namen, der als Entwicklung, Selbstbetrieb und Wartung bezeichnet wird. Im Zeitalter des Internets können wir nur dann wettbewerbsfähig bleiben, wenn wir in der Lage sind, neue Ideen schnell zu testen und so schnell wie möglich sicher und zuverlässig Geschäftswerte zu liefern. Die von DevOps propagierten automatisierten Build-/Test-/Bereitstellungs- und Systemmessungen sowie andere technische Praktiken sind im Internetzeitalter unverzichtbar.

Die automatisierte Erstellung ist aufgrund der Anwendung einfach. Wenn es sich um eine Python-Anwendung handelt, ist die automatisierte Erstellung aufgrund der Existenz von Tools wie setuptools, pip, virtualenv, tox, flake8 sehr einfach. Da fast alle Linux-Systeme außerdem über integrierte Python-Interpreter verfügen, ist für die Verwendung von Python zur Automatisierung keine Vorinstallation von Software auf dem System erforderlich.

Im Hinblick auf automatisierte Tests ist das Python-basierte Robot Framework das beliebteste automatisierte Test-Framework für Anwendungen auf Unternehmensebene und hat nichts mit Sprache zu tun. Auch Cucumber hat viele Unterstützer und sein Python-Gegenstück Lettuce kann genau das Gleiche. Auch bei automatisierten Leistungstests erhält Locust immer mehr Aufmerksamkeit.

Automatisierte Konfigurationsmanagement-Tools, alte wie Chef und Puppet, werden in Ruby entwickelt und erfreuen sich immer noch großer Beliebtheit. Die neue Generation von Ansible und SaltStack – beide in Python entwickelt – ist jedoch leichter als die beiden vorherigen und wird von immer mehr Entwicklern begrüßt, was zu einem starken Druck auf ihre Vorgänger geführt hat.

In Bezug auf die Systemüberwachung und -messung nimmt das traditionelle Nagios allmählich ab, Emporkömmlinge wie Sensu werden gut angenommen und New Relic ist in Form von Cloud-Diensten zum Standard für Startups geworden. Keines davon wird direkt über Python implementiert, aber Python benötigt mit diesen Tools verbunden zu werden, ist nicht schwierig.

Zusätzlich zu den oben genannten Tools sind PaaS-Plattformen auf Python-Basis, die vollständige DevOps-Funktionen bereitstellen, wie Cloudify und Deis, noch nicht populär geworden, haben aber bereits große Aufmerksamkeit erhalten.

Webcrawler

Woher kommen die Daten von Big Data? Mit Ausnahme einiger Unternehmen, die selbst große Datenmengen generieren können, sind sie meist auf Crawler angewiesen, um Internetdaten für die Analyse zu erfassen.

Webcrawler sind die traditionellen Stärken von Python. Das beliebteste Crawler-Framework Scrapy, das HTTP-Toolkit urlib2, das HTML-Parsing-Tool beautifulsoup, der XML-Parser lxml usw. sind allesamt eigenständige Klassenbibliotheken.

Allerdings sind Webcrawler nicht nur so einfach wie das Öffnen von Webseiten und das Parsen von HTML. Ein effizienter Crawler muss in der Lage sein, eine große Anzahl flexibler gleichzeitiger Vorgänge zu unterstützen und häufig Tausende oder sogar Zehntausende Webseiten gleichzeitig zu crawlen. Die traditionelle Thread-Pool-Methode verschwendet eine Menge Ressourcen Wenn die Anzahl der Threads Tausende erreicht, werden Systemressourcen grundsätzlich verschwendet. Da Python Coroutine-Operationen gut unterstützen kann, wurden darauf basierend viele Parallelitätsbibliotheken entwickelt, wie z. B. Gevent, Eventlet und Frameworks für verteilte Aufgaben wie Celery. ZeroMQ, das als effizienter als AMQP gilt, war auch das erste Unternehmen, das eine Python-Version bereitstellte. Durch die Unterstützung hoher Parallelität können Webcrawler tatsächlich die Größenordnung von Big Data erreichen.

Die erfassten Daten benötigen eine Wortsegmentierungsverarbeitung, und Python ist in dieser Hinsicht nicht minderwertig. Das berühmte Paket zur Verarbeitung natürlicher Sprache NLTK und Jieba, das auf die Segmentierung chinesischer Wörter spezialisiert ist, sind leistungsstarke Tools für die Wortsegmentierung.

Datenverarbeitung

Alles ist bereit, wir brauchen nur noch den Ostwind. Dieser Ostwind ist der Datenverarbeitungsalgorithmus. Von der statistischen Theorie über Data Mining und maschinelles Lernen bis hin zur in den letzten Jahren vorgeschlagenen Deep-Learning-Theorie befindet sich die Datenwissenschaft in einer Zeit, in der hunderte Blumen blühen. Welche Programmierung verwenden Datenwissenschaftler?

Im Bereich der theoretischen Forschung mag die R-Sprache unter Datenwissenschaftlern am beliebtesten sein, aber die Probleme mit der R-Sprache sind auch offensichtlich. Da die R-Sprache von Statistikern erstellt wurde, ist ihre Syntax etwas seltsam. Wenn die R-Sprache außerdem ein groß angelegtes verteiltes System realisieren möchte, wird es noch lange dauern, den technischen Weg einzuschlagen. Daher verwenden viele Unternehmen die R-Sprache zum Testen von Prototypen. Nachdem der Algorithmus festgelegt wurde, wird er in die technische Sprache übersetzt.

Python ist auch eine der Lieblingssprachen von Datenwissenschaftlern. Im Gegensatz zur R-Sprache ist Python selbst eine Ingenieursprache. Die von Datenwissenschaftlern in Python implementierten Algorithmen können direkt in Produkten verwendet werden, was für Big-Data-Startups sehr hilfreich ist, um Kosten zu sparen. Offiziell aufgrund der Liebe der Datenwissenschaftler zu Python und R bietet Spark eine sehr gute Unterstützung für diese beiden Sprachen, um Datenwissenschaftler zufrieden zu stellen.

Python verfügt über viele Klassenbibliotheken für die Datenverarbeitung. Die leistungsstarken wissenschaftlichen Rechenbibliotheken NumPy und SciPy haben eine sehr gute Grundlage für andere fortgeschrittene Algorithmen gelegt. Matploglib macht das Zeichnen in Python so einfach wie Matlab. Scikit-learn und Milk implementieren viele maschinelle Lernalgorithmen, die auf diesen beiden Bibliotheken basieren und ein wichtiges Mitglied des Deep-Learning-Bereichs sind. Theano nutzt die GPU-Beschleunigung, um leistungsstarke mathematische Symbolberechnungen und mehrdimensionale Matrixberechnungen durchzuführen. Natürlich gibt es auch Pandas, eine große Datenverarbeitungsbibliothek, die im technischen Bereich weit verbreitet ist. Ihr DataFrame-Design wurde der R-Sprache entlehnt und inspirierte später das Spark-Projekt zur Implementierung eines ähnlichen Mechanismus.

Übrigens gibt es auch iPython. Dieses Tool ist so nützlich, dass ich es fast als Standardbibliothek betrachtet und vergessen habe, es vorzustellen. iPython ist eine interaktive Python-Laufumgebung, die es Ihnen ermöglicht, die Ergebnisse jedes Python-Codeteils in Echtzeit zu sehen. Standardmäßig wird iPython in der Befehlszeile ausgeführt, und Sie können ipython notebook ausführen, um es auf der Webseite auszuführen. Mit matplotlib gezeichnete Figuren können direkt eingebettet in iPython Notebook angezeigt werden.
Die Notebook-Dateien von iPython Notebook können mit anderen Personen geteilt werden, sodass andere Ihre Arbeitsergebnisse in ihrer eigenen Umgebung reproduzieren können, wenn die andere Partei keine laufende Umgebung hat, können sie auch direkt in HTML oder PDF konvertiert werden.

Warum Python

Gerade weil Anwendungsentwicklungsingenieure, Betriebs- und Wartungsingenieure sowie Datenwissenschaftler Python mögen, ist Python zu einer Full-Stack-Entwicklungssprache für Big-Data-Systeme geworden.

Für Entwicklungsingenieure sind die Eleganz und Einfachheit von Python zweifellos die größte Attraktion. Führen Sie in der interaktiven Python-Umgebung „Import“ aus und lesen Sie „Zen of Python“, und Sie werden verstehen, warum Python so attraktiv ist. Die Python-Community war schon immer sehr dynamisch, im Gegensatz zum explosionsartigen Wachstum der Softwarepakete in der NodeJS-Community war die Wachstumsrate der Python-Softwarepakete relativ stabil und auch die Qualität der Softwarepakete ist relativ hoch. Viele Leute kritisieren Python für zu strenge Anforderungen an Leerzeichen, aber gerade aufgrund dieser Anforderung ist Python bei der Durchführung großer Projekte im Vorteil gegenüber anderen Sprachen. OpenStack-Projekte umfassen insgesamt mehr als 2 Millionen Codezeilen, um dies zu beweisen.

Für Betriebs- und Wartungsingenieure besteht der größte Vorteil von Python darin, dass fast alle Linux-Distributionen über integrierte Python-Interpreter verfügen. Obwohl Shell leistungsstark ist, ist seine Syntax nicht elegant genug und das Schreiben komplexerer Aufgaben wird mühsam sein. Die Verwendung von Python als Ersatz für Shell zur Erledigung einiger komplexer Aufgaben ist eine Befreiung für das Betriebs- und Wartungspersonal.

Für Datenwissenschaftler ist Python einfach und dennoch leistungsstark. Im Vergleich zu C/C++ ist keine große Arbeit auf niedriger Ebene erforderlich und die Modellüberprüfung kann schnell durchgeführt werden. Im Vergleich zu Java verfügt Python über eine präzise Syntax und starke Ausdrucksfähigkeiten, und die gleiche Arbeit erfordert nur 1/3 des Codes; im Vergleich zu Matlab und Octave ist die technische Reife von Python höher. Mehr als ein Programmierexperte hat zum Ausdruck gebracht, dass Python die am besten geeignete Sprache für einen universitären Informatik-Programmierkurs ist – der Einführungskurs in Computer am MIT verwendet Python –, weil Python den Menschen das Wichtigste über das Programmieren beibringen kann – wie man Probleme löst.

Übrigens hat Microsoft an der PyCon 2015 teilgenommen und eine hochkarätige Ankündigung gemacht, das Python-Programmiererlebnis unter Windows zu verbessern, einschließlich der Unterstützung von Python durch Visual Studio, der Optimierung der Kompilierung von Python-C-Erweiterungen unter Windows usw. Stellen Sie sich ein zukünftiges Szenario vor, in dem Python zur Standardkomponente von Windows wird.

Das obige ist der detaillierte Inhalt vonBig-Data-Full-Stack-Entwicklungssprache – Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn