Hadoopスタディノート_4:疑似分散モードの操作モード

  • 疑似分散モード

    Hadoopは、各Hadoopデーモンが個別のJavaプロセスで実行される疑似分散モードの単一ノードで実行することもできます。

    Hadoopは、疑似分散モードの単一ノードで実行することもできます。このモードでは、各Hadoopデーモンが個別のJavaプロセスで実行されます。

    • HDFSを起動し、MapReduceプログラムを実行します

      • クラスターを構成する

        • 環境変数へetc/hadoop/hadoop-env.shJAVA_HOMEパスを構成および変更します。

          [root@localhost hadoop]# vim hadoop-env.sh 
          # The only required environment variable is JAVA_HOME.  All others are
          # optional.  When running a distributed configuration it is best to
          # set JAVA_HOME in this file, so that it is correctly defined on
          # remote nodes.
          # 唯一需要的环境变量是JAVA_HOME。 所有其他均为可选。 运行分布式配置时,最好在此文件中设置JAVA_HOME,以便在远程节点上正确定义它。
          # The java implementation to use.
          export JAVA_HOME=/opt/module/jdk1.8.0_144
          
        • 構成しetc/hadoop/core-site.xmlnameNodeアドレスと一時ファイルディレクトリを指定します。

          [root@localhost hadoop]# vim core-site.xml
          <configuration>
          <!-- 指定 HDFS 中 NameNode 的地址 -->
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://192.168.116.100:9000</value>
          </property>
          <!-- 指定 Hadoop 运行时产生文件的存储目录 -->
          <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/module/hadoop-2.7.2/data/tmp</value>
          </property>
          </configuration>
          

          ここでは、hostsファイルのマッピングがhdfsで構成されていないため、IPアドレス構成が使用されます。

        • 構成etc/hadoop/hdfs-site.xml、コピー数の構成、デフォルトは3です[ここでのコピーはローカル設定であり、他のノードは自動的にバックアップされます]。

          [root@localhost hadoop]# vim hdfs-site.xml
          <configuration>
          <!-- 指定 HDFS 副本的数量 -->
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
          </configuration>
          
      • クラスターを開始します

        • NameNodeをフォーマットします(最初に起動するときにフォーマットする必要があります)

          [root@localhost hadoop-2.7.2]# bin/hdfs namenode -format
          
        • 启动 NameNode 、DataNode

        [root@localhost hadoop-2.7.2]# sbin/hadoop-daemon.sh start namenode
        starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-namenode-localhost.localdomain.out
        [root@localhost hadoop-2.7.2]# sbin/hadoop-daemon.sh start datanode
        starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-datanode-localhost.localdomain.out
        
      • クラスターを表示

        • 正常に起動したかどうかを確認します(環境変数を設定するコマンドjpsJDK完了後に使用できます)

          [root@localhost hadoop-2.7.2]# jps
          1362 DataNode
          1461 Jps
          1308 NameNode
          
        • Web経由でHDFSファイルシステムを表示するwinために、ホストの下でブラウザによって実行されるアクセスを次に示します。ホスト関連のマッピングが構成されていないため、アクセスはIPを介して直接実行されます。

          http://192.168.116.100:50070/dfshealth.html#tab-overview
          ここに画像の説明を挿入

        • 生成されたログを表示する

          [root@localhost logs]# ll
          总用量 72
          -rw-r--r-- 1 root root 25277 7月   5 20:10 hadoop-root-datanode-localhost.localdomain.log
          -rw-r--r-- 1 root root   714 7月   5 19:52 hadoop-root-datanode-localhost.localdomain.out
          -rw-r--r-- 1 root root 30915 7月   5 20:10 hadoop-root-namenode-localhost.localdomain.log
          -rw-r--r-- 1 root root  5002 7月   5 20:00 hadoop-root-namenode-localhost.localdomain.out
          -rw-r--r-- 1 root root     0 7月   5 19:52 SecurityAuth-root.audit
          [root@localhost logs]# cat hadoop-root-datanode-localhost.localdomain.log 
          
        • NameNodeをフォーマットするときは、次の点に注意してください。

          • Hadoopランタイムによって生成されたファイルの指定されたストレージディレクトリを入力します。

          • /namenameNode

          [root@localhost hadoop-2.7.2]# cd data/tmp/dfs/name/current/
          [root@localhost current]# ll
          总用量 1040
          -rw-r--r-- 1 root root 1048576 7月   5 20:10 edits_inprogress_0000000000000000001
          -rw-r--r-- 1 root root     350 7月   5 19:50 fsimage_0000000000000000000
          -rw-r--r-- 1 root root      62 7月   5 19:50 fsimage_0000000000000000000.md5
          -rw-r--r-- 1 root root       2 7月   5 19:52 seen_txid
          -rw-r--r-- 1 root root     201 7月   5 19:50 VERSION
          [root@localhost current]# cat VERSION 
          #Sun Jul 05 19:50:24 CST 2020
          namespaceID=253643691
          clusterID=CID-53139122-7fe0-405f-bdde-522fbfa9fe95
          cTime=0
          storageType=NAME_NODE
          blockpoolID=BP-1432435135-127.0.0.1-1593949824604
          layoutVersion=-63
          
          • /datadataNode
          [root@localhost hadoop-2.7.2]# cd data/tmp/dfs/data/current/
          [root@localhost current]# ll
          总用量 4
          drwx------ 4 root root  54 7月   5 19:52 BP-1432435135-127.0.0.1-1593949824604
          -rw-r--r-- 1 root root 229 7月   5 19:52 VERSION
          [root@localhost current]# cat VERSION 
          #Sun Jul 05 19:52:36 CST 2020
          storageID=DS-9a858421-29ac-4778-b625-6881374acfd6
          clusterID=CID-53139122-7fe0-405f-bdde-522fbfa9fe95
          cTime=0
          datanodeUuid=acc2d611-bd06-4a73-94e8-9672fed10714
          storageType=DATA_NODE
          layoutVersion=-56
          

          nameNodeとdataNodeのclusterIDは同じであり、通信するにはHDFSで一貫している必要があることがわかります。nameNodeをランダムにフォーマットすると、nameNodeのclusterIDが変更され、dataNodeとの整合性が失われ、通信およびデータの取得ができなくなります。したがって、nameNodeをフォーマットするときは、データとログデータを削除してからnamenode -format操作を実行する必要があります

      • クラスターの操作

        • HDFSファイルシステムに入力フォルダ(入力)作成します

          [root@localhost hadoop-2.7.2]# bin/hdfs dfs -mkdir -p /user/bcxtm/input
          
        • テストファイルをファイルシステムにアップロードします-put

          [root@localhost hadoop-2.7.2]# bin/hdfs dfs -put wcinput/wc.input /user/bcxtm/input/
          

          ここに画像の説明を挿入

        • 実行MapReduce再びWORDCOUNTケースを実現するためのプログラムを

          [root@localhost hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/bcxtm/input/ /user/bcxtm/output
          

        ここに画像の説明を挿入

        • テスト出力ファイルをローカルにダウンロードします-get

          [root@localhost hadoop-2.7.2]# hdfs dfs -get /user/bcxtm/output/part-r-00000 /wcoutput/
          get: `/wcoutput/': No such file or directory
          [root@localhost hadoop-2.7.2]# mkdir wcoutput
          [root@localhost hadoop-2.7.2]# hdfs dfs -get /user/bcxtm/output/part-r-00000 ./wcoutput/
          # 查看下载到本地的测试输出文件
          [root@localhost hadoop-2.7.2]# cat wcoutput/part-r-00000 
          Alibaba	1
          Baidu	1
          Bcxtm	3
          ByteDance	1
          lisi	1
          wangwu	2
          zhangsan	1
          
    • YARNを起動し、MapReduceプログラムを実行します

      • クラスターを構成する

        • 環境変数へetc/hadoop/yarn-env.shJAVA_HOMEパスを構成および変更します。

          [root@localhost hadoop]# vim yarn-env.sh 
          [root@localhost hadoop]# cat yarn-env.sh 
          # some Java parameters
          # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
          if [ "$JAVA_HOME" != "" ]; then
            #echo "run java in $JAVA_HOME"
            JAVA_HOME=/opt/module/jdk1.8.0_144
          
        • コンフィギュレーションetc/hadoop/yarn-site.xmlnodeManagerおよびresourceManagerここResourceManagerでもアドレスはIPアドレスを使用して構成されています。

          [root@localhost hadoop]# vim yarn-site.xml 
          [root@localhost hadoop]# cat yarn-site.xml 
          <configuration>
          <!-- Site specific YARN configuration properties -->
          <!-- Reducer 获取数据的方式 -->
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
          </property>
          <!-- 指定 YARN 的 ResourceManager 的地址 -->
          <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>192.168.116.100</value>
          </property>
          </configuration>
          
        • 環境変数へetc/hadoop/mapred-env.shJAVA_HOMEパスを構成および変更します。

          [root@localhost hadoop]# vim mapred-env.sh
          [root@localhost hadoop]# cat mapred-env.sh 
          # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
          export JAVA_HOME=/opt/module/jdk1.8.0_144
          export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
          export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
          
        • 構成etc/hadoop/mapred-site.xml、テンプレート構成の対応するファイルの名前を変更します。

          [root@localhost hadoop]# ll
          ## ...
          -rw-r--r-- 1 root root   758 5月  22 2017 mapred-site.xml.template
          [root@localhost hadoop]# mv mapred-site.xml.template mapred-site.xml
          [root@localhost hadoop]# ll
          ## ...
          -rw-r--r-- 1 root root   758 5月  22 2017 mapred-site.xml
          [root@localhost hadoop]# vim mapred-site.xml 
          [root@localhost hadoop]# cat mapred-site.xml 
          <configuration>
          <!-- 指定 MR 运行在 YARN 上 -->
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
          </configuration>
          
      • クラスターを開始します

        • 開始する前に、NameNodeとDataNodeが開始されていることを確認する必要があります

          [root@localhost hadoop]# jps
          1936 Jps
          1362 DataNode
          1308 NameNode
          
        • 開始ResourceManagerしてNodeManager

          [root@localhost hadoop-2.7.2]# sbin/yarn-daemon.sh start resourcemanager
          starting resourcemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-resourcemanager-localhost.localdomain.out
          [root@localhost hadoop-2.7.2]# sbin/yarn-daemon.sh start nodemanager
          starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-nodemanager-localhost.localdomain.out
          [root@localhost hadoop-2.7.2]# jps
          2081 Jps
          1362 DataNode
          1308 NameNode
          1964 ResourceManager
          2014 NodeManager
          
      • クラスター操作

        • web表示することによりhttp//192.168.116.1008088 / cluster

        ここに画像の説明を挿入

      • 履歴サーバーを構成する

        • 構成しmapred-site.xml、過去のサーバーアドレスとWebアドレスを追加します

        ここに画像の説明を挿入

        [root@localhost hadoop]# vim mapred-site.xml 
        [root@localhost hadoop]# cat mapred-site.xml 
        <configuration>
        <!-- 指定 MR 运行在 YARN 上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <!-- 历史服务器端地址 -->
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>192.168.116.100:10020</value>
        </property>
        <!-- 历史服务器 web 端地址 -->
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>192.168.116.100:19888</value>
        </property>
        </configuration>
        
        • 履歴サーバーを起動します

          [root@localhost hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver
          starting historyserver, logging to /opt/module/hadoop-2.7.2/logs/mapred-root-historyserver-localhost.localdomain.out
          [root@localhost hadoop-2.7.2]# jps
          1362 DataNode
          2474 JobHistoryServer
          2507 Jps
          1308 NameNode
          1964 ResourceManager
          2014 NodeManager
          
        • web表示することによりhttp//192.168.116.10019888 / jobhistory

        ここに画像の説明を挿入

      • ログ集約を構成します(アプリケーションの完了後、プログラム操作ログ情報をHDFSシステムにアップロードします)

        注:ログ集計機能を有効にするには、NodeManager、ResourceManager、および
        HistoryServerを再起動する必要があります。

        • yarn-site.xmlログ集計関数と有効期限(秒)を設定、設定します

          ここに画像の説明を挿入

          [root@localhost hadoop]# vim yarn-site.xml 
          [root@localhost hadoop]# cat yarn-site.xml 
          <configuration>
          
          <!-- Site specific YARN configuration properties -->
          <!-- Reducer 获取数据的方式 -->
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
          </property>
          <!-- 指定 YARN 的 ResourceManager 的地址 -->
          <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>192.168.116.100</value>
          </property>
          <!-- 日志聚集功能使能 -->
          <property>
              <name>yarn.log-aggregation-enable</name>
              <value>true</value>
          </property>
          <!-- 日志保留时间设置 7 天 -->
          <property>
              <name>yarn.log-aggregation.retain-seconds</name>
              <value>604800</value>
          </property>
          </configuration>
          
        • NodeManager、ResourceManager、HistoryServerを閉じます

          [root@localhost hadoop-2.7.2]# sbin/yarn-daemon.sh stop nodemanager
          stopping nodemanager
          [root@localhost hadoop-2.7.2]# sbin/yarn-daemon.sh stop resourcemanager
          stopping resourcemanager
          [root@localhost hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh stop historyserver
          stopping historyserver
          [root@localhost hadoop-2.7.2]# jps
          1362 DataNode
          2664 Jps
          1308 NameNode
          
        • NodeManager、ResourceManager、HistoryServerを起動します

          [root@localhost hadoop-2.7.2]# sbin/yarn-daemon.sh start nodemanager
          starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-nodemanager-localhost.localdomain.out
          [root@localhost hadoop-2.7.2]# sbin/yarn-daemon.sh start resourcemanager
          starting resourcemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-resourcemanager-localhost.localdomain.out
          [root@localhost hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver
          starting historyserver, logging to /opt/module/hadoop-2.7.2/logs/mapred-root-historyserver-localhost.localdomain.out
          [root@localhost hadoop-2.7.2]# jps
          1362 DataNode
          2819 ResourceManager
          2965 JobHistoryServer
          2998 Jps
          2697 NodeManager
          1308 NameNode
          
      • HDFSMapReduceプログラムのその後の再実行を容易にするために、ファイルシステム内の出力ファイルを削除します

        [root@localhost hadoop-2.7.2]# hdfs dfs -rm -r /user/bcxtm/output
        20/07/05 21:48:10 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
        Deleted /user/bcxtm/output
        
      • MapReduceプログラムを再実行します

        [root@localhost hadoop-2.7.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/bcxtm/input /user/bcxtm/output
        20/07/05 22:09:30 INFO client.RMProxy: Connecting to ResourceManager at /192.168.116.100:8032
        20/07/05 22:09:36 INFO input.FileInputFormat: Total input paths to process : 1
        20/07/05 22:09:36 INFO mapreduce.JobSubmitter: number of splits:1
        20/07/05 22:09:36 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1593957936940_0001
        20/07/05 22:10:12 INFO impl.YarnClientImpl: Submitted application application_1593957936940_0001
        20/07/05 22:10:37 INFO mapreduce.Job: The url to track the job: http://192.168.116.100:8088/proxy/application_1593957936940_0001/
        20/07/05 22:10:37 INFO mapreduce.Job: Running job: job_1593957936940_0001
        20/07/05 22:10:43 INFO mapreduce.Job: Job job_1593957936940_0001 running in uber mode : false
        20/07/05 22:10:43 INFO mapreduce.Job:  map 0% reduce 0%
        20/07/05 22:10:53 INFO mapreduce.Job:  map 100% reduce 0%
        20/07/05 22:11:21 INFO mapreduce.Job:  map 100% reduce 100%
        20/07/05 22:11:31 INFO mapreduce.Job: Job job_1593957936940_0001 completed successfully
        20/07/05 22:11:31 INFO mapreduce.Job: Counters: 49
        

        YRANを介してMapReduceプログラムを実行すると、ジョブが作成され、Mapの実行プロセスが実行されてからReduceが実行されることがわかります。最後に、このタスクの実行ステータスと履歴情報をWebページで確認できます。
        ここに画像の説明を挿入

      • サーバーの履歴情報を表示する
        ここに画像の説明を挿入

      • ログ集計情報を表示する
        ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/Nerver_77/article/details/107146549