Hadopを振って、ビッグデータを枯渇させるためのHadoop用の完全に分散されたプラットフォームを構築します

Hadoopの完全分散プラットフォーム構築

建設手順:

1.静的IP構成

2. jdkのインストール、仮想マシンのクローン作成

3.仮想マシンのホスト名を変更し、マッピングを追加します

4.SSHパスワードなしのログインを構成します

5.時刻同期サービスを構成します

6. Hadoopのインストール(マスターでの操作)

7.Hadoopフォルダーの配布

8.クラスターの起動

[以前]

完全に分散されたHadoopクラスターの構築には、複数の仮想マシンが必要です。各仮想マシンを個別にインストールして構成するのは面倒です。したがって、VMwareで仮想マシンを作成し、パブリック基本構成を完了してから、完全な仮想マシンを直接作成できます。クローン。これはより効率的です。

完全に分散されたHadoopクラスターの構築は、典型的なマスタースレーブアーキテクチャ、つまり1つのマスターノードと複数のスレーブノードです。ここでは、1masterつをslave1ノードとして、他の2つをノードとslave2ノードとして3つの仮想マシンを使用します

必要なインストールパッケージ:jdkインストールパッケージ、Hadoopインストールパッケージ(リソースで使用しているバージョンがあります)。

特別な指示がない場合、この操作はXshellで実行されます。

インストールの推奨事項:ルートディレクトリに統合インストールエクスポートフォルダーを作成し、エクスポートフォルダーに2つのフォルダーサーバー(ソフトウェアインストールフォルダー)、ソフトウェア(インストールパッケージストアディレクトリ)、または/usr/local/次のインストールを作成します。

mkdir -p /export/servers
mkdir -p /export/softwares

1.静的IP構成

インストールが完了した後、centos7カードのデフォルトは、カード名の最初の開始 ifconfig または ip a 表示ではありません 次に、関連する構成ファイルを変更します。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将BOOTPROTO修改为static
BOOTPROTO=static
最后一行ONBOOT改为yes
ONBOOT=yes
添加如下内容:
IPADDR=填IP地址
NETMASK=子网掩码
GATEWAY=网关IP
DNS1=8.8.8.8
DNS2=8.8.4.4

同じ外部ネットワークにpingを実行できる場合、静的IP構成は成功しています

ping www.qq.com

2.jdkのインストール

* Jdkインストールパッケージが softwares フォルダーにアップロードされ、 サーバーフォルダーに解凍されます。
	cd /export/softwares/
	rz
	选中jdk压缩包,上传至当前目录下
	mv jdk-8u161-linux-x64.tar.gz jdk
	tar -zxvf jdk -C ../servers/ 

如果<code>rz</code>命令报错,则执行如下安装后再执行
	
	yum -y install lrzsz
  • jdk環境変数を構成します

では/etc/profile、ファイルの以下の環境変数の末尾に追加します。

export JAVA_HOME=/export/servers/jdk
export PATH=$PAHT:$JAVA_HOME/bin

保存後に終了します。

  • 構成ファイルを再ロードして、構成された環境変数を有効にします。

      source /etc/profile
    
  • 構成が成功したかどうかを確認します。

java -version表示されるjdkのバージョン情報を入力すると、インストールと構成が成功します。


上記の静的IP構成とjdkインストールは各マシンで構成する必要があるため、1台のマシンで構成が成功したら、仮想マシンを直接複製します(完全なクローンを作成する必要があることに注意してください)。3つすべてのIPアドレスに注意してください。同じである場合は、構成ファイル内の2つの複製された仮想マシンのIPを変更する必要があります。変更が完了したら、ネットワークサービスを再起動して、相互にpingできるかどうかを確認します。pingが成功すると、IPの変更は成功します。 。
重启网路服务:
systemctl restart network

3.仮想マシンのホスト名を変更し、マッピングを追加します

* /etc/hostname ファイルを変更し 、デフォルトの最初の行を削除してから変更し master 、仮想マシンを再起動すると、ホスト名の変更が有効になります。
:他の2台の仮想マシンのホスト名を変更するために同じアプローチがあり slave1 slave2 仮想マシンを再起動します。* /etc/hosts ファイルを編集 し、次のコンテンツを追加します(IPアドレスを変更するにはIPアドレスに注意してください)。
	192.168.200.200 master
	192.168.200.201 slave1
	192.168.200.202 slave2

同じコンテンツが他の2台のマシンに追加されます。

変更が成功するかどうかは、ping相互に通信できるかどうかによって異なります。たとえば、任意のマシンで次のコマンドを実行します。

ping master
ping slave1
ping slave2

4.SSHパスワードなしのログインを構成します

  • SSHがインストールされているかどうかを確認します(centos7はデフォルトでインストールされています)

      rpm -qa | grep ssh 
    

    次の結果はすでにインストールされています。

      openssh-7.4p1-21.el7.x86_64
      libssh2-1.8.0-3.el7.x86_64
      openssh-clients-7.4p1-21.el7.x86_64
      openssh-server-7.4p1-21.el7.x86_64
    

    インストールされていない場合は、手動でインストールする必要があります。

      yum -y install openssh-server
      yum -y install openssh-clients
    

    ヒント:openssh-clientsがインストールされていない場合、sshおよびscpコマンドの実行時にエラーが報告され、コマンドが見つからないことが示されます。

  • SSHが使用可能かどうかをテストします(IPアドレスは、ログインするターゲットマシンのIPアドレス、つまり子ノードのIPアドレスです)

      ssh 192.168.200.201
    

    プロンプトに従って、ターゲットマシンのログインパスワードを入力します。ログインが成功すると、sshが使用可能になり、次のコマンドを実行して元のホストに戻ります。

      exit
    
  • キーを生成する

      ssk-keygen
    

    このプロセスは繰り返し確認する必要があります。間にEnterキーを押すだけです。注:場合によっては、yesまたはnoと答える必要があります

  • マスターノードを含む、マスターノード上のすべてのノードでシークレットフリーのログイン操作を実行します。

      ssh-copy-id -i ~/.ssh/id_rsa.pub master
      ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
      ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
    

    マスターはスレーブノードでサービスを開始する必要があるため、マスターはスレーブにログインする必要があるため、マスターノードで上記のコマンドを実行します。

5.時刻同期サービスを構成します

  1. ntpサービスがインストールされているかどうかを確認します

     rpm -qa | grep ntp
    

    インストールされていない場合はntpサービスをインストールします

     yum -y install ntp
    
  2. マスターノードをNTP時刻同期サービスのマスターノードとして設定します(つまり、マスターノードの時刻が優先されます)。

    /etc/ntp.confファイルを編集し、serverで始まる行をコメントアウトして、次のコードを追加します。

     restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
     server 127.127.1.0
     fudge 127.127.1.0 stratum 10
    
  3. ノードの時刻同期を構成します(マスターノードから時刻を取得します)

    slave1ノードとslave2ノードの/etc/ntp.confファイルも変更し、serverで始まる行をコメントアウトして、次のコードを追加します。

     server master
    

    10分ごとにマスター(タイムサーバー)と時刻を同期するように子ノードを設定します

     crontab -e
     编写定时任务:
     */10 * * * * /usr/sbin/ntpdate master
    
  4. NTPサービスを開始します

    1. マスターノードでntpサービスを開始し、起動時にセルフスタートを追加します

       service ntpd start & chkconfig ntpd on
      
    2. スレーブノード(slave1、slave2)で時間を1回手動で同期します

       ntpdate master
      
    3. スレーブノード(slave1、slave2)でntpサービスを開始し、起動時にセルフスタートを追加します

       service ntpd start & chkconfig ntpd on
      
    4. ntpサーバーが上位のntpに接続されているかどうかを確認します

       ntpstat
       这个命令可能会看到 unsynchronised 这是正常情况,因为配置完成后,需要等待一会儿才能和/etc/ntp.conf中配置的标准时间进行同步。
      
    5. NTPサーバーと上位のNTPのステータスを表示します

       ntpq -p
       
       参数说明:
       when: 	多少秒前进行过时间同步
       poll:	下次更新在多少秒后
       reach:	已经向上层ntp服务器要求更新的次数
       delay:	网络延迟
       offser:	时间补偿值
       jitter:	系统时间与BIOS时间差
      
  5. 構成が成功したかどうかをテストします

    任意のノードの時間を変更します。

     date -s "2011-11-11 11:11:11" 
    

    10分待って、時間が同期しているかどうかを確認します(時間を節約するために、実験中に10分を1分に調整できます)

     date
    

拡張機能:時計を外部ネットワークの時刻と同期させる必要がある場合は、スケジュールされたタスクを設定する必要があります(実際、仮想マシンの時刻はネットワーク上の時刻と同期されています)。私はAlibabaの時刻を使用します。クラウドサーバー。----マスターで操作する

	启动定时任务:
	crontab -e

	添加如下代码:分别代表 分 时 日 月 周
	*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com

6. Hadoopのインストール(マスターでの操作)

  1. Hadoopインストールパッケージを解凍します

     进入到softwares目录
     tar -zxvf hadoop-2.7.2.tar.gz -C ../servers/
     cd ../servers/
     mv hadoop-2.7.2.tar.gz hadoop
    
  2. 環境変数を構成する

    では/etc/profile、次のファイルを追加します。

     export HADOOP_HOME=/export/servers/hadoop
     export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    保存後に覚えておいてくださいsource /etc/profile

  3. 構成ファイルを変更します

    すべての構成ファイルは次のパスにあります。

     hadoop/etc/hadoop/
    

    奴隷

    構成ファイルには、スレーブノードの情報、つまりノードのマシン名が保存されます。localhostを削除し、次のように変更します。

     slave1
     slave2
    

    core-site.xml

    Hadoopコア構成ファイル

    <configuration> </ configuration>の間に次のコンテンツを追加します。

     <property>
     	<name>fs.defaultFS</name>
     	<value>hdfs://master:9000</value>
     </property>
     <property>
     	<name>hadoop.tmp.dir</name>
     	<value>file:/export/servers/hadoop/tmp</value>
     </property>
    

    fs.defaultFS属性はデフォルトのファイルシステムを指定することであり、その値はhdfsとマスターノードポートです。

    hadoop.tmp.dirこの属性は、hdfs一時データが保存されるディレクトリを指定するためのものです。デフォルト値はLinuxtmpディレクトリです。

    hdfs-site.xml

    HDFS関連の構成ファイル

    <configuration> </ configuration>の間に次のコンテンツを追加します。

     <property>
     	   <name>dfs.replication</name>
     	   <value>1</value>
     </property>
     <property>
     	  <name>dfs.namenode.name.dir</name>
     	  <value>file:/export/servers/hadoop/tmp/dfs/name</value>
     </property>
     <property>
    		 <name>dfs.datanode.data.dir</name>
    		 <value>file:/export/servers/hadoop/tmp/dfs/data</value>
     </property>
    

    dfs.replicationこの属性はデータブロックのコピー数を表し、その値はデフォルトで3です。ここでは、テストの便宜上、1に設定します。

    dfs.namenode.name.dirこの属性は、NameNodeの一時データストレージディレクトリを表します。

    dfs.namenode.data.dirこの属性は、DataNodeの一時データストレージディレクトリを表します。

    mapred-site.xml

    MapReduce関連の構成

    ファイルの名前をmapred-site.xmlに変更し、デフォルトのファイル名はmapred-site.xml.templateに変更し、mapred-site.xmlの構成を変更します。

     mv mapred-site.xml.template mapred-site.xml
    

    <configuration> </ configuration>の間に次のコンテンツを追加します。

     <property>
     	<name>mapreduce.framework.name</name>
     	<value>yarn</value>
     </property>
    

    mapreduce.framework.nameこの属性は、MapReduceプログラムの実行中のフレームワークを表します。デフォルト値はローカルです。これはローカルで実行することを意味します。ここでは、MapReduceプログラムをYARNフレームワークで実行できるようにyarnに設定します。

    糸-site.xml

    YARNフレームワーク構成

    <configuration> </ configuration>の間に次のコンテンツを追加します。

     <property>
    		 <name>yarn.resourcemanager.hostname</name>
    		 <value>master</value>
     </property>
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
     </property>
    

    yarn.resourcemanager.hostnameこの属性は、ResourceManagerが実行されるノードを指定します。

    yarn.nodemanager.aux-servicesこの属性は、YARNのデフォルトのシャッフル方法を指定し、MapReduceのデフォルトのシャッフルアルゴリズムに設定されます。

    hadoop-env.sh

    自動化スクリプトの開始時に、Hadoop操作の基本的な環境構成が使用されます。

     export JAVA_HOME=/export/servers/jdk
    

    ファイルの25行目で、前のコメントを削除してから、次のパスを自分のJAVA_HOMEパスに変更します

  4. それ以降、Hadoopの設定が完了しても、通常の起動に必要な設定項目のみです!

注:構成の詳細については、Hadoopの公式Webサイトにアクセスして表示できます。開いた後、ページの下部にスライドします。左下隅の[構成]の下に、各構成ファイルの詳細情報へのリンクがあります。

7.Hadoopフォルダーの配布

マスターノードですべての構成ファイルを構成した後、Hadoopフォルダーを他の2つの子ノードに配布します

scp -r /export/servers/hadoop slave1:/export/servers/
scp -r /export/servers/hadoop slave2:/export/servers/

8.クラスターの起動

クラスタを起動する前に、必ずファイアウォールをオフにしてください。各マシンのファイアウォールをオフにする必要があることに注意してください。

查看防火墙状态:
systemctl status firewalld

关闭防火墙:
systemctl stop firewalld

设置防火墙开机不启动(永久关闭防火墙,如果后面需要还可以手动打开):
systemctl disable firewalld

打开防火墙:
systemctl start firewalld
  • 初めて開始する前にNameNodeをフォーマットします(後で開始するときにフォーマットする必要はありません)

      hdfs namenode -format
    

    フォーマットして開始するのを忘れた場合は、すべてのnamenodeプロセスとdatanodeプロセスをシャットダウンしてから、データとログデータを削除してから、再フォーマットする必要があります。

  • クラスターを開始するには、手動で開始する方法と自動スクリプトで開始する方法の2つがあります。

    1. 手動スタート

       1. 启动HDFS :
       
       启动NameNode(master节点):
       hadoop-daemon.sh start namenode
      
       启动DataNode(在Slave节点):
       hadoop-daemon.sh start datanode
      
       启动SecondaryNameNode(在任意节点):
       hadoop-daemon.sh start secondarynamenode
      
      
       2. 启动YARN :
      
       启动ResourceManager(在Master节点):
       yarn-daemon.sh start resourcemanager
      
       启动NodeManager(在Slave节点):
       yarn-daemon.sh start nodemanager
      
       3. 启动历史任务服务:
      
       mr-jobhistory-daemon.sh start historyserver
      
    2. スクリプトの自動起動(マスターノードで実行)

       1. 启动HDFS :
       
       start-dfs.sh
      
       2. 启动YARN :
      
       start-yarn.sh
      
       3. 启动历史任务服务:
      
       mr-jobhistory-daemon.sh start historyserver
      
      
       注:还有一个脚本是:start-all.sh,但是一般不建议使用,容易出错。
      
  • プロセスを表示

      jps
    

    マスターで次のプロセスが表示された場合、起動は成功しています。

      [root@master ~]# jps
      2016 ResourceManager
      2353 Jps
      1636 NameNode
      1845 SecondaryNameNode
      2310 JobHistoryServer
      [root@master ~]# 
    

    スレーブで次のプロセスが表示された場合、起動は成功しています。

      [root@slave1 ~]# jps
      1554 DataNode
      1830 Jps
      1671 NodeManager
      [root@slave1 ~]# 
    

    説明:

    NameNode、SecondaryNameNodeこれは、マスターDataNodeでのHDFSのプロセスであり、スレーブでのHDFSのプロセスです。これらの3つのプロセスの存在は、HDFSが正常に開始されたことを示します。

    ResourceManagerマスターNodeManagerでのYARNのプロセスとスレーブでのYARNのプロセスです。これら2つのプロセスの存在は、YARNが正常に開始されたことを示します。

    JobHistoryServerそれは歴史的奉仕の過程です。

  • ウェブページを見る

    クラスターの起動後、ブラウザーにIPアドレスとポート番号を入力し、そのUIページにアクセスして、クラスターの詳細情報を表示できます。

      查看HDFS集群详细信息:
      192.168.200.200:50070
    
      查看YARN集群详细信息:
      192.168.200.200:8088
    
      查看historyserver历史服务详细信息:
      192.168.200.200:19888
    
  • シャットダウンプロセス

    サービスコマンドを開くには、startに変更されstopました。

おすすめ

転載: blog.csdn.net/qq_45796486/article/details/115272321