搭建简易的hadoop集群(完全分布式)

hadoop简易集群搭建(3节点 完全分布式)

前期准备工作—(已经下载下列软件包的无需重复下载)

新建虚拟机

  • 点击创建新的虚拟机

    Untitled

  • 选择自定义

    Untitled

  • 虚拟机硬件兼容性默认即可

    Untitled

  • 选择下载好的centos7光盘镜像

    Untitled

  • 找到你下载好的iso镜像位置,点击打开

    Untitled

  • 显示检测到centos7操作系统就可以了

    Untitled

  • 名称、用户名等可自定义

    Untitled

  • 修改虚拟机存放位置,尽量存放在空闲磁盘

    Untitled

  • 处理器配置随意,vm允许配置超过本机的cpu核心数

    Untitled

  • 内存分配根据自己电脑性能而定,最低不能低于512MB,多多益善

    Untitled

  • 使用NAT网络类型

    Untitled

  • IO控制器默认

    Untitled

  • 磁盘类型默认

    Untitled

  • 选择磁盘默认

    Untitled

  • 磁盘容量40GB,这不是实际占用的磁盘大小,请放心

    Untitled

  • 指定磁盘文件默认

    Untitled

  • 点击完成,等待安装

    Untitled

  • 安装完成

    Untitled

  • 登录,用户密码是刚刚在新建虚拟机时的那个账号密码

    Untitled

  • 右键打开终端

    Untitled

  • 切换到root用户

    su - root
    

    注意!此处需要输入密码,密码就是你在新建虚拟机时写的那个用户密码,这里输入密码没有回显!

    Untitled

  • 安装网络组件

    yum install net-tools
    
  • 配置虚拟机网络环境

    Untitled

    Untitled

    • 配置VM8虚拟网卡的dhcp服务器分配地址范围

      Untitled

      Untitled

    • 配置网关

      Untitled

      Untitled

      Untitled

  • 重启虚拟机

    reboot
    

    Untitled

  • 重启后打开终端,切换到root用户

    su - root
    
  • 配置网络文件

    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    

    注意,网卡的名字不同,配置文件也不同!

    Untitled

    保存退出

  • 设置root密码

passwd root

Untitled

设置密码为root

  • 重启虚拟机

    reboot
    
  • 打开xshell,连接虚拟机

    Untitled

    Untitled

    Untitled

    Untitled

    Untitled

  • 安装分发工具

    yum install rsync -y
    

    Untitled

  • 编写集群分发脚本

    mkdir ~/bin && vim ~/bin/xsync
    
    #!/bin/bash
    #1 获取输入参数个数,如果没有参数,直接退出
    pcount=$#
    if((pcount==0)); then
    echo no args;
    exit;
    fi
    
    #2 获取文件名称
    p1=$1
    fname=`basename $p1`
    echo fname=$fname
    
    #3 获取上级目录到绝对路径
    pdir=`cd -P $(dirname $p1); pwd`
    echo pdir=$pdir
    
    #4 获取当前用户名称
    user=`whoami`
    
    #5 循环
    #这里的主机名是hadoop101~hadoop103,要根据情况修改代码
    for i in hadoop102 hadoop103 hadoop104
    do
            echo ------------------- $i  --------------
            rsync -rvl $pdir/$fname $user@$i:$pdir
    done
    
  • 给脚本赋权

    chmod +x ~/bin/xsync
    
  • 关机

    init 0
    
  • 右键,克隆虚拟机

    Untitled

    Untitled

    Untitled

    Untitled

    点击完成,克隆成功

    再按照以上步骤克隆一台虚拟机,名称为hadoop104

    Untitled

    完成后如下图

    Untitled

  • 配置克隆的网络文件

    • 开启hadoop103,切换至root用户

      su - root
      

      密码是root

    • 编辑网络配置文件

      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      

      Untitled

      保存退出

    • 重启

      reboot
      
    • 开启hadoop104

    • 切换至root用户

      su - root
      
    • 编辑网络配置文件

      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      

      Untitled

      保存退出

    • 重启hadoop104

      reboot
      
  • 启动hadoop102

    Untitled

    确保3台节点启动成功

  • 打开xshell,新建两个会话

    • hadoop103会话

      Untitled

      Untitled

      Untitled

      Untitled

      点击确定

    • hadoop104会话

      Untitled

      Untitled

      Untitled

      Untitled

      点击确定

    • 连接

      选中3个会话,点击连接

      Untitled

      弹出如下提示,输入yes即可

      Untitled

搭建hadoop3.x完全分布式集群

集群规划

hadoop102hadoop103hadoop104
namenoderesourcemanagerdatanode
datanodedatanodenodemanager
nodemanagernodemanagersecondarynamenode
  • 配置host映射

    • 点击hadoop102选项卡

      Untitled

    • 编辑hosts文件

      vim /etc/hosts
      
      192.168.138.102 hadoop102
      192.168.138.103 hadoop103
      192.168.138.104 hadoop104
      

      Untitled

      保存退出

  • 配置集群ssh

    • hadoop102配置ssh无密登录

      ssh-keygen -t rsa
      

      一直回车即可

      Untitled

      ssh-copy-id hadoop102
      

      输入yes,提示输入密码的地方输入root,这里也是没有回显的!!

      Untitled

      如上操作再将公钥复制到hadoop103、hadoop104

      ssh-copy-id hadoop103
      
      ssh-copy-id hadoop104
      
    • 分发hosts

      xsync /etc/hosts
      
    • hadoop103配置ssh无密登录

      点击hadoop103选项卡

      Untitled

      生成公钥

      ssh-keygen -t rsa
      

      Untitled

      如hadoop102的操作,将公钥复制到其他节点

      ssh-copy-id hadoop102
      
      ssh-copy-id hadoop103
      
      ssh-copy-id hadoop104
      
    • hadoop104配置ssh无密登录

      选择hadoop104选项卡

      Untitled

      生成公钥

      ssh-keygen -t rsa
      

      复制公钥到其他节点

      ssh-copy-id hadoop102
      
      ssh-copy-id hadoop103
      
      ssh-copy-id hadoop104
      
  • 上传hadoop安装包

    • 回到hadoop102选项卡

      创建目录

      mkdir /opt/software && cd /opt/software
      
    • 上传安装包

      开启xftp

      Untitled

      将下载好的hadoop和jdk移动到右边

      Untitled

      回到xshell

    • 创建目录并解压

      mkdir /opt/module
      
      tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/
      
      tar -zxvf /opt/software/jdk-8u401-linux-x64.tar.gz -C /opt/module/
      
    • 改名

      mv /opt/module/jdk1.8.0_401/ /opt/module/jdk
      
  • 添加JAVA_HOME

    • 添加java环境变量

      vim /etc/profile
      
      #JAVA_HOME
      export JAVA_HOME=/opt/module/jdk
      export PATH=$PATH:$JAVA_HOME/bin
      
  • 添加HADOOP_HOME

    • 添加hadoop环境变量

      #HADOOP_HOME
      export HADOOP_HOME=/opt/module/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin
      export PATH=$PATH:$HADOOP_HOME/sbin
      

      Untitled

      保存退出

    • 刷新环境变量

      source /etc/profile
      
    • 分发环境变量

      xsync /etc/profile
      
  • 修改配置文件

    • 改名

      mv /opt/module/hadoop-3.1.3/ /opt/module/hadoop
      
    • core-site.xml

      vim /opt/module/hadoop/etc/hadoop/core-site.xml
      
      <configuration>
              <property>
                      <name>fs.defaultFS</name>
                      <value>hdfs://hadoop102:8020</value>
              </property>
              <property>
                      <name>hadoop.tmp.dir</name>
                      <value>/opt/module/hadoop/data</value>
              </property>
      </configuration>
      

      Untitled

      保存退出

    • hdfs-site.xml

      vim /opt/module/hadoop/etc/hadoop/hdfs-site.xml
      
      <configuration>
              <property>
                      <name>dfs.replication</name>
                      <value>3</value>
              </property>
              <property>
                      <name>dfs.namenode.http-address</name>
                      <value>hadoop102:9870</value>
              </property>
              <property>
                      <name>dfs.namenode.secondary.http-address</name>
                      <value>hadoop104:9868</value>
              </property>
      </configuration>
      
      

      Untitled

    • yarn-site.xml

      vim /opt/module/hadoop/etc/hadoop/yarn-site.xml
      
      <configuration>
      
      <!-- Site specific YARN configuration properties -->
      
              <property>
                      <name>yarn.nodemanager.aux-services</name>
                      <value>mapreduce_shuffle</value>
              </property>
              <property>
                      <name>yarn.resourcemanager.hostname</name>
                      <value>hadoop103</value>
              </property>
      </configuration>
      
      

      Untitled

    • mapred-site.xml

      vim /opt/module/hadoop/etc/hadoop/mapred-site.xml
      
      <configuration>
              <property>
                      <name>mapreduce.framework.name</name>
                      <value>yarn</value>
              </property>
              <property>
                      <name>mapreduce.jobhistory.address</name>
                      <value>hadoop102:10020</value>
              </property>
              <property>
                      <name>mapreduce.jobhistory.webapp.address</name>
                      <value>hadoop102:19888</value>
              </property>
      </configuration>
      
      

      Untitled

    • 在hadoop-env.sh配置java环境变量

      vim /opt/module/hadoop/etc/hadoop/hadoop-env.sh
      

      Untitled

      保存退出

    • 在sbin/start-dfs.sh , sbin/stop-dfs.sh 两个文件顶部添加以下参数

      vim /opt/module/hadoop/sbin/start-dfs.sh
      
      HDFS_DATANODE_USER=root
      HADOOP_SECURE_DN_USER=hdfs
      HDFS_NAMENODE_USER=root
      HDFS_SECONDARYNAMENODE_USER=root
      

      Untitled

      vim /opt/module/hadoop/sbin/stop-dfs.sh
      
      #!/usr/bin/env bash
      HDFS_DATANODE_USER=root
      HADOOP_SECURE_DN_USER=hdfs
      HDFS_NAMENODE_USER=root
      HDFS_SECONDARYNAMENODE_USER=root
      

      Untitled

    • 在sbin/start-yarn.sh , sbin/stop-yarn.sh两个文件顶部添加以下参数

      vim /opt/module/hadoop/sbin/start-yarn.sh
      
      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=yarn
      YARN_NODEMANAGER_USER=root
      

      Untitled

      vim /opt/module/hadoop/sbin/stop-yarn.sh
      
      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=yarn
      YARN_NODEMANAGER_USER=root
      

      Untitled

    • 编辑workers添加集群节点主机名

      vim /opt/module/hadoop/etc/hadoop/workers
      
      hadoop102
      hadoop103
      hadoop104
      

      Untitled

    • 分发module目录

      xsync /opt/module
      
    • 格式化hdfs

      hdfs namenode -format
      
    • 关闭防火墙

      每台节点都执行以下命令

      systemctl stop firewalld && systemctl disable firewalld
      
    • 启动hadoop

      start-dfs.sh
      

      注意!yarn需要在hadoop103启动

      切换到hadoop103

      source /etc/profile
      
      start-yarn.sh
      

      切换到hadoop104

      source /etc/profile
      
    • 在各节点输入jps命令查看hadoop进程

      hadoop102

      Untitled

      hadoop103

      Untitled

      hadoop104

      Untitled

  • 在网页浏览器访问hadoop web页面

    192.168.138.102:9870
    

    Untitled

搭建完成!!

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值