Zu den Linux-Datenanalysetools gehören: 1. Hadoop, ein Software-Framework, das große Datenmengen verteilt verarbeiten kann 2. Storm, das große Datenströme sehr zuverlässig verarbeiten kann und zur Verarbeitung von Hadoop-Batch-Daten verwendet wird; RapidMiner, verwendet für Data Mining und visuelle Modellierung; 4, WC usw.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
6 Linux-Tools zur Verarbeitung und Analyse großer Datenmengen
1. Hadoop
Hadoop ist ein Software-Framework, das zur verteilten Verarbeitung großer Datenmengen geeignet ist. Aber Hadoop erledigt dies auf zuverlässige, effiziente und skalierbare Weise.
Hadoop ist zuverlässig, da es davon ausgeht, dass Rechenelemente und Speicher ausfallen, sodass mehrere Kopien der Arbeitsdaten verwaltet werden und sichergestellt wird, dass die Verarbeitung auf ausgefallene Knoten umverteilt werden kann.
Hadoop ist effizient, weil es parallel arbeitet und die Verarbeitung durch Parallelverarbeitung beschleunigt.
Hadoop ist außerdem skalierbar und kann Petabytes an Daten verarbeiten. Darüber hinaus basiert Hadoop auf Community-Servern, ist also relativ kostengünstig und kann von jedem genutzt werden.
Hadoop ist eine verteilte Computerplattform, die es Benutzern ermöglicht, sie einfach zu erstellen und zu verwenden. Benutzer können auf Hadoop problemlos Anwendungen entwickeln und ausführen, die riesige Datenmengen verarbeiten. Es hat vor allem folgende Vorteile:
Hohe Zuverlässigkeit. Die Fähigkeit von Hadoop, Daten Stück für Stück zu speichern und zu verarbeiten, ist vertrauenswürdig.
Hohe Skalierbarkeit. Hadoop verteilt Daten und erledigt Rechenaufgaben zwischen verfügbaren Computerclustern, die problemlos auf Tausende von Knoten erweitert werden können.
Effizienz. Hadoop kann Daten dynamisch zwischen Knoten verschieben und das dynamische Gleichgewicht jedes Knotens sicherstellen, sodass die Verarbeitungsgeschwindigkeit sehr hoch ist.
Hohe Fehlertoleranz. Hadoop kann automatisch mehrere Kopien von Daten speichern und fehlgeschlagene Aufgaben automatisch neu verteilen.
Hadoop wird mit einem in Java geschriebenen Framework geliefert und ist daher ideal für die Ausführung auf Linux-Produktionsplattformen. Anwendungen auf Hadoop können auch in anderen Sprachen, beispielsweise C++, geschrieben werden.
2, HPCC
HPCC, die Abkürzung für High Performance Computing and Communications. Im Jahr 1993 legte der US-Bundeskoordinierungsrat für Wissenschaft, Technik und Technologie dem Kongress einen Bericht über das „Grand Challenge Project: High Performance Computing and Communications“ vor, der auch als HPCC-Planbericht bekannt ist und das Wissenschaftsstrategieprojekt des US-Präsidenten darstellt Ziel ist es, eine Reihe wichtiger wissenschaftlicher und technologischer Herausforderungen durch die Stärkung von Forschung und Entwicklung zu lösen. HPCC ist ein Plan zur Umsetzung der Informationsautobahn in den Vereinigten Staaten. Die Umsetzung dieses Plans wird mehrere zehn Milliarden Dollar kosten. Seine Hauptziele sind: Entwicklung skalierbarer Computersysteme und zugehöriger Software zur Unterstützung der Netzwerkübertragungsleistung auf Terabit-Ebene Entwickeln Sie Tausende von Megabit-Netzwerktechnologien, um Forschungs- und Bildungseinrichtungen sowie Netzwerkkonnektivitätsmöglichkeiten zu erweitern.
Dieses Projekt besteht hauptsächlich aus fünf Teilen:
Hochleistungscomputersystem (HPCS), das die Erforschung zukünftiger Generationen von Computersystemen, Systemdesign-Tools, fortgeschrittener typischer Systeme und die Bewertung von Originalsystemen usw. umfasst;
Storm ist eine kostenlose Open-Source-Software, ein verteiltes, fehlertolerantes Echtzeit-Computersystem. Storm kann große Datenströme sehr zuverlässig verarbeiten und wird zur Verarbeitung von Hadoop-Batch-Daten eingesetzt. Storm ist einfach, unterstützt viele Programmiersprachen und macht sehr viel Spaß. Storm ist ein Open-Source-Angebot von Twitter. Weitere bekannte Anwendungsunternehmen sind Groupon, Taobao, Alipay, Alibaba, Le Elements, Admaster usw.
Storm hat viele Anwendungsbereiche: Echtzeitanalyse, maschinelles Online-Lernen, Non-Stop-Computing, verteiltes RPC (Remote Procedure Call Protocol, eine Methode zum Anfordern von Diensten von Remote-Computerprogrammen über das Netzwerk), ETL (Abkürzung für Extraction-Transformation). -Laden), d. h. Datenextraktion, Transformation und Laden) usw. Die Verarbeitungsgeschwindigkeit von Storm ist erstaunlich: Nach dem Test kann jeder Knoten 1 Million Datentupel pro Sekunde verarbeiten. Storm ist skalierbar, fehlertolerant und einfach einzurichten und zu betreiben. 4. Apache Drill Apache Drill implementiert Googles Dremel.
Laut Tomer Shiran, Produktmanager des Hadoop-Anbieters MapR Technologies, wurde „Drill“ als Apache-Inkubatorprojekt betrieben und wird weiterhin bei Softwareentwicklern auf der ganzen Welt beworben. Dieses Projekt wird eine Open-Source-Version von Googles Dremel Hadoop-Tool erstellen (wird von Google verwendet, um Internetanwendungen von Hadoop-Datenanalysetools zu beschleunigen). „Drill“ wird Hadoop-Benutzern dabei helfen, riesige Datenmengen schneller abzufragen.
Das „Drill“-Projekt ist tatsächlich vom Dremel-Projekt von Google inspiriert: Dieses Projekt hilft Google bei der Analyse und Verarbeitung riesiger Datensätze, einschließlich der Analyse gecrawlter Webdokumente, der Verfolgung von im Android Market installierten Anwendungsdaten und der Analyse von Spam-E-Mails sowie der Analyse von Testergebnissen Das verteilte Build-System von Google und mehr.
Durch die Entwicklung des Apache-Open-Source-Projekts „Drill“ wird von Unternehmen erwartet, dass sie die API-Schnittstellen und die flexible und leistungsstarke Architektur von Drill etablieren, um eine breite Palette von Datenquellen, Datenformaten und Abfragesprachen zu unterstützen.5. RapidMiner
RapidMiner ist die weltweit führende Data-Mining-Lösung mit weitgehend fortschrittlicher Technologie. Es deckt ein breites Spektrum an Data-Mining-Aufgaben ab, darunter verschiedene Datenarten, und kann den Entwurf und die Bewertung von Data-Mining-Prozessen vereinfachen.
Funktionen und Features
Stellen Sie Data-Mining-Technologie und -Bibliotheken kostenlos zur Verfügung
100 % in Java-Code (kann auf dem Betriebssystem ausgeführt werden)Pentaho BI Platform, die Kernarchitektur und Grundlage der Pentaho Open BI Suite, ist prozessorientiert, da ihr zentraler Controller eine Workflow-Engine ist. Die Workflow-Engine verwendet Prozessdefinitionen, um die Business-Intelligence-Prozesse zu definieren, die auf der BI-Plattform ausgeführt werden. Prozesse können einfach angepasst und neue Prozesse hinzugefügt werden. Die BI-Plattform umfasst Komponenten und Berichte zur Analyse der Leistung dieser Prozesse. Zu den Hauptelementen von Pentaho gehören derzeit Berichtserstellung, Analyse, Data Mining, Workflow-Management usw. Diese Komponenten werden über Technologien wie J2EE, WebService, SOAP, HTTP, Java, JavaScript und Portale in die Pentaho-Plattform integriert. Der Vertrieb von Pentaho erfolgt hauptsächlich in Form des Pentaho SDK.
Pentaho SDK enthält fünf Teile: Pentaho-Plattform, Pentaho-Beispieldatenbank, unabhängig ausgeführte Pentaho-Plattform, Pentaho-Lösungsbeispiele und einen vorkonfigurierten Pentaho-Netzwerkserver. Unter diesen ist die Pentaho-Plattform der wichtigste Teil der Pentaho-Plattform, einschließlich des Hauptteils des Quellcodes der Pentaho-Plattform, der Datendienste für den normalen Betrieb der Pentaho-Plattform bereitstellt, einschließlich Konfigurationsinformationen und lösungsbezogener Informationen usw. Für die Pentaho-Plattform ist dies nicht erforderlich und kann durch Konfiguration durch andere Datenbankdienste ersetzt werden Pentaho-Plattform läuft unabhängig ohne Anwendungsserverunterstützung; Pentaho Das Lösungsbeispiel ist ein Eclipse-Projekt, das zeigt, wie entsprechende Business-Intelligence-Lösungen für die Pentaho-Plattform entwickelt werden.
Die Pentaho BI-Plattform basiert auf Servern, Engines und Komponenten. Diese stellen die J2EE-Server-, Sicherheits-, Portal-, Workflow-, Regel-Engine-, Diagramm-, Kollaborations-, Content-Management-, Datenintegrations-, Analyse- und Modellierungsfunktionen des Systems bereit. Die meisten dieser Komponenten basieren auf Standards und können durch andere Produkte ersetzt werden.
9 Linux-Datenanalyse-Befehlszeilentools
1 Kopf und Schwanz
Beginnen wir zunächst mit der Dateiverarbeitung. Was ist der Inhalt der Datei? Welches Format hat sie? Sie können die Datei mit dem Befehl cat im Terminal anzeigen, aber sie ist offensichtlich nicht für die Verarbeitung von Dateien mit langem Inhalt geeignet.
Geben Sie Kopf und Ende ein, wodurch die angegebene Anzahl von Zeilen in der Datei vollständig angezeigt werden kann. Wenn Sie die Anzahl der Zeilen nicht angeben, werden standardmäßig 10 Zeilen angezeigt.
$ tail -n 3 jan2017articles.csv 02 Jan 2017,Article,Scott Nesbitt,3 tips for effectively using wikis for documentation,1,/article/17/1/tips-using-wiki-documentation,"Documentation, Wiki",710 02 Jan 2017,Article,Jen Wike Huger,The Opensource.com preview for January,0,/article/17/1/editorial-preview-january,,358 02 Jan 2017,Poll,Jason Baker,What is your open source New Year's resolution?,1,/poll/17/1/what-your-open-source-new-years-resolution,,186
In den letzten drei Zeilen konnte ich das Datum, den Namen des Autors, den Titel und einige andere Informationen finden. Da es jedoch keine Spaltenüberschriften gibt, kenne ich die spezifische Bedeutung der einzelnen Spalten nicht. Schauen Sie sich die spezifischen Überschriften für jede Spalte unten an:
$ head -n 1 jan2017articles.csv Post date,Content type,Author,Title,Comment count,Path,Tags,Word count
Jetzt ist alles klar, wir können das Veröffentlichungsdatum, den Inhaltstyp, den Autor, den Titel, die Anzahl der Einsendungen, zugehörige URLs, Tags für jeden Artikel und die Wortanzahl sehen.
2. wc
Aber was ist, wenn Sie Hunderte oder sogar Tausende von Artikeln analysieren müssen? Hier müssen Sie den Befehl wc verwenden – die Abkürzung für „word count“. wc kann Bytes, Zeichen, Wörter oder Zeilen einer Datei zählen. In diesem Beispiel möchten wir die Anzahl der Zeilen im Artikel wissen.
$ wc -l jan2017articles.csv 93 jan2017articles.csv
Diese Datei hat insgesamt 93 Zeilen. Wenn man bedenkt, dass die erste Zeile den Dateititel enthält, kann man davon ausgehen, dass es sich bei dieser Datei um eine Liste mit 92 Artikeln handelt.
3. grep
Nachfolgend wird eine neue Frage aufgeworfen: Wie viele Artikel beziehen sich auf Sicherheitsthemen? Um das Ziel zu erreichen, gehen wir davon aus, dass in den erforderlichen Artikeln das Wort Sicherheit im Titel, im Tag oder auf anderem Gebiet erwähnt wird Position. Derzeit kann das Grep-Tool verwendet werden, um Dateien nach bestimmten Zeichen zu durchsuchen oder andere Suchmuster zu implementieren. Dies ist ein äußerst leistungsfähiges Tool, da wir mithilfe regulärer Ausdrücke sogar äußerst präzise Übereinstimmungsmuster erstellen können. Aber hier müssen wir nur eine einfache Zeichenfolge finden.
$ grep -i "security" jan2017articles.csv 30 Jan 2017,Article,Tiberius Hefflin,4 ways to improve your security online right now,3,/article/17/1/4-ways-improve-your-online-security,Security and encryption,1242 28 Jan 2017,Article,Subhashish Panigrahi,How communities in India support privacy and software freedom,0,/article/17/1/how-communities-india-support-privacy-software-freedom,Security and encryption,453 27 Jan 2017,Article,Alan Smithee,Data Privacy Day 2017: Solutions for everyday privacy,5,/article/17/1/every-day-privacy,"Big data, Security and encryption",1424 04 Jan 2017,Article,Daniel J Walsh,50 ways to avoid getting hacked in 2017,14,/article/17/1/yearbook-50-ways-avoid-getting-hacked,"Yearbook, 2016 Open Source Yearbook, Security and encryption, Containers, Docker, Linux",2143
Das von uns verwendete Format ist grep plus das Flag -i (das grep darüber informiert, dass bei grep die Groß-/Kleinschreibung nicht beachtet wird), plus das Muster, nach dem wir suchen möchten, und schließlich den Speicherort der Zieldatei, nach der wir suchen. Schließlich haben wir 4 sicherheitsrelevante Artikel gefunden. Wenn der Suchumfang spezifischer ist, können wir Pipe verwenden – es kann grep mit dem Befehl wc kombinieren, um herauszufinden, in wie vielen Zeilen Sicherheitsinhalte erwähnt werden.
$ grep -i "security" jan2017articles.csv | wc -l 4
Auf diese Weise extrahiert wc die Ausgabe des grep-Befehls und verwendet sie als Eingabe. Es ist offensichtlich, dass diese Kombination, gepaart mit ein wenig Shell-Scripting, das Terminal sofort in ein leistungsstarkes Datenanalysetool verwandelt.
4, tr
In den meisten Analyseszenarien werden wir es mit CSV-Dateien zu tun haben – aber wie konvertieren wir sie in andere Formate, um unterschiedliche Anwendungen zu erreichen? Hier konvertieren wir sie in ein HTML-Format, um Tabellen für die Datennutzung zu übergeben. Der Befehl tr kann Ihnen dabei helfen, dieses Ziel zu erreichen. Er kann einen Zeichentyp in einen anderen Typ konvertieren. In ähnlicher Weise können Sie auch den Pipe-Befehl verwenden, um das Andocken von Ausgabe und Eingabe zu erreichen.
Als nächstes versuchen wir ein weiteres mehrteiliges Beispiel, nämlich die Erstellung einer TSV-Datei (tabulatorgetrennte Werte), die nur Artikel enthält, die am 20. Januar veröffentlicht wurden.
$ grep "20 Jan 2017" jan2017articles.csv | tr ',' '/t' > jan20only.tsv
Zuerst verwenden wir grep für die Datumsabfrage. Wir leiten dieses Ergebnis an den Befehl tr weiter und ersetzen mit diesem alle Kommas durch Tabulatoren (dargestellt als „/t“). Aber wohin geht das Ergebnis? Hier verwenden wir das Zeichen >, um das Ergebnis in eine neue Datei anstatt auf den Bildschirm auszugeben. Auf diese Weise können wir sicherstellen, dass die Datei dqywjan20only.tsv die erwarteten Daten enthält.
$ cat jan20only.tsv 20 Jan 2017 Article Kushal Das 5 ways to expand your project's contributor base 2 /article/17/1/expand-project-contributor-base Getting started 690 20 Jan 2017 Article D Ruth Bavousett How to write web apps in R with Shiny 2 /article/17/1/writing-new-web-apps-shiny Web development 218 20 Jan 2017 Article Jason Baker "Top 5: Shell scripting the Cinnamon Linux desktop environment and more" 0 /article/17/1/top-5-january-20 Top 5 214 20 Jan 2017 Article Tracy Miranda How is your community promoting diversity? 1 /article/17/1/take-action-diversity-tech Diversity and inclusion 1007
5, sortieren
Wenn wir zuerst die spezifische Spalte finden möchten, die die meisten Informationen enthält, wie sollen wir das tun? Angenommen, wir müssen wissen, welcher Artikel die längste Liste neuer Artikel enthält, und dann die 1 Zuvor erhalten In der Artikelliste vom 20. März können wir den Sortierbefehl verwenden, um die Wortanzahl der Spalte zu sortieren. In diesem Fall müssen wir die Zwischendatei nicht verwenden und können die Pipe weiterhin verwenden. Aber die Aufteilung langer Befehlsketten in kürzere Teile kann oft den gesamten Vorgang vereinfachen.
$ sort -nr -t$'/t' -k8 jan20only.tsv | head -n 1 20 Jan 2017 Article Tracy Miranda How is your community promoting diversity? 1 /article/17/1/take-action-diversity-tech Diversity and inclusion 1007
以上是一条长命令,我们尝试进行拆分。首先,我们使用sort命令对字数进行排序。-nr选项告知sort以数字排序,并将结果进行反向排序(由大到小)。此后的-t$'/t'则告知sort其中的分隔符为tab('/t')。其中的$要求此shell为一条需要处理的字符串,并将/n返回为tab。而-k8部分则告知sort命令使用第八列,即本示例中进行字数统计的目标列。
最后,输出结果被pipe至head,处理后在结果中显示此文件中包含最多字数的文章标题。
6、sed
大家可能还需要在文件中选择特定某行。这里可以使用sed。如果希望将全部包含标题的多个文件加以合并,并只为整体文件显示一组标题,即需要清除额外内容; 或者希望只提取特定行范围,同样可以使用sed。另外,sed还能够很好地完成批量查找与替换任务。
下面立足之前的文章列表创建一个不含标题的新文件,用于同其他文件合并(例如我们每月都会定期生成某个文件,现在需要将各个月份的内容进行合并)。
$ sed '1 d' jan2017articles.csv > jan17no_headers.csv
其中的“1 d”选项要求sed删除第一行。
7、cut
了解了如何删除行,那么我们该如何删除列?或者说如何只选定某一列?下面我们尝试为之前生成的列表创建一份新的作者清单。
$ cut -d',' -f3 jan17no_headers.csv > authors.txt
在这里,通过cut与-d相配合代表着我们需要第三列(-f3),并将结果发送至名为authors.txt的新文件。
8、uniq
作者清单已经完成,但我们要如何知悉其中包含多少位不同的作者?每位作者又各自编写了多少篇文章?这里使用unip。下面我们对文件进行sort排序,找到唯一值,而后计算每位作者的文章数量,并用结果替换原本内容。
sort authors.txt | uniq -c > authors.txt
现在已经可以看到每位作者的对应文章数,下面检查最后三行以确保结果正确。
$ tail -n3 authors-sorted.txt 1 Tracy Miranda 1 Veer Muchandi 3 VM (Vicky) Brasseur
9、awk
最后让我们了解最后一款工具,awk。awk是一款出色的替换性工具,当然其功能远不止如此。下面我们重新回归1月12日文章列表TSV文件,利用awk创建新列表以标明各篇文章的作者以及各作者编写的具体字数。
$ awk -F "/t" '{print $3 " " $NF}' jan20only.tsv Kushal Das 690 D Ruth Bavousett 218 Jason Baker 214 Tracy Miranda 1007
其中的-F "/t"用于告知awk目前处理的是由tab分隔的数据。在大括号内,我们为awk提供执行代码。$3代表要求其将输出第三行,而$NF则代表输出最后一行(即‘字段数’的缩写),并在两项结果间添加两个空格以进行明确划分。
虽然这里列举的例子规模较小,看似不必使用上述工具解决,但如果将范围扩大到包含93000行的文件,那么它显然很难利用电子表格程序进行处理。
利用这些简单的工具与小型脚本,大家可以避免使用数据库工具并轻松完成大量数据统计工作。无论您是专业人士还是业余爱好者,它的作用都不容忽视。
相关推荐:《Linux视频教程》
Das obige ist der detaillierte Inhalt vonWas sind die Linux-Datenanalysetools?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!