ビッグデータの概要||| Hadoopエコシステム||| Hadoopクラスターの構築||| Hadoop構成JobHistory |||ポート番号
1.ビッグデータとは何ですか?
ビッグデータとは、従来のソフトウェアツールでは一定期間内にコンテンツをキャプチャ、管理、処理できないデータの集まりであり、データ量が
多く、高速であり、多様化しており、価値密度が低いという4Vの特性を備えています。
2、Hadoopエコシステム
2.1 hadoop2.0フレームワーク
2.2Hadoopの概念
公式ウェブサイトの定義:
Hadoopは、Apache Foundationによって開発された分散システムインフラストラクチャです。ユーザーは、分散システムの基本的な詳細を理解していなくても、分散プログラムを開発できます。クラスターの能力を最大限に活用して、高速コンピューティングとストレージを実現します。
そのため、Hadoopは主に大量のデータの保存と計算の問題を解決します。大規模なデータウェアハウス、PBレベルのデータストレージ、処理、分析、統計、その他のビジネスを構築するために使用できます。
Hadoopは、狭義と広義の2つのタイプに分けることができます。
1.狭義のHadoopは、Hadoop自体であり、以下を含む分散システムアーキテクチャです:(HDFS + MapReduce + yarn)。
2.広義のHadoopは、Hadoopエコシステムを指します。Hadoopエコシステムは非常に大きな概念です。Hadoopはその最も重要で基本的な部分です。エコシステムの各サブシステムは特定の問題ドメインのみを解決します。オールラウンドなシステムですが、小さくて洗練された複数の小さなシステムです。
2.3 Hadoopエコシステムの主要コンポーネントの概要:
HDFSHadoop
分散ファイルシステム。これは、Hadoopシステムのデータストレージ管理の基盤です。これは、ハードウェア障害を検出して対応できるフォールトトレラント性の高いシステムであり、低コストの汎用ハードウェアで実行するために使用されます。HDFSは、ファイルの整合性モデルを簡素化し、ストリーミングデータアクセスを通じて高スループットのアプリケーションデータアクセス機能を提供し、大規模なデータセットを持つアプリケーションに適しています。
MapReduce(分散コンピューティングフレームワーク)
MapReduceは、大量のデータを計算するためのコンピューティングモデルです。その中で、Mapはデータセットの独立した要素に対して指定された操作を実行して、キーと値のペアの形式で中間結果を生成します。Reduceは、中間結果の同じ「キー」のすべての「値」を減らして、最終結果を取得します。MapReduceの機能分割は、多数のコンピューターで構成される分散並列環境でのデータ処理に非常に適しています。
Hive(Hadoopベースのデータウェアハウス)
Hiveは、SQLをMapReduceタスクに変換してHadoopで実行するSQLのようなクエリ言語(HQL)を定義します。通常、オフライン分析に使用されます。
Hbase(分散列ストレージデータベース)
HBaseは、構造化データ用のスケーラブルで信頼性が高く、高性能な分散型の列指向の動的データベースです。従来のリレーショナルデータベースとは異なり、HBaseはBigTableのデータモデルを使用します。拡張されたスパースソートマッピングテーブル(キー/値)で、キーは行キー、列キー、およびタイムスタンプで構成されます。HBaseは、大規模データへのランダムなリアルタイムの読み取りおよび書き込みアクセスを提供します。同時に、HBaseに格納されたデータは、データストレージと並列コンピューティングを完全に組み合わせたMapReduceを使用して処理できます。
Zookeeper(分散型コラボレーティブサービス)
は、分散環境でのデータ管理の問題(統一された命名、状態の同期、クラスター管理、構成の同期など)を解決します。
Sqoop(データ同期ツール)
Sqoopは、SQL-to-Hadoopの略語であり、主に従来のデータベースやHadoopの前にデータを転送するために使用されます。データのインポートとエクスポートは基本的にMapreduceプログラムであり、MRの並列化とフォールトトレランスを最大限に活用しています。
Pig(Hadoopに基づくデータフローシステム)
はyahoo!によってオープンソース化されており、設計の動機は、MapReduceに基づくアドホック(クエリ中に計算が行われる)データ分析ツールを提供することです。データフロー言語-PigLatinが定義されています。これは、スクリプトをMapReduceタスクに変換し、Hadoopで実行します。通常、オフライン分析に使用されます。
Mahout(データマイニングアルゴリズムライブラリ)
Mahoutの主な目標は、機械学習の分野で古典的なアルゴリズムのスケーラブルな実装を作成し、開発者がより便利かつ迅速にスマートアプリケーションを作成できるようにすることです。Mahoutには、クラスタリング、分類、レコメンデーションエンジン(協調フィルタリング)、頻繁なセットマイニングなど、広く使用されているデータマイニング手法が含まれるようになりました。アルゴリズムに加えて、Mahoutには、データ入出力ツールなどのデータマイニングサポートアーキテクチャ、他のストレージシステム(データベース、MongoDB、Cassandraなど)との統合も含まれています。
Flume(ログ収集ツール)
Clouderaのオープンソースログ収集システムは分散されており、信頼性が高く、フォールトトレラント性が高く、カスタマイズと拡張が簡単です。データの生成、送信、処理のプロセスを抽象化し、最終的にターゲットパスに書き込まれてデータストリームになります。特定のデータストリームでは、データソースはFlumeでのデータ送信者のカスタマイズをサポートし、それによってさまざまなプロトコルデータの収集をサポートします。同時に、Flumeデータストリームは、フィルタリングやフォーマット変換など、ログデータに対して簡単な処理を実行する機能を提供します。さらに、Flumeには、さまざまなデータターゲットにログを書き込む機能もあります(カスタマイズ可能)。一般に、Flumeは、複雑な環境に適したスケーラブルで大規模なログ収集システムです。
2.4Hadoopの3つのコアコンポーネント
Hadoopの3つのコアコンポーネントは次のとおりです。
HDFS(Hadoop Distribute File System):Hadoopのデータストレージツール。
YARN(Yet Another Resource Negotiator、別のリソースコーディネーター):Hadoopリソースマネージャー。
Hadoop MapReduce:分散コンピューティングフレームワーク
HDFSアーキテクチャ
HDFSは、マスター/スレーブアーキテクチャモデルを採用しています。1つのマスター(NameNode / NN)とNのスレーブ(DataNode / DN)です。
内部的な観点から、データブロックはDataNodeに格納されます。NameNodeは、ファイルまたはディレクトリのオープン、クローズ、名前変更など、ファイルシステムの名前空間を実行し、特定のDataNodeへのデータブロックのマッピングも担当します。DataNodeは、ファイルシステムのクライアント側でファイルの読み取りと書き込みを処理し、NameNodeの統一されたスケジューリングの下でデータベースを作成、削除、および複製します。NameNodeはすべてのHDFSメタデータのマネージャーであり、ユーザーデータがNameNodeを通過することはありません。
NN:
1)クライアント要求への応答を担当します
。2)メタデータ(ファイルの名前、コピー係数、ブロックストレージのDN)の管理を担当します。
DN:
1)ユーザーのファイルに対応するデータブロックを保存します(ブロック)
2)定期的に心拍情報をNNに送信し、それ自体とすべてのブロック情報、およびヘルスステータスを報告します
HDFS書き込みデータプロセス
HDFS読み取りデータプロセス
3つ、Hadoopクラスターの構築
1.構成された仮想マシンをマスターノードとして扱い、2つの新しい仮想マシンのクローンを作成します。
(構成プロセスについては、ブログを参照してください:前のブログHadoop構成)
クローン作成後に操作する手順:
(1)IPを変更します。vi/ etc / sysconfig / network-scripts / ifcfg-ens33
複製された仮想マシンを別のIPアドレスに置き換えます
(2)ネットワークを再起動します:systemctl restart network
(3)3つのホストに相互信頼を追加します(ステップブログ:お互いを追加するを参照してください)
2.ホストのhadoopフォルダーと構成ファイル/ etc / profileを他の2つの仮想マシンに渡します
[root@hadoop2 software]# scp -r hadoop root@hadoop5:$PWD #@后写要传对象的主机名
[root@hadoop2 software]# scp /etc/profile root@hadoop7:/etc/profile
このようにして、hadoopフォルダーとプロファイルはhadoop5とhadoop7のホストと同じ場所に転送されます
3.ホスト上の構成ファイルを変更します
(1)vi etc / hadoop /hdfs-site.xmlを変更します
在root/software/hadoop路径下输入:
[root@hadoop2 hadoop]# vi etc/hadoop/hdfs-site.xml
或者在root/software/hadoop/etc/hadoop路径下输入:
[root@hadoop2 hadoop]# vi hdfs-site.xml
コピー数を3に
変更し、セカンダリマシンのIPをセカンドマシンのIPに変更します
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.21.5:50090</value>
</property>
</configuration>
(2)vi / etc / slavesを構成します
3台のマシンのホスト名を追加します。3台すべての仮想マシンを追加する必要があります
4.ログとtmpを削除し、最初のホストをフォーマットします(注:3台のマシンすべてを正常に削除する必要があります)
[root@hadoop2 hadoop]# rm -rf logs/
[root@hadoop2 hadoop]# rm -rf tmp/
[root@hadoop2 hadoop]# hdfs namenode -format
5.最初のマシンで開き、jpsと入力して確認します
[root@hadoop2 hadoop]# start-all.sh
4、Hadoop構成JobHistory
4.1職歴は何をしますか?
過去の操作手順を表示する
4.2ジョブ履歴を使用するための構成および操作手順
ステップ1:vimapred-site.xmlファイルを構成します
[root @ hadoop2ソフトウェア] #cd hadoop
[root @ hadoop2 hadoop] #vi etc / hadoop / mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop2:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop2:19888</value>
</property>
</configuration>
ステップ2:職歴を開始する
[root @ hadoop2 hadoop] #sbin / mr-jobhistory-daemon.sh start
historyserver
は、起動後にjpsでプロセスを表示できます
[root@hadoop2 hadoop]# sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /root/software/hadoop/logs/mapred-root-historyserver-hadoop2.out
[root@hadoop2 hadoop]# jps
11298 NodeManager
11172 ResourceManager
11849 JobHistoryServer
10942 DataNode
10815 NameNode
11919 Jps
[root@hadoop2 hadoop]#
4.3テスト
最初のステップ:最初にhdfsにテストフォルダーを作成します
[root @ hadoop2 hadoop] #hdfs dfs -mkdir / test1
ステップ2:ブラウザにログインして、作成が成功したかどうかを確認します
ステップ3:ファイルをアップロードする
[root @ hadoop2 hadoop] #hdfs dfs -put README.txt / test1
hdfsdfs-put路径/README.txt/ test
ブラウザに入り、アップロードが成功したかどうかを確認します
5、Hadoopで一般的に使用されるポート番号