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

推薦する

李子奇のビジネス神話を作ったのは誰ですか?

2018年6月から現在まで、有名なショート動画アカウント「李子奇」が半年間停止されていた。この背後で...

WeChatビジネスモデルの発展と企業への関連性

WeChatマーケティングは、今では珍しいものではありません。大企業だけでなく、中小企業も含め、多く...

Baidu 入札でお金を稼ぐのは簡単すぎます。悪意のあるクリックによる減額は明らかです。

以下の内容には写真と証拠があります。注釈付きの説明文を除いて、写真に他の改変はありません。私は自分の...

「小さくても美しい」コンテンツは訪問者の体験を向上させる最良の方法です

優れた Web サイトの定義は、訪問者に価値あるコンテンツを提供できるかどうかだけでなく、さまざまな...

推奨: ultravps - 2 ユーロ / Xen PV / 512m メモリ / 15g ハードディスク / 500g 帯域幅

UltraVPS (ドメイン名は .com ではなく .eu) は Bradler & Kr...

百度が「What to Watch Tonight」を買収、動画検索のパーソナライゼーションを強化

メディアの報道によると、百度は1週間前に映画・テレビドラマの検索・推薦サービス「今夜何を見る」のチー...

マイクロソフトが学生向けにBing検索エンジンをリリース

新浪科技ニュース:北京時間6月25日早朝のニュース、マイクロソフトは月曜日、アメリカの学生をターゲッ...

VMware サーバー仮想化導入の実際の要件の分析

本稿では、「1 つのサーバー、1 つのアプリケーション」という従来のサーバー展開モードを念頭に置き、...

小規模ウェブマスターは、Baidu アルゴリズムの嵐をどうやって乗り切ることができるでしょうか?

Baiduのアルゴリズムのアップデート以来、多くの小規模ウェブマスターは怒りをぶつける場所がないと思...

Webmaster Revolution が Weibo マーケティングにリンク

多くのウェブマスターは、ウェブサイトを作成した後、自分のウェブサイトの重みを改善する方法を探していま...

パニックが襲う!クラウド コンピューティングは業界の大手企業を転覆させると予想されていますか?

クラウド コンピューティングは、世界的な業界大手に多大なメリットをもたらす一方で、このテクノロジーは...

クラウドコンピューティングプロバイダーが中小企業のニーズをどう考慮するか

ますます多くの企業がビジネスをクラウド プラットフォームに移行しています。コロナウイルスの流行中、ク...

そもそもサイトのホームページが上位にないということは、順位が下がったということでしょうか?

ほとんどのウェブマスターは、サイトのホームページがそもそも存在しないと、ウェブサイトの権威が下がるの...

百度の調整に関するいくつかの憶測の簡単な分析

今日、QQを開くと、SEOグループで、Baiduが2ページ目に表示される関連検索を開始したことについ...