Les outils d'analyse de données Linux incluent : 1. Hadoop, qui est un cadre logiciel capable de traiter de grandes quantités de données de manière distribuée ; 2. Storm, qui peut traiter d'énormes flux de données de manière très fiable et est utilisé pour traiter les données par lots Hadoop ; RapidMiner, utilisé pour l'exploration de données et la modélisation visuelle 4, wc, etc.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
6 outils Linux de traitement et d'analyse du Big Data
1. Hadoop
Hadoop est un framework logiciel capable de traiter distribué de grandes quantités de données. Mais Hadoop le fait de manière fiable, efficace et évolutive.
Hadoop est fiable car il suppose que les éléments de calcul et le stockage échoueront. Il conserve donc plusieurs copies des données de travail, garantissant que le traitement peut être redistribué sur les nœuds défaillants.
Hadoop est efficace car il fonctionne de manière parallèle, accélérant le traitement grâce au traitement parallèle.
Hadoop est également évolutif et peut gérer des pétaoctets de données. De plus, Hadoop s'appuie sur des serveurs communautaires, ce qui le rend relativement peu coûteux et peut être utilisé par n'importe qui.
Hadoop est une plate-forme informatique distribuée qui permet aux utilisateurs de la créer et de l'utiliser facilement. Les utilisateurs peuvent facilement développer et exécuter des applications qui gèrent d'énormes quantités de données sur Hadoop. Il présente principalement les avantages suivants :
Haute fiabilité. La capacité de Hadoop à stocker et traiter les données petit à petit est digne de confiance.
Haute évolutivité. Hadoop distribue les données et effectue des tâches informatiques entre les clusters d'ordinateurs disponibles, qui peuvent être facilement étendus à des milliers de nœuds.
Efficacité. Hadoop peut déplacer dynamiquement les données entre les nœuds et assurer l'équilibre dynamique de chaque nœud, de sorte que la vitesse de traitement est très rapide.
Haute tolérance aux pannes. Hadoop peut enregistrer automatiquement plusieurs copies de données et redistribuer automatiquement les tâches ayant échoué.
Hadoop est livré avec un framework écrit en langage Java, il est donc idéal pour fonctionner sur les plateformes de production Linux. Les applications sur Hadoop peuvent également être écrites dans d'autres langages, tels que C++.
2, HPCC
HPCC, l'abréviation de High Performance Computing and Communications. En 1993, le Conseil fédéral de coordination pour la science, l'ingénierie et la technologie des États-Unis a soumis au Congrès un rapport sur le « Grand Challenge Project : High Performance Computing and Communications », également connu sous le nom de rapport du plan HPCC, qui est le projet de stratégie scientifique du président américain. L'objectif est de résoudre un certain nombre de défis scientifiques et technologiques importants en renforçant la recherche et le développement. HPCC est un plan visant à mettre en œuvre l'autoroute de l'information aux États-Unis. La mise en œuvre de ce plan coûtera des dizaines de milliards de dollars. Ses principaux objectifs sont les suivants : développer des systèmes informatiques évolutifs et des logiciels associés pour prendre en charge des performances de transmission réseau de l'ordre du térabit. développer des milliers de technologies de réseau Megabit pour développer les établissements de recherche et d'enseignement ainsi que les capacités de connectivité réseau.
Ce projet se compose principalement de cinq parties :
Système informatique haute performance (HPCS), qui comprend la recherche sur les générations futures de systèmes informatiques, les outils de conception de systèmes, les systèmes typiques avancés et l'évaluation des systèmes originaux ;
Avancé ; Technologie logicielle et algorithmes (ASTA), qui couvre la prise en charge logicielle pour d'énormes défis, la conception de nouveaux algorithmes, les branches et outils logiciels, les centres de recherche en calcul informatique et en calcul haute performance, etc.
Grille nationale de recherche et d'éducation (NREN) ; , qui couvre la recherche et le développement de stations intermédiaires et la transmission au niveau milliard ;
Recherche fondamentale et ressources humaines (BRHR), qui couvre la recherche fondamentale, la formation, l'éducation et le matériel de cours, et est conçue pour récompenser les enquêteurs à travers - Initial , enquête à long terme sur l'augmentation du flux d'innovation dans le calcul haute performance évolutif, l'augmentation du bassin de personnel qualifié et formé en améliorant l'éducation et la formation et les communications en informatique haute performance, et la fourniture de l'infrastructure nécessaire pour soutenir ces enquêtes et activités de recherche.
Information Infrastructure Technology and Applications (IITA), conçue pour assurer le leadership des États-Unis dans le développement des technologies de l'information avancées.
3. Storm
Storm est un logiciel open source gratuit, un système informatique en temps réel distribué et tolérant aux pannes. Storm peut gérer d'énormes flux de données de manière très fiable et est utilisé pour traiter les données par lots Hadoop. Storm est simple, prend en charge de nombreux langages de programmation et est très amusant à utiliser. Storm est open source par Twitter. D'autres sociétés d'applications bien connues incluent Groupon, Taobao, Alipay, Alibaba, Le Elements, Admaster, etc.
Storm a de nombreux domaines d'application : analyse en temps réel, apprentissage automatique en ligne, informatique non-stop, RPC distribué (protocole d'appel de procédure à distance, méthode de demande de services à des programmes informatiques distants via le réseau), ETL (abréviation de Extraction-Transformation -Chargement), c'est-à-dire extraction, transformation et chargement des données), etc. La vitesse de traitement de Storm est incroyable : après les tests, chaque nœud peut traiter 1 million de tuples de données par seconde. Storm est évolutif, tolérant aux pannes et facile à configurer et à utiliser.
4. Apache Drill
Afin d'aider les utilisateurs d'entreprise à trouver des moyens plus efficaces d'accélérer l'interrogation des données Hadoop, l'Apache Software Foundation a récemment lancé un projet open source appelé "Drill". Apache Drill implémente le Dremel de Google.
Selon Tomer Shiran, chef de produit du fournisseur Hadoop MapR Technologies, « Drill » a été exploité comme un projet d'incubateur Apache et continuera d'être promu auprès des ingénieurs logiciels du monde entier.
Ce projet créera une version open source de l'outil Dremel Hadoop de Google (utilisé par Google pour accélérer les applications Internet des outils d'analyse de données Hadoop). « Drill » aidera les utilisateurs de Hadoop à interroger plus rapidement des ensembles de données volumineux.
Le projet "Drill" est en fait inspiré du projet Dremel de Google : ce projet aide Google à analyser et à traiter des ensembles de données massifs, notamment en analysant des documents Web explorés, en suivant les données des applications installées sur l'Android Market et en analysant les courriers indésirables, en analysant les résultats des tests sur Le système de build distribué de Google, et bien plus encore.
En développant le projet open source Apache « Drill », les organisations devront établir les interfaces API de Drill et l'architecture flexible et puissante pour aider à prendre en charge un large éventail de sources de données, de formats de données et de langages de requête.
5. RapidMiner
RapidMiner est la première solution d'exploration de données au monde dotée d'une technologie avancée dans une très large mesure. Il couvre un large éventail de tâches d'exploration de données, y compris divers arts des données, et peut simplifier la conception et l'évaluation des processus d'exploration de données.
Fonction et fonctionnalités
Fournir gratuitement une technologie et des bibliothèques d'exploration de données
100 % en code Java (peut fonctionner sur le système d'exploitation)
Le processus d'exploration de données est simple, puissant et intuitif
XML interne Garanti un format standardisé pour représenter l'échange de processus d'exploration de données
Peut automatiser des processus à grande échelle avec des langages de script simples
Vues de données à plusieurs niveaux pour garantir des données valides et transparentes
Interaction avec interface utilisateur graphique Prototype
Ligne de commande (mode batch) application automatique à grande échelle
API Java (interface de programmation d'application)
Plug-in simple et mécanisme de promotion
Moteur de visualisation puissant, de nombreuses modélisations visuelles haut de gamme de pointe des données dimensionnelles
Plus de 400 opérateurs d'exploration de données pris en charge
L'Université de Yale a été utilisée avec succès dans de nombreux domaines d'application différents, notamment l'exploration de texte, l'exploration multimédia, la conception de fonctionnalités, les données flow mining, intégration Développement de méthodes et data mining distribué.
6. Pentaho BI
La plateforme Pentaho BI est différente des produits BI traditionnels. Il s'agit d'un cadre centré sur les processus et orienté solution. Son objectif est d'intégrer une série de produits BI au niveau de l'entreprise, de logiciels open source, d'API et d'autres composants pour faciliter le développement d'applications de business intelligence. Son émergence permet d'intégrer une série de produits indépendants de business intelligence, tels que Jfree, Quartz, etc., pour former des solutions de business intelligence complexes et complètes.
Pentaho BI Platform, l'architecture de base et le fondement de la suite Pentaho Open BI, est centrée sur les processus car son contrôleur central est un moteur de workflow. Le moteur de workflow utilise des définitions de processus pour définir les processus de Business Intelligence qui s'exécutent sur la plateforme de BI. Les processus peuvent être facilement personnalisés et de nouveaux processus peuvent être ajoutés. La plateforme BI comprend des composants et des rapports pour analyser les performances de ces processus. Actuellement, les principaux éléments de Pentaho incluent la génération de rapports, l'analyse, l'exploration de données, la gestion des flux de travail, etc. Ces composants sont intégrés à la plateforme Pentaho via des technologies telles que J2EE, WebService, SOAP, HTTP, Java, JavaScript et Portals. La distribution de Pentaho se fait principalement sous la forme du SDK Pentaho.
Le SDK Pentaho contient cinq parties : la plate-forme Pentaho, la base de données d'exemples Pentaho, la plate-forme Pentaho exécutée indépendamment, des exemples de solutions Pentaho et un serveur réseau Pentaho préconfiguré. Parmi eux, la plate-forme Pentaho est la partie la plus importante de la plate-forme Pentaho, y compris le corps principal du code source de la plate-forme Pentaho ; la base de données Pentaho fournit des services de données pour le fonctionnement normal de la plate-forme Pentaho, y compris des informations de configuration et des informations relatives à la solution. , etc. Pour la plateforme Pentaho, il n'est pas nécessaire et peut être remplacé par d'autres services de base de données via la configuration ; la plateforme Pentaho qui peut fonctionner indépendamment est un exemple du mode d'exécution indépendant de la plateforme Pentaho, qui montre comment réaliser le La plateforme Pentaho fonctionne de manière indépendante sans prise en charge du serveur d'applications ; Pentaho L'exemple de solution est un projet Eclipse qui montre comment développer des solutions de business intelligence associées pour la plateforme Pentaho.
La plateforme Pentaho BI est construite sur des serveurs, des moteurs et des composants. Ceux-ci fournissent le serveur J2EE, la sécurité, le portail, le flux de travail, le moteur de règles, la cartographie, la collaboration, la gestion de contenu, l'intégration de données, l'analyse et la modélisation du système. La plupart de ces composants sont basés sur des normes et peuvent être remplacés par d'autres produits.
9 outils de ligne de commande d'analyse de données Linux
1 tête et queue
Tout d'abord, commençons par le traitement des fichiers. Quel est le contenu du fichier ? Quel est son format ? Vous pouvez utiliser la commande cat pour afficher le fichier dans le terminal, mais elle n'est évidemment pas adaptée au traitement de fichiers au contenu long.
Entrez head et tail, qui peuvent afficher complètement le nombre de lignes spécifié dans le fichier. Si vous ne précisez pas le nombre de lignes, 10 d'entre elles seront affichées par défaut.
$ 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
Dans les trois dernières lignes, j'ai pu trouver la date, le nom de l'auteur, le titre et quelques autres informations. Cependant, en raison du manque d’en-têtes de colonnes, je ne connais pas la signification spécifique de chaque colonne. Consultez les titres spécifiques à chaque colonne ci-dessous :
$ head -n 1 jan2017articles.csv Post date,Content type,Author,Title,Comment count,Path,Tags,Word count
Maintenant, tout est clair, nous pouvons voir la date de publication, le type de contenu, l'auteur, le titre, le nombre de soumissions, les URL associées, les balises pour chaque article et le nombre de mots.
2. wc
Mais que se passe-t-il si vous avez besoin d'analyser des centaines, voire des milliers d'articles ? Ici, vous devez utiliser la commande wc - qui est l'abréviation de "word count". wc peut compter les octets, les caractères, les mots ou les lignes d'un fichier. Dans cet exemple, nous souhaitons connaître le nombre de lignes de l’article.
$ wc -l jan2017articles.csv 93 jan2017articles.csv
Ce fichier comporte 93 lignes au total. Étant donné que la première ligne contient le titre du fichier, on peut supposer que ce fichier est une liste de 92 articles.
3. grep
Une nouvelle question se pose ci-dessous : Combien d'articles sont liés à des sujets de sécurité ? Afin d'atteindre l'objectif, nous supposons que les articles requis mentionneront le mot sécurité dans le titre, le tag ou autre ? position. À l'heure actuelle, l'outil grep peut être utilisé pour rechercher des fichiers par caractères spécifiques ou implémenter d'autres modèles de recherche. Il s'agit d'un outil extrêmement puissant car nous pouvons même créer des modèles de correspondance extrêmement précis à l'aide d'expressions régulières. Mais ici, il suffit de trouver une simple chaîne.
$ 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
Le format que nous utilisons est grep plus l'indicateur -i (informant grep que grep n'est pas sensible à la casse), plus le modèle que nous voulons rechercher, et enfin l'emplacement du fichier cible que nous recherchons. Finalement, nous avons trouvé 4 articles liés à la sécurité. Si la portée de la recherche est plus spécifique, nous pouvons utiliser pipe - il peut combiner grep avec la commande wc pour savoir combien de lignes mentionnent du contenu de sécurité.
$ grep -i "security" jan2017articles.csv | wc -l 4
De cette façon, wc extraira la sortie de la commande grep et l'utilisera comme entrée. Il est évident que cette combinaison, couplée à un peu de script shell, transforme instantanément le terminal en un puissant outil d'analyse de données.
4, tr
Dans la plupart des scénarios d'analyse, nous serons confrontés à des fichiers CSV - mais comment pouvons-nous les convertir vers d'autres formats pour réaliser différentes applications ? Ici, nous le convertissons en formulaire HTML pour transmettre des tableaux pour l'utilisation des données ? La commande tr peut vous aider à atteindre cet objectif, elle peut convertir un type de caractères en un autre type. De même, vous pouvez également utiliser la commande pipe pour réaliser un ancrage sortie/entrée.
Ensuite, essayons un autre exemple en plusieurs parties, qui consiste à créer un fichier TSV (valeurs séparées par des tabulations) qui contient uniquement les articles publiés le 20 janvier.
$ grep "20 Jan 2017" jan2017articles.csv | tr ',' '/t' > jan20only.tsv
Tout d'abord, nous utilisons grep pour la requête de date. Nous transmettons ce résultat à la commande tr et utilisons cette dernière pour remplacer toutes les virgules par des tabulations (représentées par '/t'). Mais où va le résultat ? Ici, nous utilisons le caractère > pour afficher le résultat dans un nouveau fichier plutôt qu'à l'écran. De cette façon, nous pouvons nous assurer que le fichier dqywjan20only.tsv contient les données attendues.
$ 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, trier
Si nous voulons d'abord trouver la colonne spécifique qui contient le plus d'informations, comment devons-nous procéder Supposons que nous ayons besoin de savoir quel article contient la plus longue liste de nouveaux articles, puis face au 1 ? précédemment obtenu Dans la liste des articles du 20 mars, nous pouvons utiliser la commande sort pour trier le nombre de mots dans la colonne. Dans ce cas, nous n’avons pas besoin d’utiliser le fichier intermédiaire et pouvons continuer à utiliser le tube. Mais diviser les longues chaînes de commande en parties plus courtes peut souvent simplifier l’ensemble de l’opération.
$ 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视频教程》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!