Big Data and Hadoop Ecosystem Tutorial
シンプリラーンが提供する「Big Data Hadoop and Spark Developer Certificationコース」のBig Data Hadoop tutorialの第1課「Big Data and Hadoop Ecosystem」 へようこそ! このレッスンは、ビッグデータとHadoopのエコシステムについての紹介です。 次のセクションでは、このレッスンの目的について説明します。
Objectives
このレッスンを完了すると、次のことができるようになります。
-
ビッグデータの概念とその課題を理解する
-
ビッグデータとは何かを説明する
-
Hadoopが何であるかを説明する とビッグデータの課題にどのように対処するか
-
Hadoop エコシステムについて説明する
では、ビッグデータと Hadoop の概要を見ていきましょう。
Overview to Big Data and Hadoop
2000年以前は、データは現在よりも比較的小さかったのですが、データ計算は複雑でした。
その後、データが増大するにつれ、大容量メモリと高速プロセッサを備えたコンピュータを導入することが解決策となりました。 しかし、2000年以降、データは増え続け、当初の解決策はもはや役に立たなくなりました。
ここ数年、データ量は驚くほど爆発的に増加しています。 IBMは、2012年に2.5エクサバイト(25億ギガバイト)のデータが毎日生成されたと報告しています。
以下は、Forbes、2015年9月号からのデータの拡散を示す統計データです。 Googleでは毎秒4万件の検索クエリが実行されています。 YouTubeには毎分300時間分の動画がアップロードされている<4256><6523>Facebookでは、毎分3125万通のメッセージがユーザーによって送信され、277万本の動画が視聴されている。 2017年には、写真の80%近くがスマートフォンで撮影されるようになる。
2020年には、すべてのデータの少なくとも3分の1がクラウド(インターネット上で接続されたサーバーのネットワーク)を通過するようになる。 2020年までに、地球上のすべての人間に対して、毎秒約1.7メガバイトの新しい情報が作成されます。
データはかつてないほど急速に増加しています。 この増え続けるデータを管理するために、より多くのコンピュータを利用することができます。 1台のマシンが仕事をするのではなく、複数のマシンを使うことができるのです。 これは分散システムと呼ばれています。
Big Data Hadoop and Spark Developer Certification course Previewはこちらで確認できます!
Big Data Hadoop and Spark Developer Certification course Previewはこちらで確認できます。
分散システムがどのように機能するかを理解するために、例を見てみましょう。
How Does a Distributed System Work?
4つの入力/出力チャネルを持つ1台のマシンがあるとします。 各チャネルの速度は100MB/秒で、1テラバイトのデータを処理したいとします。
1台のマシンが1テラバイトのデータを処理するのに45分かかります。 ここで、1テラバイトのデータを同じ構成の100台のマシンで処理するとします。
100台のマシンが1テラバイトのデータを処理するのに、わずか45秒しかかかりません。
さて、次に分散システムの課題を見てみましょう。
Challenges of a Distributed Systems
分散システムでは複数のコンピュータを使用するので、システム障害の可能性も高くなります。 また、帯域幅にも制限があります。
データと処理の同期が難しいため、プログラミングの複雑さも高くなります。 Hadoop はこれらの課題に取り組むことができます。
Hadoop とは何かを次のセクションで理解しましょう。
Hadoop とは? これは、Google が公開した技術文書から着想を得ています。
Hadoopという言葉には、意味はありません。 Hadoopを発見したDoug Cuttingは、彼の息子の黄色い色のおもちゃの象から名付けた。
それでは、Hadoopが、システム障害の高い可能性、帯域の制限、プログラミングの複雑さという分散システムの3つの課題をどう解決するのかを説明しましょう。
Hadoopの4つの主要な特徴は次のとおりです。
-
経済的:そのシステムは、データ処理に普通のコンピュータを使用できるため、非常に経済的です。 データのコピーを異なるマシンに保存し、ハードウェアの故障に強いため、信頼性が高い。
-
拡張性がある。 水平方向にも垂直方向にも簡単に拡張できます。 いくつかの追加ノードがフレームワークのスケールアップに役立ちます。
-
Flexible: 柔軟性があり、構造化および非構造化データを必要なだけ保存し、後で使用することを決定できます。
従来、データは中央ロケーションに保存され、実行時にプロセッサに送信された。 この方法は、限られたデータに対してはうまく機能しました。
しかし、現代のシステムでは、1 日にテラバイトのデータを受信し、従来のコンピューターやリレーショナル データベース管理システム (RDBMS) では、大量のデータをプロセッサに押し込むことは困難でした。 Hadoopでは、プログラムがデータに向かうのであって、その逆ではありません。
次のセクションでは、Hadoop が従来のデータベース システムとどのように異なるかについて説明します。
Difference between Traditional Database System and Hadoop
以下の表は、従来のデータベース システムと Hadoop を区別するのに助けとなるでしょう。
Traditional Database System |
|
Data is stored in a central location and sent to the processor at runtime. |
In Hadoop, the program goes to the data.Hadoop is not a traditional database system for a database.Hadoop in the program to the data. Hadoopでは、プログラムがデータに向かう。最初にデータを複数のシステムに分散し、データがどこにあっても後で計算を実行する。 |
従来のデータベースシステムでは、かなりの量のデータ(ビッグデータ)を処理および保存できない。 |
|
伝統的なRDBMSは、構造化および半構造化データのみを管理するために使用されます。 4256> |
例えを用いて、従来の RDBMS と Hadoop の違いについて説明します。 人間はスプーンの助けを借りて食べ物を食べ、食べ物を口に運びます。
さて、食べ物をデータ、口をプログラムとすると、人間の食べ方は従来のRDBMSを、虎の食べ方はHadoopを表していることになります。
次回は、Hadoopのエコシステムについて見ていきましょう。
Hadoop Ecosystem
Hadoop Ecosystem Hadoopには、処理、リソース管理、ストレージの3つのコアコンポーネントから発展したエコシステムが存在します。 このトピックでは、Hadoopエコシステムのコンポーネントと、それらがビッグデータ処理時にどのような役割を果たすかを学びます。
Hadoop エコシステムは、ビッグデータのニーズに対応するために継続的に成長しています。 以下の12個のコンポーネントで構成されています。
-
HDFS(Hadoop Distributed file system)
-
HBase
-
Sqoop
-
Flume
-
Spark
-
Hadoop(フードラム MapReduce
-
Pig
-
Impala
-
Hive
-
Cloudera Search
-
Oozie
ヒュー(Hue)
Hadoop エコシステムの各コンポーネントの役割については、次のセクションで学びます。
Hadoop エコシステムのコンポーネント
Hadoop エコシステムの最初のコンポーネントである HDFS から始めましょう。
HDFS (HADOOP DISTRIBUTED FILE SYSTEM)
-
HDFS は Hadoop 用ストレージ レイヤーです。
-
HDFS は分散ストレージと処理に適しており、つまり、データが保存されている間に、まず分散され、それから処理されるのです。
-
HDFS はファイル システム データへのストリーミング アクセスを提供します。
-
HDFS はファイル権限と認証を提供します。
-
HDFS ではコマンド ライン インターフェイスを使って Hadoop とやり取りします。
それで何が HDFS でデータを保存するのでしょうか。
HBase
-
HBase は NoSQL データベースまたは非リレーショナル データベースです。
-
HBase は重要で、主にビッグ データへのランダム、リアルタイム、読み取りまたは書き込みアクセスが必要になったときに使用されます。
-
HBaseは大量のデータと高いスループットをサポートします。
-
HBaseでは、1つのテーブルが数千のカラムを持つことができます。 次に、このデータがどのように HDFS に取り込まれるか、または転送されるかを理解しましょう。 Sqoop はまさにこれを行います。
Sqoopとは?
-
Sqoop は、Hadoop とリレーショナル データベース サーバー間でデータを転送するために設計されたツールです。
-
リレーショナルデータベース(OracleやMySQLなど)からHDFSにデータをインポートしたり、HDFSからリレーショナルデータベースにデータをエクスポートするために使用します。
ストリーミングデータ、センサーデータ、ログファイルなどのイベントデータを取り込む場合は、Flumeを使用するとよいでしょう。 Flumeについては次項で見ていきます。
Flume
-
Flumeはイベントデータを収集し、HDFSに転送する分散サービスです。
-
複数のシステムからのイベントデータに対して最適です。
HDFSにデータを転送したら処理されます。 データを処理するフレームワークの1つがSparkです。
Sparkとは?
-
Spark は、オープンソースのクラスターコンピューティングフレームワークです。
-
Hadoopの2段階のディスクベースのMapReduceパラダイムと比較して、インメモリプリミティブで少数のアプリケーションに最大100倍の高速パフォーマンスを提供します。
-
Spark はHadoopクラスタで実行でき、HDFSのデータを処理できます。
-
また、機械学習、ビジネスインテリジェンス、ストリーミング、およびバッチ処理など、さまざまなワークロードをサポートしています。
Sparkは、以下の主要なコンポーネントを備えています。
-
Spark Core and Resilient Distributed datasets or RDD
-
Spark SQL
-
Spark streaming
-
Machine learning library or Mlib
-
Graphx.
Spark は現在広く使われており、この後のレッスンで詳しく学びます。
Hadoop MapReduce
-
Hadoop MapReduce はデータを処理するもう1つのフレームワークです。
-
これは、主にJavaベースのオリジナルのHadoop処理エンジンで、
-
これは、マップと削減プログラミングモデルをベースにしています。
-
Hive や Pig などの多くのツールは、マップ還元モデルに基づいて構築されています。
-
フレームワークに組み込まれた広範かつ成熟したフォールトトレランスがあります。
-
今も非常によく使われているが Spark に負けている。
データの処理が終わったら分析する。 これはPigと呼ばれるオープンソースの高水準データフローシステムで行うことができます。 4256>
Pig がどのように分析に使われるかを理解しましょう。
Pig
-
Pig はスクリプトを Map および Reduce コードに変換するので、ユーザーは複雑な MapReduce プログラムを書く必要がありません。
-
MapReduceでは難しいFilterやJoinなどのアドホッククエリも、Pigを使えば簡単に行えます。
-
これはオープンソースの高性能SQLエンジンで、Hadoopクラスタ上で動作します。
-
これはインタラクティブな分析に最適で、ミリ秒で測定できる非常に低いレイテンシーを持っています。
Impala
-
Impala は SQL の方言をサポートしているので、HDFS 内のデータはデータベース テーブルとしてモデル化されます。 HIVEはHadoopの上にある抽象化レイヤーです。
-
Impalaと非常によく似ています。 しかし、データ処理やExtract Transform Load(ETLとも呼ばれる)操作にはImpalaが好まれます。
-
アドホックなクエリにはImpalaが好まれます。
HIVE
-
HIVE は MapReduce を使用してクエリを実行します。しかし、ユーザーは低レベル MapReduce でコードを記述する必要はありません。 データが分析された後、ユーザーがアクセスできるようになります。
HIVEが何をするかわかったので、次はデータの検索をサポートするものについて説明します。 データ検索はCloudera Searchを使って行います。
Cloudera Search
-
Search はClouderaの準リアルタイムアクセス製品の1つです。
-
Cloudera Search は、検索用のシンプルなフルテキストインターフェイスを提供するため、ユーザーは SQL やプログラミングのスキルを必要としません。
-
スタンドアロン検索ソリューションと比較したCloudera Searchのもう一つの利点は、完全に統合されたデータ処理プラットフォームです。
-
Cloudera SearchはCDHまたはHadoopなどのCloudera Distributionに含まれている柔軟、拡張可能、かつ堅牢なストレージシステムを使用します。 これにより、ビジネスタスクに対応するために、インフラストラクチャ間で大きなデータセットを移動する必要がなくなります。
-
MapReduce、Pig、Hive、および Sqoop などの Hadoop ジョブはワークフローを備えています。
Oozie
-
Oozie は、Hadoop ジョブの管理に使用できるワークフローまたは調整システムです。
Oozie アプリケーション ライフサイクルは下の図に示すとおりです。 Hadoop エコシステムの別のコンポーネントは、Hue です。 ここで、Hue を見てみましょう。
Hue
Hue は、Hadoop User Experience の頭文字をとったものです。 Hadoop用のオープンソースのWebインターフェイスです。 Hue を使用して、次の操作を実行できます。
-
Upload and browse data
-
Query a table in HIVE and Impala
-
Run Spark and Pig jobs and workflow Search data
-
全体として Hue により Hadoop は簡単に使用できるようになります。
-
HIVE, Impala, MySQL, Oracle, PostgreSQL, SparkSQL, Solr SQL用のSQLエディターも提供しています。
Hadoopエコシステムの12のコンポーネントについて簡単に述べた後、次にこれらのコンポーネントがどのように連携しビッグデータを処理するのかを説明します。 インジェスト、プロセッシング、アナライズ、アクセスです。
Ingest
ビッグデータ処理の最初の段階はIngest(摂取)です。 データはリレーショナル・データベース、システム、ローカルファイルなどさまざまなソースからHadoopに取り込まれるか、転送されます。 SqoopはRDBMSからHDFSにデータを転送し、Flumeはイベントデータを転送する。
処理
第2ステージは処理である。 このステージでは、データの保存と処理が行われる。 データは分散ファイルシステムHDFSとNoSQLの分散データHBaseに格納される。 SparkとMapReduceがデータ処理を行う。
Analyze
第3段階は、Analyzeである。 ここでは、Pig、Hive、Impalaなどの処理フレームワークでデータを分析する。
Pigは、マップとリダクションを使ってデータを変換し、分析する。 Hiveもマップ&リデュースをベースにしており、構造化データに最適です。
アクセス
第4段階はアクセスで、HueやCloudera Searchなどのツールで実行されるものです。 この段階では、分析されたデータにユーザーがアクセスすることができます。
Hue は Web インターフェースであり、Cloudera Search はデータを探索するためのテキスト インターフェースを提供します。
ビッグデータ Hadoop および Spark 開発者認定コースはこちら
Summary
ここで、このレッスンで学んだことをまとめましょう。
-
Hadoopは分散ストレージと処理のためのフレームワークです。
-
Hadoop のコア コンポーネントには、ストレージ用の HDFS、クラスタ リソース管理用の YARN、処理用の MapReduce または Spark があります。
-
Hadoop エコシステムには、ビッグ データ処理の各段階を支援する複数のコンポーネントがあります。
-
FlumeとSqoopはデータを取り込み、HDFSとHBaseはデータを保存、SparkとMapReduceはデータを処理、Pig、Hive、Impalaはデータを分析、HueとCloudera Searchはデータ探索を支援します。
-
Oozie は Hadoop ジョブのワークフローを管理します。
Conclusion
これでビッグデータと Hadoop エコシステムに関するレッスンは終了です。 次回のレッスンでは、HDFS と YARN について説明します。
主要都市でビッグデータ Hadoop および Spark 開発者オンライン クラスルームのトレーニング クラスを検索します。
名前 日付 場所 Big Data Hadoop and Spark Developer 3 Apr -15 May 2021.の3日間に開催されます。 週末バッチ Your City View Details Big Data Hadoop and Spark Developer 12 Apr -4 May 2021, 平日一括 詳細を見る ビッグデータ Hadoop and Spark Developer 24 Apr -5 Jun 2021, 週末一括 詳細 {{lectureCoursePreviewTitle}}の項をご参照ください。 View Transcript Watch Video
To learn more, take the Course
Big Data Hadoop and Spark Developer Certification Training
28641 LearnersGo to Course
To learn more, to the Course
もっと知りたい人は、この講座を受講してください。 コース
Big Data Hadoop and Spark Developer Certification Trainingを受講する コース
へ移動する
-