Linux データ分析ツールとは何ですか?

青灯夜游
リリース: 2022-05-11 17:41:34
オリジナル
3724 人が閲覧しました

Linux データ分析ツールには次のものが含まれます: 1. 大量のデータの分散処理が可能なソフトウェア フレームワークである Hadoop; 2. 巨大なデータ ストリームを非常に確実に処理でき、Hadoop バッチの処理に使用される Storm . データ; 3. データ マイニングとビジュアル モデリングに使用される RapidMiner; 4. トイレなど。

Linux データ分析ツールとは何ですか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

6 Linux ビッグデータ処理および分析ツール

1、Hadoop

Linux データ分析ツールとは何ですか?

Hadoop は、大量のデータを分散処理できるソフトウェア フレームワークです。しかし、Hadoop はそれを、信頼性が高く、効率的で、スケーラブルな方法で実行します。

  • Hadoop は、計算要素とストレージに障害が発生することを前提としており、作業データの複数のコピーを維持し、障害が発生したノードに対して処理を再分散できるようにするため、信頼性が高くなります。

  • Hadoop は並列的に動作するため効率的であり、並列処理によって処理が高速化されます。

  • Hadoop はスケーラブルでもあり、ペタバイト規模のデータを処理できます。さらに、Hadoop はコミュニティ サーバーに依存しているため、比較的低コストで誰でも使用できます。

Hadoop は、ユーザーが簡単に構築して使用できる分散コンピューティング プラットフォームです。ユーザーは、Hadoop 上で大量のデータを処理するアプリケーションを簡単に開発して実行できます。主に次の利点があります。

  • 高い信頼性。データをビットごとに保存して処理する Hadoop の機能は信頼に値します。

  • 高い拡張性。 Hadoop はデータを分散し、利用可能なコンピューター クラスター間でコンピューティング タスクを完了します。クラスターは数千のノードに簡単に拡張できます。 ############効率。 Hadoop はノード間でデータを動的に移動し、各ノードの動的バランスを確保できるため、処理速度が非常に高速です。

  • #高い耐障害性。 Hadoop は、データの複数のコピーを自動的に保存し、失敗したタスクを自動的に再配布できます。

  • Hadoop には Java 言語で書かれたフレームワークが付属しているため、Linux 運用プラットフォームで実行するのが理想的です。 Hadoop 上のアプリケーションは、C などの他の言語で作成することもできます。

  • 2、HPCC

HPCC、High Performance Computing and Communications の略称。 1993 年、米国連邦科学、工学、技術調整評議会は、米国大統領の科学戦略プロジェクトである「グランド チャレンジ プロジェクト: 高性能コンピューティングと通信」に関する報告書を議会に提出しました。この報告書は HPCC 計画報告書としても知られています。 . 研究開発を強化することで、多くの重要な科学技術的課題を解決することが目的です。 HPCC は米国で情報ハイウェイを実現する計画です。この計画の実現には数百億ドルの費用がかかります。その主な目標は次のとおりです。テラビット レベルのネットワーク伝送パフォーマンスをサポートするスケーラブルなコンピューティング システムと関連ソフトウェアを開発すること。研究および教育機関とネットワーク接続機能を拡張するために、数千のメガビット ネットワーク テクノロジを開発します。

プロジェクトは主に 5 つの部分で構成されています:

ハイパフォーマンス コンピュータ システム (HPCS)。これには、次世代のコンピュータ システム、システム設計ツール、高度な評価に関する研究が含まれます。典型的なシステムとオリジナル システムなど;

  • 高度なソフトウェア テクノロジーとアルゴリズム (ASTA)、大きな課題に対するソフトウェア サポート、新しいアルゴリズム設計、ソフトウェア ブランチとツール、および計算をカバーします。ハイパフォーマンス コンピューティング研究センターなど;

  • National Research and Education Grid (NREN)、中間ステーションと 10 億ビット伝送の研究開発を含む;

  • Basic Research and Human Resources (BRHR) は、スケーラブルなハイパフォーマンス コンピューティングにおける初期の長期調査に対する研究者に報酬を与えるために設計された、基礎研究、トレーニング、教育、カリキュラム資料のコレクションです。革新的なアイデアの流れ、改善された教育とハイパフォーマンス コンピューティングのトレーニングとコミュニケーションを通じて熟練した訓練を受けた人材のプールを増やし、これらの調査と研究活動をサポートするために必要なインフラストラクチャを提供します。

  • 情報インフラストラクチャ技術とアプリケーション (IITA) は、高度な情報技術の開発における米国のリーダーシップを確保することを目的としています。

  • 3. Storm

#Storm は、無料のオープンソース ソフトウェアであり、分散型のフォールト トレラントなリアルタイム コンピューティング システムです。 Storm は、巨大なデータ ストリームを非常に確実に処理でき、Hadoop バッチ データの処理に使用されます。 Storm はシンプルで、多くのプログラミング言語をサポートしており、使用するのが非常に楽しいです。 Storm は Twitter によってオープンソース化されており、その他の有名なアプリケーション企業としては、Groupon、Taobao、Alipay、Alibaba、Le Elements、Admaster などが挙げられます。

Storm には、リアルタイム分析、オンライン機械学習、ノンストップ コンピューティング、分散 RPC (リモート プロセス コール プロトコル、ネットワークを介してリモート コンピューター プログラムからサービスを要求する方法)、ETL (抽出-変換) など、多くの応用分野があります。 -Loading)Data Extraction, Transformation and Loadingの略)など。 Storm の処理速度は驚くべきもので、テスト後、各ノードは 1 秒あたり 100 万のデータ タプルを処理できます。 Storm はスケーラブルで耐障害性があり、セットアップと操作が簡単です。

4. Apache ドリル

Linux データ分析ツールとは何ですか?

企業ユーザーが Hadoop データ クエリを高速化するより効果的な方法を見つけるのを支援するために、Apache Software Foundation 協会は最近、「Drill」と呼ばれるオープンソース プロジェクトを立ち上げました。 Apache Drill は Google の Dremel を実装しています。

Hadoop ベンダー MapR Technologies のプロダクト マネージャーである Tomer Shiran 氏によると、「Drill」は Apache インキュベーター プロジェクトとして運営されており、今後も世界中のソフトウェア エンジニアに普及していく予定です。

このプロジェクトは、Google の Dremel Hadoop ツール (Google が Hadoop データ分析ツールのインターネット アプリケーションを高速化するために使用している) のオープンソース バージョンを作成します。 「ドリル」は、Hadoop ユーザーが大量のデータ セットをより迅速にクエリするのに役立ちます。

「Drill」プロジェクトは、実際には Google の Dremel プロジェクトからインスピレーションを受けています: このプロジェクトは、Google が Web ドキュメントの分析とクロール、Android マーケットにインストールされているアプリケーション データの追跡など、大量のデータ セットの分析と処理を支援します。スパムの分析、 Google の分散ビルド システムでのテスト結果の分析など。

「Drill」Apache オープン ソース プロジェクトを開発することで、組織は Drill の API インターフェイスと柔軟で強力なアーキテクチャを確立して、幅広いデータ ソース、データ形式、クエリ言語をサポートできるようになります。

5、RapidMiner

Linux データ分析ツールとは何ですか?

RapidMiner は、非常に高度なテクノロジーを備えた世界をリードするデータ マイニング ソリューションです。さまざまなデータ アートを含む幅広いデータ マイニング タスクをカバーし、データ マイニング プロセスの設計と評価を簡素化できます。

機能と特徴

  • 無料のデータ マイニング テクノロジとライブラリ

  • 100% Java コード (オペレーションで実行可能)システム)

  • データ マイニング プロセスはシンプル、強力、直感的です

  • 内部 XML により、データ マイニング プロセスの交換を表す標準化された形式が保証されます

  • シンプルなスクリプト言語を使用して大規模なプロセスを自動化できます

  • マルチレベルのデータ ビューで有効かつ透過的なデータを確保します

  • グラフィカル ユーザー インターフェイスの対話型プロトタイプ

  • コマンド ライン (バッチ モード) 自動大規模アプリケーション

  • Java API (アプリケーション プログラミング インターフェイス)

  • シンプルなプラグインとプロモーション メカニズム

  • 強力な視覚化エンジン、高次元の多くの最先端のビジュアル モデリングデータ

  • 400 を超えるデータ マイニング オペレーターをサポート

Yale は、テキスト マイニング、マルチメディア マイニング、機能設計、データフローマイニング、統合開発手法、分散データマイニング。

6. Pentaho BI

Linux データ分析ツールとは何ですか?

Pentaho BI プラットフォームは、従来の BI 製品とは異なり、プロセス中心です。フレームワーク。その目的は、一連のエンタープライズレベルの BI 製品、オープンソース ソフトウェア、API、およびその他のコンポーネントを統合して、ビジネス インテリジェンス アプリケーションの開発を促進することです。この登場により、Jfree、Quartz などの一連の独立したビジネス インテリジェンス製品を統合して、複雑で完全なビジネス インテリジェンス ソリューションを形成できるようになります。

Pentaho Open BI スイートのコア アーキテクチャおよび基盤である Pentaho BI プラットフォームは、中央コントローラーがワークフロー エンジンであるため、プロセス中心です。ワークフロー エンジンは、プロセス定義を使用して、BI プラットフォーム上で実行されるビジネス インテリジェンス プロセスを定義します。プロセスは簡単にカスタマイズでき、新しいプロセスを追加できます。 BI プラットフォームには、これらのプロセスのパフォーマンスを分析するためのコンポーネントとレポートが含まれています。現在、Pentaho の主な要素には、レポート生成、分析、データマイニング、ワークフロー管理などが含まれます。これらのコンポーネントは、J2EE、WebService、SOAP、HTTP、Java、JavaScript、ポータルなどのテクノロジーを通じて Pentaho プラットフォームに統合されます。 Pentaho のディストリビューションは主に Pentaho SDK の形式で行われます。

Pentaho SDK には、Pentaho プラットフォーム、Pentaho サンプル データベース、独立して実行される Pentaho プラットフォーム、Pentaho ソリューション サンプル、および事前設定された Pentaho ネットワーク サーバーの 5 つの部分が含まれています。その中で、Pentaho プラットフォームは、Pentaho プラットフォームのソース コード本体を含む、Pentaho プラットフォームの最も重要な部分であり、Pentaho データベースは、構成情報、ソリューション関連情報など、Pentaho プラットフォームの通常の動作のためのデータ サービスを提供します。 Pentaho プラットフォームの場合、これは必要なく、構成を通じて他のデータベース サービスに置き換えることができます。独立して実行できる Pentaho プラットフォームは、Pentaho プラットフォームの独立実行モードの例であり、 Pentaho プラットフォームはアプリケーション サーバーのサポートなしで独立して実行されます。Pentaho ソリューション サンプルは、Pentaho プラットフォームに関連するビジネス インテリジェンス ソリューションを開発する方法を示す Eclipse プロジェクトです。

Pentaho BI プラットフォームは、サーバー、エンジン、コンポーネントの基盤上に構築されています。これらは、システムの J2EE サーバー、セキュリティ、ポータル、ワークフロー、ルール エンジン、グラフ作成、コラボレーション、コンテンツ管理、データ統合、分析、モデリング機能を提供します。これらのコンポーネントのほとんどは標準ベースであり、他の製品に置き換えることができます。

9 Linux データ分析コマンド ライン ツール

1. head と tail

まず、ファイル処理から始めましょう。ファイルの内容は何ですか? その形式は何ですか? cat コマンドを使用してターミナルにファイルを表示できますが、明らかに長い内容を含むファイルの処理には適していません。

head と tail を入力すると、ファイル内の指定された行数を完全に表示できます。行数を指定しない場合は、デフォルトで 10 行が表示されます。

$ 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
ログイン後にコピー

最後の 3 行で、日付、著者名、タイトル、その他の情報を見つけることができました。ただし、列ヘッダーがないため、各列の具体的な意味がわかりません。以下の各列の具体的なタイトルを確認してください:

$ head -n 1 jan2017articles.csv
Post date,Content type,Author,Title,Comment count,Path,Tags,Word count
ログイン後にコピー

これですべてが明確になり、発行日、コンテンツ タイプ、著者、タイトル、投稿数、関連 URL、各記事のタグ、および単語が表示されます。カウント。

2. wc

しかし、何百、あるいは何千もの記事を分析する必要がある場合、どう対処すればよいでしょうか? ここでは、wc コマンドを使用する必要があります。は「ワードカウントの略称。 wc は、ファイルのバイト、文字、単語、または行をカウントできます。この例では、記事の行数を知りたいと考えています。

$ wc -l jan2017articles.csv 93 jan2017articles.csv
ログイン後にコピー

このファイルは合計 93 行あります。最初の行にファイル タイトルが含まれていることを考慮すると、このファイルは 92 件の記事のリストであると推測できます。

3, grep

以下で新しい質問が生じます: セキュリティ トピックに関連する記事はいくつありますか? 目標を達成するには、必要な記事がすべて含まれていると想定します。タイトルに「安全性」という言葉がラベルなどに記載されています。現時点では、grep ツールを使用して、特定の文字でファイルを検索したり、他の検索パターンを実装したりできます。これは、正規表現を使用して非常に正確な一致パターンを作成することもできるため、非常に強力なツールです。ただし、ここでは単純な文字列を見つけるだけで済みます。

$ 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
ログイン後にコピー

使用する形式は、 grep に -i フラグ (大文字と小文字を区別しないことを grep に通知)、検索するパターン、そして最後に検索するターゲット ファイルの場所です。 。最終的にセキュリティ関連の記事が 4 件見つかりました。検索範囲がより具体的な場合は、パイプを使用できます。これにより、 grep と wc コマンドを組み合わせて、セキュリティ コンテンツに言及している行が何行あるかを確認できます。

$ grep -i "security" jan2017articles.csv | wc -l 4
ログイン後にコピー

このようにして、wc は grep コマンドの出力を抽出し、それを入力として使用します。この組み合わせと、少しのシェル スクリプトを組み合わせることで、ターミナルが即座に強力なデータ分析ツールに変わることは明らかです。

4, tr

ほとんどの分析シナリオでは、CSV ファイルに直面しますが、さまざまなアプリケーションを実現するために、CSV ファイルを他の形式に変換するにはどうすればよいでしょうか? ここでは、テーブルを介してデータを使用できるように、HTML 形式に変換します。 tr コマンドは、あるタイプの文字を別のタイプに変換できるので、この目標を達成するのに役立ちます。同様に、パイプ コマンドを使用して出力/入力のドッキングを実現することもできます。

次に、別のマルチパートの例を試してみましょう。これは、1 月 20 日に公開された記事のみを含む TSV (タブ区切り値) ファイルを作成することです。

$ grep "20 Jan 2017" jan2017articles.csv | tr ',' '/t' > jan20only.tsv
ログイン後にコピー

まず、日付クエリに grep を使用します。この結果を tr コマンドにパイプし、後者を使用してすべてのカンマをタブ (「/t」として表します) に置き換えます。しかし、結果はどこに行くのでしょうか? ここでは、> 文字を使用して、結果を画面ではなく新しいファイルに出力します。このようにして、dqywjan20only.tsv ファイルに予期したデータが含まれていることを確認できます。

$ 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, sort

まず、最も多くの情報を含む特定の列を見つけたい場合はどうすればよいでしょうか?どの記事に最も長い新しい記事が含まれているかを知る必要があるとします。次に、以前に取得した 1 月 20 日の記事リストに直面して、sort コマンドを使用して列の単語数を並べ替えることができます。この場合、中間ファイルを使用する必要はなく、パイプを引き続き使用できます。ただし、長いコマンド チェーンを短い部分に分割すると、操作全体が簡素化されることがよくあります。

$ 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视频教程

以上がLinux データ分析ツールとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!