Hadoop 完全分散型クラスタ

Hadoop 完全分散型クラスタ

まず、3つのクライアント(hadoop102、hadoop103、hadoop104)を準備し、ファイアウォールをオフにして、静的IPとIPアドレスマッピングに変更します。

[[278009]]

クラスターの構成

クラスター配布スクリプトの作成

  1. リモート同期スクリプトxsyncを作成し、現在のユーザーの新しいbinディレクトリに配置し、このスクリプトが任意のディレクトリで実行できるようにPATHで構成します。
  2. スクリプトの実装
  1. [kocdaniel@hadoop102 ~]$ mkdir bin
  2. [kocdaniel@hadoop102 ~]$ cd bin/
  3. [kocdaniel@hadoop102 bin]$ vim xsync

ファイルに次のスクリプトコードを記述します

  1. #!/bin/bash
  2. #1 入力パラメータの数を取得します。パラメータがない場合は直接終了する
  3. pcount=$#
  4. pcount==0の場合それから 
  5. 引数なしをエコーし​​ます
  6. 出口;
  7. フィ
  8.  
  9. #2 ファイル名を取得する
  10. p1=$1
  11. fname=`ベース名 $p1`
  12. エコーfname=$fname
  13.  
  14. #3 親ディレクトリを絶対パスで取得する –Pは実際の物理アドレスを指し、ソフトリンクを防ぐ
  15. pdir=`cd -P $(dirname $p1); pwd`
  16. エコーpdir=$pdir
  17.  
  18. #4 現在のユーザー名を取得する
  19. ユーザー= `whoami`
  20.  
  21. #5 ループ
  22. ( (ホスト=103; ホスト<105; ホスト++));する
  23. エコー------------------ hadoop$host ---------------  
  24. rsync -rvl $pdir/$fname $ユーザー@hadoop$host:$pdir
  25. 終わり
  1. スクリプトxsyncに実行権限を与えてスクリプトを呼び出し、そのスクリプトをノード103と104にコピーします。
  1. [kocdaniel@hadoop102 bin]$ chmod 777 xsync
  2. [kocdaniel@hadoop102 bin]$ xsync /home/atguigu/bin

クラスタ構成

1. クラスターの展開計画

コンピュータの構成が制限されているため、使用できる仮想マシンは 3 つだけです。クラスターは作業環境の必要に応じて計画されます。

2. クラスターを構成する

hadoopのインストールディレクトリ/etc/hadoop/に切り替えます。

  • core-site.xml を構成する
  1. [kocdaniel@hadoop102 hadoop]$ vim core-site.xml
  2. # ファイルに次の内容を記述します
  3. <! -- HDFS 内の NameNode のアドレスを指定します -->  
  4. <プロパティ>
  5. <名前>fs.defaultFS</名前>
  6. <値>hdfs://hadoop102:9000</値>
  7. </プロパティ>
  8.  
  9. <! -- 実行時に Hadoop によって生成されるファイルの保存ディレクトリを指定します -->  
  10. <プロパティ>
  11. <名前>hadoop.tmp.dir</名前>
  12. <値>/opt/module/hadoop-2.7.2/data/tmp</値>
  13. </プロパティ>
  • HDFS 構成ファイル

hadoop-env.sh を設定する

  1. [kocdaniel@hadoop102 hadoop]$ vim hadoop-env.sh
  2. JAVA_HOME=/opt/module/jdk1.8.0_144 をエクスポートします。

JAVA_HOME=/opt/module/jdk1.8.0_144 をエクスポートします。

注: /etc/profile ファイルで JAVA_HOME はすでに設定されていますが、なぜここで JAVA_HOME を設定する必要があるのでしょうか?

回答: Hadoop はデーモン プロセスとして実行されるため (デーモン プロセスとは、バックグラウンドで実行され、どの端末からも制御されないプロセスです。 - Baidu 百科事典より抜粋)、バックグラウンドで実行され、端末制御を受け入れないため、設定した環境変数を読み取ることができません。そのため、ここでは別途設定する必要があります。

  • hdfs-site.xml を構成する
  1. [kocdaniel@hadoop102 hadoop]$ vim hdfs-site.xml
  2. # 次の設定を記述します
  3. <! -- レプリカの数を 3 に設定します。デフォルトも 3 なので、これも削除できます -->  
  4. <プロパティ>
  5. <名前>dfs.replication</名前>
  6. <値>3</値>
  7. </プロパティ>
  8.  
  9. <! -- Hadoop 補助名ノードホスト構成を指定する -->  
  10. <プロパティ>
  11. <名前>dfs.namenode.secondary.http-address</名前>
  12. <値>hadoop104:50090</値>
  13. </プロパティ>
  • YARN 設定ファイル

yarn-env.sh を設定する

  1. [kocdaniel@hadoop102 hadoop]$ vim yarn-env.sh
  2. JAVA_HOME=/opt/module/jdk1.8.0_144 をエクスポートします。

yarn-site.xml を設定する

  1. [kocdaniel@hadoop102 hadoop]$ vi yarn-site.xml
  2. # 次の設定を追加します
  3. <! -- Reducer がデータを取得する方法 -->  
  4. <プロパティ>
  5. <名前>yarn.nodemanager.aux-services</名前>
  6. <値>mapreduce_shuffle</値>
  7. </プロパティ>
  8.  
  9. <! -- YARN の ResourceManager のアドレスを指定します -->  
  10. <プロパティ>
  11. <名前>yarn.resourcemanager.hostname</名前>
  12. <値>hadoop103</値>
  13. </プロパティ>
  • MapReduce 設定ファイル

mapred-env.sh を設定する

  1. [kocdaniel@hadoop102 hadoop]$ vim mapred-env.sh
  2. JAVA_HOME=/opt/module/jdk1.8.0_144 をエクスポートします。

mapred-site.xml を構成する

  1. # 最初の設定の場合は、mapred-site.xml.template を mapred-site.xml に名前変更する必要があります。
  2. [kocdaniel@hadoop102 hadoop]$ cp mapred-site.xml.テンプレート mapred-site.xml
  3. [kocdaniel@hadoop102 hadoop]$ vim mapred-site.xml
  4. # ファイルに次の設定を追加します
  5. <! -- Yarn 上で実行する MR を指定します -->  
  6. <プロパティ>
  7. <名前>mapreduce.framework。名前</名前>
  8. <value>糸</value>
  9. </プロパティ>

3. クラスタ配布スクリプトを使用して、設定されたファイルをhadoop103ノードとhadoop104ノードに同期します。

  1. [kocdaniel@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/
  • エラーを避けるために、同期が完了した後に同期結果を確認することをお勧めします。

シングルポイントスタート

1. 初めて起動する場合は、ネームノードをフォーマットする必要があります。それ以外の場合は、この手順をスキップしてください。

  1. [kocdaniel@hadoop102 hadoop-2.7.2]$ hadoop namenode -format
  • フォーマット時に注意すべき点:
  1. 最初の起動時のみフォーマットが必要です。その後は頻繁にフォーマットしないでください。そうしないと、ネームノードとデータノードのクラスター ID が不一致になり、データノードの起動に失敗します。
  2. 正しい書式設定の姿勢:
  • 最初のフォーマットが実行されると、Hadoopインストールディレクトリにデータフォルダが生成され、ネームノード情報が生成されます。
  • namenode と datanode を起動すると、同じディレクトリに logs という名前のログ フォルダーが生成されます。
  • したがって、フォーマットする前に、これら2つのフォルダを削除し、フォーマットしてから、最後にnamenodeとdatanodeを起動する必要があります。

2. hadoop102でnamenodeを起動する

  1. [kocdaniel@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh ネームノードを起動します
  2. [kocdaniel@hadoop102 hadoop-2.7.2]$ jps
  3. 3461 ネームノード

3. hadoop102、hadoop103、hadoop104でそれぞれDataNodeを起動します。

  1. [kocdaniel@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh データノードを起動します
  2. [kocdaniel@hadoop102 hadoop-2.7.2]$ jps
  3. 3461 ネームノード
  4. 3608 日本
  5. 3561 データノード
  6. [kocdaniel@hadoop103 hadoop-2.7.2]$ hadoop-daemon.sh データノードを起動します
  7. [kocdaniel@hadoop103 hadoop-2.7.2]$ jps
  8. 3190 データノード
  9. 3279 日本
  10. [kocdaniel@hadoop104 hadoop-2.7.2]$ hadoop-daemon.sh データノードを起動します
  11. [kocdaniel@hadoop104 hadoop-2.7.2]$ jps
  12. 3237 日本
  13. 3163 データノード

4. 結果を表示するにはhadoop102:50070にアクセスしてください

  • しかし、上記の単一ポイント起動には問題があります。

毎回各ノードを 1 つずつ起動します。ノード数が 1,000 に増えたらどうなるでしょうか?

SSHパスワードフリーログインを設定する

1. sshを設定する

別のノードのIPにsshして別のマシンに切り替えるが、パスワードを入力する必要がある

2. シークレットフリーのSSH設定

パスワードフリーログインの原則

  • ネームノードが構成されているホストhadoop102で秘密鍵と公開鍵を生成します。

ディレクトリを /home/username/.ssh/ に変更します。

  1. [kocdaniel@hadoop102 .ssh]$ ssh-keygen -t rsa
  1. - 次に(Enterキーを3回)押すと、id_rsa(秘密鍵)とid_rsa.pub(公開鍵)の2つのファイルが生成されます。
  2. - パスワードなしでログインしたいターゲットマシンに公開鍵をコピーします
  3.  
  4. ```シェル
  5. [kocdaniel@hadoop102 .ssh]$ ssh-コピー-id hadoop103
  6. [kocdaniel@hadoop102 .ssh]$ ssh-コピー-id hadoop104
  7. # 注意: sshアクセスにはパスワードも必要なので、公開鍵を102にコピーする必要があります。
  8. [kocdaniel@hadoop102 .ssh]$ ssh-コピー-id hadoop102
  9.   
  10. 「」
  • 同様に、リソースマネージャが設定されているホスト hadoop103 でも同じ操作を実行すると、クラスターを起動できます。

クラスタ

1. スレーブを構成する

  • ディレクトリを切り替えます: hadoop インストール ディレクトリ /etc/hadoop/
  • ディレクトリ内のスレーブファイルに次の内容を追加します。
  1. [kocdaniel@hadoop102 hadoop]$ vim スレーブ
  2. # ファイル末尾にスペースや空行があってはならないことに注意してください
  3. 翻訳:
  4. 翻訳:
  5. 翻訳:
  • すべてのノードの設定ファイルを同期する
  1. [kocdaniel@hadoop102 hadoop]$ xsyncスレーブ

2. クラスターを起動する

  • 同様に、初めて起動する場合はフォーマットする必要があります
  • HDFSを起動する
  1. [kocdaniel@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
  2.  
  3. # 起動結果を確認し、クラスタープラン(構成ファイル内)と一致していることを確認します。
  4. [atguigu@hadoop102 hadoop-2.7.2]$ jps
  5. 4166 ネームノード
  6. 4482 日本人
  7. 4263 データノード
  8.  
  9. [atguigu@hadoop103 hadoop-2.7.2]$ jps
  10. 3218 データノード
  11. 3288 日本
  12.  
  13. [atguigu@hadoop104 hadoop-2.7.2]$ jps
  14. 3221 データノード
  15. 3283 セカンダリネームノード
  16. 3364 日本
  • YARNを始める
  1. # 注意: NameNode と ResourceManager が同じマシン上にない場合、YARN は NameNode 上で起動できません。 YARN は、ResourceManager が配置されているマシンで起動する必要があります。
  2. [kocdaniel@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

3. ウェブ上で関連情報を閲覧する

<<:  Vera: ブロックチェーンと分散型台帳技術に基づくオープンなP2Pプロトコル

>>:  SODA: マルチクラウドデータ管理のためのオープンソースソリューションの構築

推薦する

vaicdn: 高品質の CDN、大きな帯域幅、高い防御力、攻撃による遅延の影響なし、ファイリングの不要、実名登録の不要

VaiCDNは、国内ユーザーグループ向けに高品質な海外CDNを提供することに特化した事業であり、個人...

クラウドデスクトップの技術アーキテクチャの分析

著者: Chi Wei、所属: 中国移動スマートホームオペレーションセンターセキュリティ製品部ラボガ...

インターナショナル・ヘラルド・トリビューン:ロンドンオリンピックはソーシャルメディアを慎重に受け入れる

ロンドンオリンピックスタジアムは、2012年夏季オリンピックのメイン会場となります。 はじめに:イン...

インターネットの助けを借りて、オンラインマーケティングのプロセスでセルフマーケティングを実現するにはどうすればよいでしょうか?

マーケティングに詳しい友人なら、セルフマーケティングについてある程度聞いたことがあるはずです。しかし...

インターネット上でウェブサイトを構築するのは複雑ではありません。鍵となるのは、5 つの「本質」を理解することです (パート 2)

前回の記事では、ドメイン名登録の安全性、適時性、適用性について主に説明しました。ウェブマスターがドメ...

Weiboプロモーションをうまく行うにはどうすればいいでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス現在、ほぼすべての人が ...

racknerd: 母の日 VPS プロモーション、年間 20.88 ドル、KVM/1.8G メモリ/18g ハードディスク/2.5T トラフィック、60Gbps の高防御

Racknerd は母の日に向けて 5 日間のプロモーションを実施し、ロサンゼルスの DC02 (M...

毎日の話題:アリペイと銀聯の駆け引きが激化、提携銀行が銀聯から罰金を科せられそうに

Admin5.comが9月4日に報じたところによると、一方ではオフライン決済市場最大の銀行カードスイ...

国内のリベートサイトは混乱状態にあり、大規模なクリーンアップに直面する可能性があります

最近、国内のリベートサイトに関する悪いニュースが相次いでいる。河南省、浙江省、福建省などの多くのリベ...

数十億のリクエストと高可用性を備えた Redis (codis) 分散クラスターの秘密を簡単に紹介します。

概要: NoSQL の KV データベースの王様である Redis は、その高いパフォーマンス、低レ...

Rhino Cloud Networkが勝利:ランキングを着実に向上させ、企業がフルネットワークマーケティングを習得できるよう支援

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますRhino...

VPS 上に Web サーバー環境を構築するにはどうすればよいでしょうか?

VPS 上に Web サーバー環境をセットアップするには、次の手順に従います。適切なオペレーティング...

デルはITアップグレードを通じて企業の戦略的変革を推進

最近、IT Manager World が主催し、Dell が主導して参加した「Inspiring ...

インタビュアー:Redis の仮想メモリについて教えてください。

[[350704]]著者は、正確にスケジュールされたタスクと遅延キュー処理機能を備えた、高同時実行シ...