Hadoop3.3.5最新版本安装分布式集群部署

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    Index of /dist/hadoop/commonhttps://archive.apache.org/dist/hadoop/common

     集群规划

    注意

    • NameNode和SecondaryNameNode不要安装在同一台服务器
    • ResourceManager也很消耗内存不要和NameNode、SecondaryNameNode配置在同一台机器上。
    机器ip分配节点
    node01192.168.56.201NameNode、DataNode、NodeManager
    node02192.168.56.202ResourceManager、DataNode、NodeManager
    node03192.168.56.203SecondaryNameNode、DataNode、NodeManager

    1、解压到linux配置环境变量在/etc/profile.d/hadoop_env.sh

    #!/bin/bash
    
    export JAVA_HOME=/data/soft/jdk1.8.0_201
    export HADOOP_HOME=/data/soft/hadoop-3.3.5
    
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    2、cd /data/soft/hadoop-3.3.5/etc/hadoop

    [root@local-node01 hadoop]# cd /data/soft/hadoop-3.3.5/etc/hadoop/
    [root@local-node01 hadoop]# ll
    total 176
    -rw-r--r-- 1 2002 2002  9213 Mar 15 12:36 capacity-scheduler.xml
    -rw-r--r-- 1 2002 2002  1335 Mar 15 12:38 configuration.xsl
    -rw-r--r-- 1 2002 2002  2567 Mar 15 12:36 container-executor.cfg
    -rw-r--r-- 1 2002 2002   774 Mar 15 11:57 core-site.xml
    -rw-r--r-- 1 2002 2002  3999 Mar 15 11:57 hadoop-env.cmd
    -rw-r--r-- 1 2002 2002 16803 Apr  4 20:27 hadoop-env.sh
    -rw-r--r-- 1 2002 2002  3321 Mar 15 11:57 hadoop-metrics2.properties
    -rw-r--r-- 1 2002 2002 11765 Mar 15 11:57 hadoop-policy.xml
    -rw-r--r-- 1 2002 2002  3414 Mar 15 11:57 hadoop-user-functions.sh.example
    -rw-r--r-- 1 2002 2002   683 Mar 15 12:07 hdfs-rbf-site.xml
    -rw-r--r-- 1 2002 2002   775 Mar 15 12:02 hdfs-site.xml
    -rw-r--r-- 1 2002 2002  1484 Mar 15 12:06 httpfs-env.sh
    -rw-r--r-- 1 2002 2002  1657 Mar 15 12:06 httpfs-log4j.properties
    -rw-r--r-- 1 2002 2002   620 Mar 15 12:06 httpfs-site.xml
    -rw-r--r-- 1 2002 2002  3518 Mar 15 11:58 kms-acls.xml
    -rw-r--r-- 1 2002 2002  1351 Mar 15 11:58 kms-env.sh
    -rw-r--r-- 1 2002 2002  1860 Mar 15 11:58 kms-log4j.properties
    -rw-r--r-- 1 2002 2002   682 Mar 15 11:58 kms-site.xml
    -rw-r--r-- 1 2002 2002 13700 Mar 15 11:57 log4j.properties
    -rw-r--r-- 1 2002 2002   951 Mar 15 12:38 mapred-env.cmd
    -rw-r--r-- 1 2002 2002  1764 Mar 15 12:38 mapred-env.sh
    -rw-r--r-- 1 2002 2002  4113 Mar 15 12:38 mapred-queues.xml.template
    -rw-r--r-- 1 2002 2002   758 Mar 15 12:38 mapred-site.xml
    drwxr-xr-x 2 2002 2002    24 Mar 15 11:57 shellprofile.d
    -rw-r--r-- 1 2002 2002  2316 Mar 15 11:57 ssl-client.xml.example
    -rw-r--r-- 1 2002 2002  2697 Mar 15 11:57 ssl-server.xml.example
    -rw-r--r-- 1 2002 2002  2681 Mar 15 12:02 user_ec_policies.xml.template
    -rw-r--r-- 1 2002 2002    10 Mar 15 11:57 workers
    -rw-r--r-- 1 2002 2002  2250 Mar 15 12:36 yarn-env.cmd
    -rw-r--r-- 1 2002 2002  6329 Mar 15 12:36 yarn-env.sh
    -rw-r--r-- 1 2002 2002  2591 Mar 15 12:36 yarnservice-log4j.properties
    -rw-r--r-- 1 2002 2002   690 Mar 15 12:36 yarn-site.xml

     3、修改其中的一些文件

     1hadoop-env.sh修改JAVA_HOME为具体的路径

    export JAVA_HOME=/data/soft/jdk1.8.0_201
    
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root 

      2core-site.xml

    <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://node01:9000</value>
    </property>
     
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/data/soft/hadoop-3.3.5/datas</value>
    </property>
    <!-- 在Web UI访问HDFS使用的用户名。-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    
    <!-- 整合hive 用户代理设置 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    
    <!-- 文件系统垃圾桶保存时间 -->
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>

    3hdfs-site.xml

    <!-- NN web端访问地址-->
    <property>
       <name>dfs.namenode.http-address</name>
       <value>node01:9870</value>
    </property>
    <!-- 设定SNN运行主机和端口。-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node03:9868</value>
    </property>
    <!-- 指定HDFS副本的数量 -->
    <property>
      <name>dfs.replication</name>
      <value>3</value>
    </property>
    
    <!--如果为"true"则在HDFS中启用权限检查;如果为"false"则关闭权限检查;默认值为"true"。-->
    <property>
      <name>dfs.permissions.enabled</name>
      <value>false</value>
    </property>

    4mapred-site.xml

    <!-- 设置MR程序默认运行模式 yarn集群模式 local本地模式 -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <!-- MR程序历史服务地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>node01:10020</value>
    </property>
    
    <!-- MR程序历史服务器web端地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>node01:19888</value>
    </property>

     5yarn-site.xml

    <!-- 指定YARN的老大ResourceManager的地址 -->
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>node02</value>
    </property>
     
    <!-- reducer获取数据的方式 -->
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
     
    <!-- 是否将对容器实施物理内存限制 -->
    <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <!-- 是否将对容器实施虚拟内存限制。 -->
    <property>
         <name>yarn.nodemanager.vmem-check-enabled</name>
         <value>false</value>
    </property>
     
    <property>
        <!--开启日志聚合-->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <!--日志聚合hdfs存储路径-->
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/soft/hadoop-3.3.5/nodemanager-remote-app-logs</value>
    </property>
    <!-- 历史日志保存的时间 7天 -->
    <property>
        <!--hdfs上的日志保留时间-->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
     
    <property>
        <!--应用执行时存储路径-->
        <name>yarn.nodemanager.log-dirs</name>
        <value>file:///data/soft/hadoop-3.3.5/nodemanager-logs</value>
    </property>
     
    <property>
        <!--应用执行完日志保留的时间默认0即执行完立刻删除-->
        <name>yarn.nodemanager.delete.debug-delay-sec</name>
        <value>604800</value>
    </property>
    
    
    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://node01:19888/jobhistory/logs</value>
    </property>

    (6)配置workers

    node01
    node02
    node03

    注意该文件中添加的内容结尾不允许有空格文件中不允许有空行。

    4 、启动集群

    1如果集群是第一次启动需要在hadoop102节点格式化NameNode注意格式化NameNode会产生新的集群id导致NameNode和DataNode的集群id不一致集群不到已数据。如果集群在运行过程中报错需要重新格式化NameNode的话一定要停止namenode和datanode进程并且要删除所有机器的datalogs目录然后再进行格式化。

    hdfs namenode -format

    2启动HDFS

    start-dfs.sh

    Hadoop集群启动关闭-手动逐个进程启停 

    每台机器上每次手动启动关闭一个角色进程
    HDFS集群
    	hdfs --daemon start namenode|datanode|secondarynamenode
    	hdfs --daemon stop  namenode|datanode|secondarynamenode
    YARN集群
    	yarn --daemon start resourcemanager|nodemanager
    	yarn --daemon stop  resourcemanager|nodemanager

    启动界面

    http://192.168.56.201:9870/

     

     

    修改hdfs的web端口和yarn的web端口的配置

    hdfs-site.xml配置http

    <property>
      <name>dfs.http.address</name>
      <value>node01:9870</value>
    </property>

     yarn-site.yml配置如下

    <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>node02:8088</value>
    </property>

    配置历史服务器

    为了查看程序的历史运行情况需要配置一下历史服务器。具体配置步骤如下

    1配置mapred-site.xml

    增加如下配置

    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node01:10020</value>
    </property>
    
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node01:19888</value>
    </property>

    分发配置文件到所有的主机

    mapred --daemon start historyserver

    hadoop jar /data/soft/hadoop-3.3.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /words.txt /out

     

     配置日志的聚集

    日志聚集功能好处可以方便的查看到程序运行详情方便开发调试。

    注意开启日志聚集功能需要重新启动NodeManager 、ResourceManager和HistoryServer

    开启日志聚集功能具体步骤如下

    1配置yarn-site.xml

    <property>
        <!--开启日志聚合-->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://node01:19888/jobhistory/logs</value>
    </property>
    <property>
        <!--日志聚合hdfs存储路径-->
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/soft/hadoop-3.3.5/nodemanager-remote-app-logs</value>
    </property>
    <property>
        <!--hdfs上的日志保留时间-->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    
    <property>
        <!--应用执行时存储路径-->
        <name>yarn.nodemanager.log-dirs</name>
        <value>file:///data/soft/hadoop-3.3.5/nodemanager-logs</value>
    </property>
    
    <property>
        <!--应用执行完日志保留的时间默认0即执行完立刻删除-->
        <name>yarn.nodemanager.delete.debug-delay-sec</name>
        <value>604800</value>
    </property>

    分发配置文件到所有的主机

    先关闭NodeManager 、ResourceManager和HistoryServer

    然后重启NodeManager 、ResourceManageHistoryServer

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: Hadoop