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

推薦する

クラウドコンピューティング導入の4つの段階

過去 60 年間のテクノロジーの採用をざっと見てみると、1 つのサプライヤー、テクノロジー、またはコ...

O2O: 過去10年間のRedbabyの垂直型eコマースの次のホットスポット

黄建明Redbaby は 2004 年から現在まで 10 年間、垂直型電子商取引企業として活動してき...

タオバオの顧客マーケティングについての簡単な説明

タオバオアフィリエイトは、店舗の面倒な作業をすべて処理する必要はありません。リンクと商品をユーザーに...

1人のSEOが独立してウェブサイトの最適化をサポートできますか?

今日、QQグループで、a5の毎日のQ&Aから「SEOを行う小さな会社で、1人だけで対応できま...

cloudcone: $4/KVM/2g メモリ/2 コア/50g ハードディスク/2T トラフィック、フロントエンドの高防御に最適

Cloudcone は最新の 2 つのプロモーションを送信しました: ロサンゼルス、MC データ セ...

電子商取引のリベートモデルは消滅したのか?関連ナビゲーションウェブサイトは変化した

一方で、ユーザーは買い物時に追加のキャッシュバックを得ることができ、他方では、販売者にトラフィックを...

Amazon Web Services、量子コンピューティングハードウェアの開発を支援するオープンソースソフトウェアPalaceをリリース

最近、Amazon Web Services は、量子コンピューティング ハードウェアの開発を支援す...

中国科学院アリババクラウド、中国初の超伝導量子プロセッサをリリース

2月22日、中国科学院量子情報・量子技術研究所とアリババクラウドは、超伝導量子コンピューティングの分...

クリスマス: webhostingbuzz-50% オフ/ウェブホスティング/VPS/サーバー

クリスマスが近づいており、人気の webhostingbuzz が半額プロモーションを開始し、サイト...

virpus vps の紹介

2006 年 2 月に Kenneth Odum 氏と Nick Rose 氏によって設立された V...

Ceph分散ストレージシステムの最適化分析

[[409074]]前回の記事「Ceph 分散ストレージ システム アーキテクチャ研究のレビュー」で...

クラウドに移行する前に実行すべき 6 つのステップ

[[276793]] [51CTO.com クイック翻訳] あなたのビジネスはクラウドに移行する準備...

cmivps: 全品 30% オフ、トップアップで 20% 増しのボーナス、香港 CN2+BGP 回線、米国 Unicom AS4837 回線

cmivps は 6 月 18 日に中間セールの特別プロモーションを開始しました。100 元以上チャ...

インターネットの未来はどうなるのか?「スーパーエンジン」がインターネットにインスピレーションを与える

ソン・ソンが描いた多くの人々、特にベテランネットユーザーは、1990年代初頭、中関村の街を歩いている...