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: マルチクラウドデータ管理のためのオープンソースソリューションの構築

推薦する

ウェブサイトの最適化中にウェブサイトのランキングをより効果的に向上させる方法

SEO 最適化担当者の心の中では、最適化されていない Web サイトは、どれほど美しくてもゴミです。...

テンセント・チェン・ウーがユネスコ誌に記事を寄稿:科学、技術、文化の統合を推進

最近、ユネスコ傘下の雑誌「人文・芸術・社会誌(HAS)」の第2号「不安と希望の間で」が正式に発刊され...

2018年、3つの大きな「破産」ライブ放送

今年最もハマるものは何ですか?意外だが妥当な答えは「生放送」だ。その年、最もハマったライブ配信ルーム...

Max Movie Programを使用して最適化する方法

最適化のために Max Movie Program を使用する方法 - 私のような SEO 初心者向...

クラウド移行によりライセンス取得プロセスの煩わしさが解消されます

今後は、建築許可、電気許可、その他の許可を申請するために地方自治体や州の事務所まで出向く代わりに、ロ...

タオバオ、携帯電話部門の保証金を1,000元から10,000元に引き上げ

新浪科技は7月5日午後、タオバオが今年8月に携帯電話製品カテゴリーの預かり金の額を調整すると報じた。...

ウェブサイトの検索ランキング、SEOに騙されないように注意

企業がウェブサイトを開設する理由や目的は当然あるものですが、企業イメージのプロモーション、商品のプロ...

ウェブサイトがKになった理由の分析

ほとんどのウェブマスターにとって、自分のウェブサイトが K-ed されるのは非常に辛いことです。それ...

ウェブサイト内部構造最適化ガイド

今日の大規模ウェブサイトは、実は非常に強力な SEO 構築チームを持っています。しかし、Qzhu が...

なぜ Zuipin Mall のウェブサイトは今回のアルゴリズム更新によって順位が下がったのでしょうか?

Baidu がアルゴリズムを更新するたびに、ウェブマスターの間で騒動が起こります。喜ぶ人もいれば、心...

キーワードの順序の逆転が検索結果の違いにつながるウェブマスターへのヒ​​ント

よく見かけるテレビ広告の種類があります。このタイプの広告は、同じ映像を繰り返し表示し、人々が飽きるま...

調査では未来が危機に瀕していると予測

レポートによると、エッジ コンピューティングには、速度の向上、レイテンシの短縮、データ セキュリティ...

SUSE Rancher 2.6 を使用して、Aks および Gke クラスターをライフサイクル全体にわたって管理します。

この記事はWeChat公式アカウント「Xintai Cloud Service」から転載し、Yang...

ウェブサイトが虚偽の情報を掲載し、その虚偽の投稿を適時に削除した場合、それは侵害とはみなされない。

ウェブサイトが虚偽の情報を掲載し、他人の権利を侵害した場合、それは権利侵害を構成するのでしょうか? ...