Hadoop企业级部署

Hadoop企业级部署

node01 :主节点,将node02和node03的磁盘挂载过来

node02 :从节点

node03 :从节点

一、磁盘挂载

  1. 查看磁盘命令

    fdisk -l
    

    在这里插入图片描述

  2. 查看磁盘挂载情况

    df -h
    

    在这里插入图片描述

  3. 新磁盘先格式化才能挂载xfs/ext4(node02)

    # 在Linux系统上创建XFS文件系统
    mkfs.xfs -f /dev/sdb
    mkfs.xfs -f /dev/sdc
    

    在这里插入图片描述

  4. 开始挂载磁盘(本机)(node02)

    # 先创建一个文件夹
    mkdir /storage01
    mkdir /storage02
    # 开始挂载
    mount /dev/sdb /storage01
    mount /dev/sdc /storage02
    

    在这里插入图片描述

    # 取消挂载(不用执行)
    umount /storage01
    umount /storage02
    

    在这里插入图片描述

  5. 将其他虚拟机的磁盘挂载到另一台虚拟机需要借助nfs挂载技术 (node02)

    # 安装
    yum -y install nfs-utils
    # 修改配置(挂载权限)
    vim /etc/exports  
    # 添加两行
    /storage01 *(rw,sync,no_subtree_check)
    /storage02 *(rw,sync,no_subtree_check)
    # 授权
    chmod 777 /storage01
    chmod 777 /storage02
    # 设置为开机自动挂载磁盘
    vim /etc/fstap
    # 添加两行
    /dev/sdb   /storage01  xfs  defaults  0   0
    /dev/sdc   /storage02  xfs  defaults  0   0
    # 启动nfs服务
    systemctl start nfs-server
    # 设置开机自启
    systemctl enable nfs-server
    
  6. 至此,node02配置完成,node03也类似

  7. 开始配置node01

    # 创建挂载点,修改权限
    mkdir -p /storage/storage01
    mkdir -p /storage/storage02
    mkdir -p /storage/storage03
    mkdir -p /storage/storage04
    chmod -R 777 /storage
    # 修改配置
    vim /etc/fstab
    # 添加下方4行
    192.168.48.20:/storage01 /storage/storage01 nfs vers=3,async,noatime,nodiratime 0 0
    192.168.48.20:/storage02 /storage/storage02 nfs vers=3,async,noatime,nodiratime 0 0
    192.168.48.30:/storage03 /storage/storage03 nfs vers=3,async,noatime,nodiratime 0 0
    192.168.48.30:/storage04 /storage/storage04 nfs vers=3,async,noatime,nodiratime 0 0
    # 挂载
    mount -a
    

    在这里插入图片描述

二、安装Hadoop

  • 上传压缩包解压

    tar -zxvf hadoop-3.3.1.tar.gz -C /opt/module/
    
  • 修改 /opt/module/hadoop-3.1.3/etc/hadoop/ 下的配置文件

    • 修改 hadoop-env.sh

      # 添加如下内容
      export JAVA_HOME=/opt/module/jdk1.8.0_211  # 指明JDK环境的位置
      export HADOOP_HOME=/opt/module/hadoop-3.3.1  # 指明Hadoop安装位置
      export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop  # 指明Hadoop配置文件目录位置
      export HADOOP_LOG_DIR=$HADOOP_HOME/logs  # 指明Hadoop运行日志目录位置
      
    • 修改 core-site.xml

      <configuration>
          <!-- 指定NameNode的地址 -->
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://node01:9000</value>
          </property>
          <!-- 指定hadoop数据的存储目录 -->
          <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/module/hadoop-3.3.1/data</value>
          </property>
      
          <!-- 配置HDFS网页登录使用的静态用户为root -->
          <property>
              <name>hadoop.http.staticuser.user</name>
              <value>root</value>
          </property>
      
          <!-- 配置该root(superUser)允许通过代理访问的主机节点 -->
          <property>
              <name>hadoop.proxyuser.root.hosts</name>
              <value>*</value>
          </property>
          <!-- 配置该root(superUser)允许通过代理用户所属组 -->
          <property>
              <name>hadoop.proxyuser.root.groups</name>
              <value>*</value>
          </property>
          <!-- 配置该root(superUser)允许通过代理的用户-->
          <property>
              <name>hadoop.proxyuser.root.users</name>
              <value>*</value>
          </property>
      
      </configuration>
      
    • 修改 hdfs-site.xml

      <configuration>
          
          <!-- nn web端访问地址-->
          <property>
              <name>dfs.namenode.http-address</name>
              <value>node01:50070</value>
          </property>
      
          <!-- 2nn web端访问地址-->
          <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>node01:9868</value>
          </property>
      
          <!-- 测试环境指定HDFS副本的数量1 -->
          <property>
              <name>dfs.replication</name>
              <value>2</value>
          </property>
          
      </configuration>
      
    • 修改 mapred-site.xml

      <configuration>
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
      </configuration>
      
    • 修改 yarn-site.xml

      <configuration>
          <!-- 指定MR走shuffle -->
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
          </property>
      
          <!-- 指定ResourceManager的地址-->
          <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>node01</value>
          </property>
      
          <!-- 环境变量的继承 -->
          <property>
              <name>yarn.nodemanager.env-whitelist</name>
              <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
          </property>
      
          <!-- yarn容器允许分配的最大最小内存 -->
          <property>
              <name>yarn.scheduler.minimum-allocation-mb</name>
              <value>512</value>
          </property>
          <property>
              <name>yarn.scheduler.maximum-allocation-mb</name>
              <value>4096</value>
          </property>
      
          <!-- yarn容器允许管理的物理内存大小 -->
          <property>
              <name>yarn.nodemanager.resource.memory-mb</name>
              <value>4096</value>
          </property>
      
          <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
          <property>
              <name>yarn.nodemanager.pmem-check-enabled</name>
              <value>false</value>
          </property>
          <property>
              <name>yarn.nodemanager.vmem-check-enabled</name>
              <value>false</value>
          </property>
      </configuration>
      
    • 修改 workers

      node02
      node03
      
    • 注意:分发给其他节点,并修改其他节点的hdfs-site.xml文件,添加如下

      <!-- node02 hdfs的真实数据路径 -->
      <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:///storage01,file:///storage02</value>
      </property>
      
      
      
      <!-- node03 hdfs的真实数据路径 -->
      <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:///storage03,file:///storage04</value>
      </property>
      
  • 在每个节点配置环境变量 /etc/profile

    export JAVA_HOME=/opt/module/jdk1.8.0_211
    export PATH=$PATH:$JAVA_HOME/bin
    export HADOOP_HOME=/opt/module/hadoop-3.3.1
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
  • 在node01节点添加root用户权限的环境变量 /etc/profile

    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
    
  • 在node01节点初始化namenode

    hdfs namenode -format
    
  • 在node01启动hdfs和yarn,使用jps查看每个节点的进程

    start-dfs.sh
    start-yarn.sh
    
  • 在web端查看hdfs, 50070端口号是自己在hdfs-site.xml中设置的

    http://192.168.48.10:50070/
    
  • 如果想在web网页端向hdfs上传文件,需要在本地windows的hosts文件中配置IP映射

    192.168.48.10 node01
    192.168.48.20 node02
    192.168.48.30 node03
    

重点:

  • 配置历史服务器 (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>
    
  • 配置日志聚集(yarn-site.xml):应用运行完成以后,将程序运行日志信息上传到HDFS系统上,可以方便的查看到程序运行详情,方便开发调试

    <!-- 开启日志聚集功能 -->
    <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>
    
    <!-- 设置日志保留时间为7天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    
  • 启动历史服务器,前提是hdfs和yarn都启动了

    # 启动历史服务器
    mapred --daemon start historyserver
    # web端页面访问    http://192.168.48.10:19888/
    # jps进程查看会多了一个JobHistoryServer服务
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值