ゼロからの大規模な企業データ分析と機械学習プラットフォームを構築する - テクノロジー・スタック(C)について説明します

データ収集と伝達
 

Sqoopデータ転送ツール
、実際のプロジェクトの開発は、多くの場合、ビジネスデータの多くは、このようなMySQLデータベースとして、リレーショナルデータベースに格納されます。私たちは、データウェアハウス管理にこれらのデータにマイニングこのタイプの動作を統計的コンピューティング・モデルの使いやすさを集中する必要があります。

Sqoopは⼀のHadoopと(などのMySQLやOracle、PostgreSQLの、など)リレーショナルデータベース間のデータ転送のためのトップレベルのApache Software Foundationのオープンソースのデータ転送ツールです。リレーショナルデータベース内のファイルシステム(HDFS)は、分散データをエクスポートすることも可能で、Hadoopの分散ファイルシステム(HDFS)にリレーショナルデータにおける先頭データを回転させることができます。

水路のログ収集ツール
の実用的なプロジェクトでは、ソースデータの一部が保存されていない、ディスクのディレクトリ先の時間にデータベースGZ圧縮形式で保存されています。あなたは、分散ファイルシステム(HDFS)へのデータソースファイルのこのタイプを格納する必要がある場合、水路はこのトップレベルのApacheのログ収集ツールを利用することができます。

水路は⼀分散、高可用性、信頼性の高いシステム、分散ファイル・システム・ファイル(HDFS)、パブリッシュ・サブスクライブ・メッセージング・システムのようなデータストレージシステムに格納され、収集され送信された大量の異なるデータソース、(可能ですカフカ)。

カフカは、メッセージがキューに分散
Apacheのカフカ(http://kafka.apache.org)LinkedInの会社が設計・開発されてパブリッシュ・サブスクライブ・メッセージング・システムの分散ADVANCED高いスループットを、その内部設計が配布され、それは良いスケーラビリティを持ちますセックス。時間と使用前のミドルウェア内のメッセージのいくつかのカフカの作成者は、メッセージ配信の成功率は非常に高いものの場合は、厳密に、規範のJMSに従うことがわかったが、それは、そのような重い希望JMSとして、追加的な消費の数が増加しますメッセージヘッダ、およびオーバーヘッドと他のインデックス構造の種々のメンテナンス。最終的にシステムのパフォーマンスにつながる大規模なデータのアプリケーションに適していない更なる躍進を持たせることが困難です。そのため、彼らはカフカを設計するJMS仕様に従って、完全ではありませんが、転送の成功率が保証されている間の⼀劇的にそれを簡素化するために作られたオリジナルの定義の一部は、処理性能を向上させます。全体的に、カフカは、次のような特徴があります。

高性能ストレージ:特別の時間複雑度はO(1)永続的なメッセージであるので、TBに記憶されているメッセージの数が、良好な安定性を維持することができることを確実にするために設計されたディスクのデータ構造。また、メッセージは、ビジネス・インテリジェンスおよびそれを適用するために、リアルタイムで他のアプリケーションのための消費者、ETLによって何度も保存することができます。

分散生まれ:カフカが横方向に拡大しやすい複数のエージェント(ブローカー)を管理するためのZooKeeperを使用して、分散システム、およびサポート負荷分散機構のコピーとして設計されています。ZooKeeperのは、カフカが代理店を管理し、調整するために使用信頼性の高い、分散データ構造を構築することを目指しています。システムがプロキシを追加、またはプロキシ障害が失敗した場合、ZooKeeperのサービスは、彼らが他のエージェントの協調に応じて作業できるように、生産者と消費者に通知します。

高スループット:原因は大幅にストレージのパフォーマンス、スケーラビリティおよび横善を向上させるために、そうパブリッシュおよびサブスクライブの驚くべきスループットを提供しながらも、ごく普通のハードウェアカフカは、第二流あたりのメッセージ数十万人をサポートすることができます。

ステートレスプロキシ:他のメッセージ異なるシステムでは、カフカエージェントはステートレスです。エージェントは状態を消費するメッセージを記録しませんが、消費者のニーズが維持されています。

テーマ(トピック)とパーティション(パーティション):カフカと消費マシンのクラスタによってパーティションメッセージングサーバーへの支援。トピックは、メッセージの種類と考えることができ、各被験者は複数のパーティションに分割することができます。パーティションは、単一のボトルネックに到達しないよう、データの複数のサーバに分散させることができます。複数のパーティションを使用すると、同時消費能力を高める効果的に、より多くの消費者を収容することができますを意味します。コピープログラムに基づいて、バックアップおよび複数のパーティションをスケジュールすることが可能です。

消費者団体(コンシューマ・グループ)

データストレージ
のHBaseはデータベースのNoSQL分散
、高可用性、高スループット、半構造化データ、効率的なクエリのパフォーマンスおよびその他の要因、一般的なデータベース完全EMPTY難しい十分な需要のデータストレージを検討、大規模なデータセットに。うまくこのギャップを埋めるのHBaseの誕生のための自然なソリューションとなりますが、需要があります。

⼀のHBaseは、非リレーショナルデータベース(NoSQLの)分散型、列指向オープンソースであり、GoogleのBigTableの同様の能力。HBase一般的とリレーショナルデータベースは、非構造化データを格納するのに適しています。ヒント:BigTableのは、Googleの分散データストレージシステムの設計で、⼀大量のデータを扱う非リレーショナルデータベース(NoSQLの)ために使用して、便利です。HBaseのは、高可用性、パフォーマンス、列指向のストレージ、スケーラビリティおよびその他の機能を備えています。これらの機能のHBaseの使用は、あなたは、安価なサーバー上で大規模なストレージクラスタを⼀構築することができます。

シナリオ:

大規模なデータの量、およびニーズランダムアクセス、高速応答を満たしている必要があります。
我々は、動的拡張のニーズを満たすために必要があります。
リレーショナル・データベースに(クロステーブルを接続する、そのようなトランザクションのような)特性を満足するために必要。
データを書き込むときは、ハイスループット能力を持っている必要があります。
HDFS分散ファイルシステム
HDFS(Hadoopの分散ファイルシステム)が、(GFS)は、Googleファイルシステムとして実現コアのHadoopサブプロジェクトであるデータ・ストレージ管理、フローベースのデータアクセス及び処理モードにおける分散コンピューティングのための基礎であります需要と大きなファイルの開発は、安価なコモディティサーバ上で実行することができます。これは、高いフォールト・トレランス、高い信頼性、スケーラビリティ、高可用性、高いスループットを有し、他の特性は、大規模なデータセットをもたらすために、恐れ障害(大規模データセット)アプリケーション処理を大規模なデータを格納するために設けられています。多くの便利。

処理大きなデータ
のHadoop
のHadoopは、ユーザは、高速コンピューティング及びクラスタストレージの電力の分散の完全な利用の基本的な詳細を知らなくても、分散アプリケーションを開発することができ、アパッチ財団は、分散システムアーキテクチャを開発しています。定義により、2つの問題解決、見出すことができる:HDFSとのMapReduce:大規模なデータストレージ、Hadoopの、大きな2つのコアです。

今日のHadoopシステムアーキテクチャは、すでに大規模なデータ処理アプリケーションの開発・運用、ユーザーが簡単にストレージプラットフォームを分散することができ、以下のように、その主な利点です。

透明度:ユーザは、分散アプリケーションの開発の基礎となる詳細を知らなくても、分散Hadoopのできる、高速コンピューティング及びクラスタストレージのパワーをフルに活用。

高いスケーラビリティ:スケールアップと拡張に拡張は、常にボトルネックに到達し、スタンドアロンのリソースの長手方向の延長を増加させること;および横マシンクラスタの数を増加させることは、ボトルネックを達成するのは容易ではないパフォーマンスがほぼ直線的に増加し、取得します。Hadoopのクラスタノードのリソース、横モードが採用され、容易に拡張、およびパフォーマンスの大幅な改善を達成することができます。

効率:並列処理リソース、例えばHadoopをもはや限定スタンドアロンする操作(特に遅いディスク内のI / O読み取りおよび書き込み)の複数の結果、タスクを迅速にスケーリングを完了することができます。それに加えてさらに改善されます⼀パフォーマンスへのハードウェアリソースの増加に伴い、拡張性を備えています。

高い耐障害性と高い信頼性:データの損失や損傷が、自動的に他のレプリカ(複製)から復元できる場合にHadoopの多くのデータは、バックアップを持っています。同様に、コンピューティングタスクの失敗は、新しい資源ノード、自動再試行に割り当てることができます。

低コスト:Hadoopのは良いスケーラビリティと耐障害性を持っているので、それは正確で、非常に高価ADVANCEDにそのハイエンドサーバを購入する必要はありません。でも⾄パソコンへの安価なハードウェアは、リソースノードすることができます。HDFS(Hadoopの分散ファイルシステム)スケーラブル、フォールトトレラント、高性能な分散ファイルシステム、非同期レプリケーションで、読んで一度書き込みは、ストレージのために責任があります。

スパーク
スパークように高スループット、低遅延、一般的なスケーラブルな、高い耐障害性とユニバーサルエンジンを処理カリフォルニア大学バークレー校AMP研究所の大規模な分散型データによるオープンソース、です。、豊富な、統合されたデータの解析エンジンのスパークSQLを提供し、図・コンピューティングフレームワークGraphX、ライブラリMLlib機械学習、フロー計算エンジンスパークストリーミング内部開発ライブラリをスパーク。お使いの言語とスピーチScalaは実現される機能プログラミングでスパークは、スカラ座やJava、Pythonの、Rおよび他の開発言語のための豊富な開発者向けAPI、サポートを提供します。一方、スパークは、あなたもスケジュールされたタスクを実行するためのHadoop YARN、ApacheのMesosや他のリソース・マネージャーに頼ることができ、両方の独立展開可能なランニングの仕方によって、動作モードを用意しています。現在、スパークは広く金融、運輸、医療、天候などの様々な分野で利用されています。

データ分析ツール
アパッチハイブ
アパッチハイブを照会し、データを分析するために使用することができるツールのセットを提供するHadoopのデータウェアハウスに基づいています。ハイブの中の使用のHadoop分散ファイルシステム(HDFS)の動作データに格納されたSQLインタフェースを実行提供します。

ハイブ構造化データファイルは、データベースのテーブルにマップされ、そして便利なSQLクエリ機能を提供することができ、開発者はSQL文で変換することができます実行するためのMapReduceタスクのためのビジネス機能を実現します。開発者は、統計作業データウェアハウスのために非常に適した、特殊なアプリケーションのMapReudceを開発する必要はありませんので、下の学習コストのハイブは、すぐに、SQL文のような統計的なMapReduceのタスクを達成することができます。ハイブは、HQLやハイブSQLと呼ばれるSQLに似たクエリを定義します。これは、ユーザーがSQL文を書くことで、クエリ、統計情報、テーブルデータの移行や他の機能を実装することができます。また、開発者は複雑なニーズを実装するためのMapReduceおなじみマッパーとリデューサーカスタムを書くことができます。ハイブデータウェアハウスは、Hadoopの分散ファイルシステム(HDFS)の頂部、及びユーザのMapReduceコンピューティングフレームワークによって提出タスクを実行するように設計された底ハイブ上に構築されています。MapReduceのフレームワーク設計の基礎となる計算理由を、したがってより高い遅延動作データウェアハウス(ハイブ)を有し、およびジョブを送信する際に有意なリソースのオーバーヘッドを必要とする(ジョブ)とスケジューリング(スケジューラ)、ひいてはより適切なオフラインハイブを処理しますこうしたオンライン分析処理(OLAP)などのデータ、。

豚、インパラとSQLスパーク
ハイブを除くには、使用するHadoopの中で容易に格納されたユーザデータを助けるここで簡単に手の込んだ豚、インパラとSQLスパークすることができ、他のオプションがあります。私たちは、簡単にこのツールを使用する、の導入からハイブを見つけることができます、あなたは、SQLに似た言語のより深い理解を持っている必要があります。しかし⽽と一部の開発者、SQLは理解しますが、MapReduceのプログラミングが得意ではありませんが。したがって、これらの人々のために彼らの生産性を向上させるツールがありますか?豚(この文脈ではされて入ってきたhttp://pig.apache.org)、それはApacheのオープンソースプロジェクトです。非常に多くの場合、それは複数のMapReduceデータ処理プロセスを実現することができる必要があり、データ処理およびデータ変換も困難であり得ます。ブタ大きなデータを提供するには、抽象化のより高いレベル、ならびにより豊かなデータ構造を設定します。ビュー抽象的なレベルの観点から、それはスクリプト言語や言葉豚ラテン語を提供し、言語コンパイラは、データ解析要求はMapReduceの運転最適化プロセスの一連行く変換プロセス指向SQLの簡易版と考えることができます。その中でも、文は、データベース内のテーブルと同様の動作です。一方、豚はまた、データの種類だけでなく、サポートパッケージ、地図やタプルなどの高度な概念の多数を持っても、単純なデータ型をサポートしています。豚の比較演算子は、正規表現を使ってマッチング豊富なパターンを含む、比較的無傷です。したがって、豚で、ユーザーは必ずしもたMapReduceと異なるデータの開発の間の移行を簡素化しながら、SQLの構文と意味も、MapReduceジョブを制御することができます知っている必要はありません。

既存のHadoopインフラの対話型SQLクエリエンジン上の別の実行はインパラ、照会システムの開発をリードしてClouderaの会社です。HDFSとHBaseの中にSQLクエリ言語に保存されているクラスPBの大きさデータを通じて同様のApache Hiveの、インパラも。しかし、インパラはリアルタイムのデザインでよりハイブは異なるが必要と考えます。ハイブの方法は、それはまだバッチ処理であるため、困難は、対話型クエリを満たすために、SQLクエリはMapReduceのタスクに変換され、使用しています。これとは対照的に、インパラの速いペースは、それの大きな特徴となりました。この、Googleのインタラクティブなデータ分析システムドレメルへのインパラの参照を達成するために。インパラ利用寄木細工は、カラムストアを達成し、アイデアの並列MPPデータベースを描画します。同時に、それはHiveQLとJDBCインタフェース、世界的に統一されたメタデータの保存と読み込みを使用しています。ユーザーのクエリが直接現地のHBase HDFSに処理を分散または書き込みされたために、それは良いスケーラビリティと耐障害性を持っています。さらに、放棄されたMapReduce実行しているフレームいるので、それは、MapReduceジョブを開始シャッフル、ソートやその他の費用、ディスクに書き込まれた中間結果なしに、I / Oのオーバーヘッドの多くを節約するだけでなく、ネットワークを介して送信されるデータ量を削減しません。もちろん、既存のインパラのMapReduceフレームワークを置き換えるのではなく、強力な補数のMapReduceとすることを意図していません。一般的に、より良い小さい出力データ照会要求に適し、およびデータのバッチジョブの大量のためのインパラは、MapReduceはまだ良い選択です。近い将来には、処理速度の利点と、インパラは、データ処理の大きな分野で場所を占有することができると考えられる理由

機械学習
Mahoutの
主な目標は、Apache Mahoutのスケーラブルな機械学習アルゴリズムを構築することです。この拡張性は、大規模データセットのためです。ApacheのMahoutのモードでのMapReduceを実装はApacheのHadoopプラットフォーム、下で実行されているアルゴリズム。しかし、ApacheのMahoutのは、Hadoopのプラットフォームに基づいたアルゴリズムを実装するために厳密には必要ではないが、単一ノードまたは非Hadoopのプラットフォームも用意されています。非コア分散アルゴリズムのApache Mahoutのライブラリも良好な性能を持っています。

ApacheのMahoutのは、Apache Software Foundationより迅速に開発者を支援し、簡単にインテリジェントなアプリケーションを作成するために設計されたいくつかの古典的な機械学習アルゴリズムを、提供(ASF)のオープンソースプロジェクトです。このプロジェクトは、3つのパブリックリリースで、3年目に開発されました。ApacheのMahoutのプロジェクトは、クラスタリング、分類、レコメンドエンジン、頻繁子マイニングが含まれています。

Mllibスパーク 
MLlibは(ML)ライブラリを学習スパークマシンです。機械学習の作業を簡素化し、より大きなスケールへの拡張を容易にするために設計されたエンジニアリングの実践。また、一般的な学習アルゴリズムやツールなどの分類、回帰、クラスタリング、協調フィルタリング、次元削減、を含む、との数によってMLlibは、基礎となる高レベルのプリミティブとパイプラインAPIの最適化が含まれます。

 

その他のツール     
ビッグデータプラットフォームCDH(ワンストップパッケージ)
Clouderaのバージョン(「CDH」と呼ばれるのApache Hadoopを、含むClouderaののディストリビューション)、HDFS、MapReduceの、ハイブ、豚、を含むほとんどのHadoopコンポーネント、サポートするWebベースのユーザインタフェースのHBaseを、 飼育係、Sqoop、インストールビッグデータプラットフォーム、難易度の使用を簡素化します。

色相のHadoop可視
色相は、第Clouderaのデスクトップで使用されるオープンソースのApache HadoopのUIシステムは、PythonのWebフレームワークDjangoの実装に基づいているClouderaのオープンソースコミュニティへの貢献を進化させています。:私たちは、MapReduceのジョブ実行フエコレクションでサポートされているというように、例えば、HDFSの操作上のデータを備え、プロセスデータを分析するためにHadoopクラスタと対話するWebコンソール上でブラウザを使用してフエことができます

デフォルト軽量SQLiteデータベース管理セッションデータ、ユーザーの認証と認可は、MySQLのはPostgreSQL、およびOracle用にカスタマイズすることができ
、アクセスHDFSベースのファイルブラウザ(ファイルブラウザ)
ハイブクエリの開発と実行に基づいて、ハイブエディタ
のSolrに基づいて支援をすることアプリケーション検索、および、データの視覚的なビューを提供し、インストルメントパネル(ダッシュボード)は、
インパラベースのインタラクティブ問合せアプリケーションをサポートするため
のサポートスパークエディタとインストルメントパネル(ダッシュボード)
豚エディタをサポートし、スクリプトタスク提出する
サポートOozieエディタをダッシュボードとワークフロー、コーディネーターとバンドルモニタリングを通じて提出することができ
HBaseのブラウザのサポートを、データ、クエリデータを視覚化するために、HBaseのテーブルの変更
サポートメタストアブラウザを、あなたはハイブのメタデータにアクセスすることができ、かつHCatalogは
MapReduceのにアクセスするためのジョブのブラウザをサポート仕事(MR1 / MR2-YARN)
サポートジョブデザイナー、MapReduceの/ストリーミング/ Javaのジョブを作成するには
Sqoop 2エディタやダッシュボード(ダッシュボード)をサポート
サポートZooKeeperのブラウザとエディタは
MySQLやPostgreSQLの、sqliteはとOracleデータベースのクエリエディタをサポートしていますデバイス
- --------------
免責事項:この記事はCSDNのブロガーである「理想iter「は元の記事を持って、CC 4.0 BY-SAの著作権契約、複製、オリジナルのソースと、このリンクを添付してくださいに従ってください声明。
オリジナルリンク:https://blog.csdn.net/huangmingleiluo/article/details/100523815

おすすめ

転載: www.cnblogs.com/qingmiaokeji/p/11463096.html