栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

手把手Hadoop伪分布集群搭建+hadoop完全分布式集群搭建

手把手Hadoop伪分布集群搭建+hadoop完全分布式集群搭建

文章目录

一. 创建模板机二. 魔板机调试配置

2.1 测试是否可上网2.2 安装工具配置免密登录2.3关闭防火墙 关闭防火墙开机自启动2.4 创建atguigu用户,更改密码2.5 切换到atguigu用户,创建文件夹2.7 修改克隆机主机名2.8 root用户修改静态ip2.8 在魔板机安装jdk(atguigu用户)2.10 在魔板机安装hadoop 伪分布搭建三. 完全分布式准备

3.1 克隆虚拟机3.2 打开虚拟机3.3 更改主机名3.4 配置静态ip

3.4.1 编辑ifcf-ens33文件3.4.2 配置信息3.4.3 重启虚拟机 3.5 配置每台主机映射hosts文件3.6 修改windows的主机映射文件(hosts文件) 四·完全分布式搭建

4.1 准备三台客户机

4.1.1 虚拟机准备4.1.2 编写集群分发脚本xsync

<1>scp<2>rsync同步工具<3>xsync集群分发脚本 4.2 配置ssh免密登录4.3 单点启动4.4 配置集群

4.4.1 集群配置原则4.4.2 配置文件说明4.4.3 配置文件4.4.4 分发hadoop 4.5 群起并测试集群

4.5.1 配置slaves4.5.2 启动集群

1.初始化集群2.正式启动集群 4.5.3 Web端查看HDFS的NameNode 4.6 配置历史服务器4.7 配置日志聚集4.8 集群启动停止方式总结4.9 hadoop集群常用脚本

4.9.1 hadoop启动、停止脚本

4.9.2 查看三台服务器进程脚本:jpsall 4.10 集群时间同步

话不多说,安装完全分布式的血泪史太长了,这次直接给自己把安装过程全部弄正确记录下来。所谓完美的安装过程。

一. 创建模板机

创建新的虚拟机

二. 魔板机调试配置 2.1 测试是否可上网
ping

Ctrl+z 退出联网测试

2.2 安装工具
1.安装epel-release
yum install -y epel-release

2.安装net-tools工具:包含ifconfig工具
yum install -y net-tools

3.安装ntp
yum install -y ntp

配置免密登录

1.生成密钥

2.进入/root/.ssh,将公钥O导入

    2.3关闭防火墙 关闭防火墙开机自启动
    systemctl stop firewalld  关闭防火墙
    systemctl disable firewalld.service   关闭防火墙开机自启动
    

    2.4 创建atguigu用户,更改密码
    1.创建atguigu用户
    useradd atguigu
    
    2.更改密码
    passwd atguigu
    
    3.添加atguigu  sudo具有root权限
    vim /etc/sudoers
    
    在%wheel  ALL=(ALL)       ALL下一行添加:
    atguigu   ALL=(ALL)     NOPASSWD:ALL
    
    :wq!强制保存
    
    

    2.5 切换到atguigu用户,创建文件夹

    1.切换到atguigu用户
    su - atguigu

    2.创建文件夹
    sudo mkdir /opt/module //安装路径
    sudo mkdir /opt/software //存放安装包

    3.修改module、software文件夹的所有者和所属组均为atguigu用户
    chown atguigu:atguigu /opt/module
    chown atguigu:atguigu /opt/software

    4.查看module、software文件夹的所有者和所属组
    cd /opt/
    ll

    2.7 修改克隆机主机名

    1.修改主机名称

    vim /etc/hostname
    

      配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts
    vim /etc/hosts
    
    添加
    192.168.10.100 hadoop100
    

    3.修改windows的主机映射文件(hosts文件)

    C:WindowsSystem32driversetc中
    
    打开hosts文件并添加如下内容,然后保存
    192.168.10.100 hadoop100
    

    2.8 root用户修改静态ip

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

    2.添加

    TYPE="Ethernet"
    
    PROXY_METHOD="none"
    
    BROWSER_onLY="no"
    
    BOOTPROTO="static"
    
    DEFROUTE="yes"
    
    IPV4_FAILURE_FATAL="no"
    
    IPV6INIT="yes"
    
    IPV6_AUTOCONF="yes"
    
    IPV6_DEFROUTE="yes"
    
    IPV6_FAILURE_FATAL="no"
    
    IPV6_ADDR_GEN_MODE="stable-privacy"
    
    NAME="ens33"
    
    
    
    IPADDR=192.168.10.100
    
    PREFIX=24
    
    GATEWAY=192.168.10.2
    
    DNS1=192.168.10.2
    

    3.查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8

      查看Windows系统适配器VMware Network Adapter VMnet8的IP地址

    4.保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

    5.重启

    reboot
    

    2.8 在魔板机安装jdk(atguigu用户)

    1.解压jdk到/opt/module

    tar -zxvf xxxxxxx -C /opt/module/
    

    2.配置JDK环境变量

    (1)新建/etc/profile.d/my_env.sh文件
    sudo vim /etc/profile.d/my_env.sh
    
    (2)添加
    #JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin
    
    (3)让新的环境变量PATH生效
    source /etc/profile
    

    2.10 在魔板机安装hadoop

    1.解压安装文件到/opt/module下面

    tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module/
    
    

    2.配置hadoop环境变量

    3.使环境变量生效

    伪分布搭建

    建立hadoop工作目录/var/hadoop 
    
    
    
    
    fs.defaultFS
    
       hdfs://hadoop100:9000
    
    
    
    
     
    
      hadoop.tmp.dir
    
      /opt/hadoopTmp/
    
    
    
    
    
    

     vi etc/hadoop/hdfs-site.xml 
    

    格式化hdfs命令:

    hdfs namenode -format
    

    成功

    yarn配置
    
     vi  etc/hadoop/yarn-site.xml 
    
    
     
        yarn.resourcemanager.hostsname
        BigData01
     
     
        yarn.nodemanager.aux-services
        mapreduce_shuffle
     
    
    
    配置mapred-site.xml 
    

    
    
         mapreduce.framework.name
         yarn
    
    
    
    启动
    

    hbase单机

    
    hbase.zookeeper.quorum
    localhost
    
    
    
    hbase.zookeeper.property.clientPort
    2181
    
    
    
    hbase.unsafe.stream.capability.enforce
    #使用我们电脑的文件系统,作为数据存储。
    false
    
    
    
    hbase.master.ipc.address
    0.0.0.0
    
    
    
    hbase.regionserver.ipc.address
    0.0.0.0
    
    
    
    
    三. 完全分布式准备 3.1 克隆虚拟机
    克隆出 3台虚拟机 Hadoop102  hadoop103  hadoop104
    
    3.2 打开虚拟机
    打开虚拟机,ifconfig命令查看ip,方面在连接工具上连接虚拟机。
    
    3.3 更改主机名
    Root用户,更改各个虚拟机主机名(如hadoop102)
    

    3.4 配置静态ip
    Root用户,配置各个虚拟机静态IP(如hadoop102)
    
    3.4.1 编辑ifcf-ens33文件

    3.4.2 配置信息
    使用这个配置信息,更改IP
    
    TYPE="Ethernet"
    
    PROXY_METHOD="none"
    
    BROWSER_onLY="no"
    
    BOOTPROTO="static"
    
    DEFROUTE="yes"
    
    IPV4_FAILURE_FATAL="no"
    
    IPV6INIT="yes"
    
    IPV6_AUTOCONF="yes"
    
    IPV6_DEFROUTE="yes"
    
    IPV6_FAILURE_FATAL="no"
    
    IPV6_ADDR_GEN_MODE="stable-privacy"
    
    NAME="ens33"
    
    
    
    IPADDR=192.168.10.102
    
    PREFIX=24
    
    GATEWAY=192.168.10.2
    
    DNS1=192.168.10.2
    
    
    
    3.4.3 重启虚拟机
    此时已经修改成自己想要的ip
    

    3.5 配置每台主机映射hosts文件

    重启:reboot
    
    3.6 修改windows的主机映射文件(hosts文件)
    进入C:WindowsSystem32driversetc路径找到hosts
    1.修改windows的主机映射文件(hosts文件)
    2.修改windows的主机映射文件(hosts文件)
    
    

    四·完全分布式搭建 4.1 准备三台客户机

    要求:关闭防火墙,已配置静态IP,主机名称完善

    4.1.1 虚拟机准备

    看第三章

    4.1.2 编写集群分发脚本xsync

    1.使用三种命令在主机之间传输文件
     (1)scp  
     (2)rsync
     (3)xsync
      
    
    <1>scp
    2.scp:可以实现服务器与服务器之间的数据拷贝,拷贝,拷贝!!
     (1)语法:
     scp  -r   $pdir/fname       $user@hosr:$pdir/fname
     命令 递归  文件路径/文件名称    目的地用户@主机:目的地路径/名称
     
     (2)使用前提:虚拟机器中有相同文件夹或者文件,并且权限归自定义用户所有
    
    

    案例:在hadoop102上 把/opt/module/hadoop-2.7.3目录拷贝到hadoop103,hadoop104

    出现连接错误,需要将对应的IP加到/etc/hosts中。

    解决问题后成功:

    <2>rsync同步工具
    1.rsync:主要用于备份和镜像,速度快,可以变复制相同内容和支持符号链接的优点
    2.rsync和scp区别:用rsync做文件的复制比scp复制所用时间短,rsync只对差异文件做复制,scp是复制所有文件。
    3.基本语法:
     rsync  -av   $pdir/$fname    $user@host:$pdir/fname
     命令  选项参数 文件路径/文件名   目的地用户@主机:目的地路径/名称
     
    4.参数说明:
      (1)-a      归档拷贝
      (2)-v      显示复制过程
    

    案例:

    (1)删除hadoop103中的/opt/module/hadoop-2.7.3/bin文件(只是实验,平时不能随便删除bin目录)

    补充知识点:删除安装的tar包
    rm -r 安装包路径/安装包名称

    (2)同步hadoop102中的/opt/module/hadoop-2.7.3/bin文件到hadoop103

    <3>xsync集群分发脚本
    1.需求:循环复制文件到所有节点的相同目录下
    2.rsync原始命令拷贝
    
      rsync  -av   /opt/module  atguigu@hadoop103:/opt/
    

    1.期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

    2.在根目录创建bin文件夹

    3.在/home/atguigu/bin 目录下创建xsync脚本

    sudo vim xsync
    

    !!!!!!注意粘贴一定要先按i,不然脚本可能没用!!!!!!
    
    
    
    #!/bin/bash
    
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
    echo Not Enough Arguement!
    exit;
    fi
    
    #2. 遍历集群所有机器
    for host in hadoop102 hadoop103 hadoop104
    do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送
    
    for file in $@
    do
      #4. 判断文件是否存在
      if [ -e $file ]
          then
              #5. 获取父目录
              pdir=$(cd -P $(dirname $file); pwd)
    
              #6. 获取当前文件的名称
              fname=$(basename $file)
              ssh $host "mkdir -p $pdir"
    rsync -av $pdir/$fname $host:$pdir
          else
              echo $file does not exists!
      fi
    done
    done
                                                              
    

    4.给脚本赋予权限

    chmod 777 xsync
    

    文件赋予权限之后变成绿色,可以使用脚本了

    5.同步当前bin目录到hadoop103

    6.当sudo xsync绝对路径 赋值文件,就可以赋值给root用户

    4.2 配置ssh免密登录

    主机之间互相登录不需要输入密码就可以登录
    

    1.进入家目录 /home/atguigu

    2.ls -all 查看所有隐藏文件

    3.进入 .ssh文件,发现一个known_hosts文件

    known_hosts文件中有访问数据,说明有主机访问过

    4.现在配置hadoop102无密登录hadoop103

    ssh-keygen -t rsa  (3次回车搞定)
    

    此时在查看ssh中九多了一个公钥,一个私钥

    私钥:

    公钥:

    5.拷贝hadoop102的公钥到hadoop03,hadoop104(第一次需要输入密码)

    6.测试,成功登录

    7.配置hadoop102无密登录hadoop104

    此时再使用xsync不用再输入密码

    4.3 单点启动 4.4 配置集群 4.4.1 集群配置原则

    原则:
        (1)NameNode和SecondaryNode不要放在同一台机器上,因为都很耗费内存
        (2)
        
    
    4.4.2 配置文件说明
    hadoop配置文件有两类:
         默认配置文件:
         自定义配置文件:只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值
    

    (1)默认配置文件:

    要获取的默认文件文件存放在Hadoop的jar包中的位置
    [core-default.xml]hadoop-common-3.1.3.jar/core-default.xml
    [hdfs-default.xml]hadoop-hdfs-3.1.3.jar/hdfs-default.xml
    [yarn-default.xml]hadoop-yarn-common-3.1.3.jar/yarn-default.xml
    [mapred-default.xml]hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

    (2)自定义配置文件

    core-site.xml
    hdfs-site.xml
    yarn-site.xml
    mapred-site.xml
    四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
    
    4.4.3 配置文件

    1.core-site.xml

    
    
    
      fs.defaultFS
      hdfs://hadoop102:8020
    
    
    
    
      hadoop.tmp.dir
      /opt/module/hadoop-2.7.3/data
    
    
    
    
      hadoop.http.staticuser.user
      atguigu
    
    
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8KOqiOfc-1647959275653)(C:UsersLenovoAppDataRoamingTyporatypora-user-images1647306182723.png)]" />
    2.hdfs-site.xml

    
      
      
      dfs.namenode.http-address
      hadoop102:9870
    
      
    
      dfs.namenode.secondary.http-address
      hadoop104:9868
    
    
    
    

    3.yarn-site.xml

    
    
    
      yarn.nodemanager.aux-services
      mapreduce_shuffle
    
    
    
    
      yarn.resourcemanager.hostname
      hadoop103
    
    
    
    
      yarn.nodemanager.env-whitelist
      JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    
    
    
    

    4.mapred-site.xml

    
    
    
      mapreduce.framework.name
          yarn
    
    
    

    4.4.4 分发hadoop

    1.把/opt/module/hadoop-2.7.3/etc/hadoop文件分发给hadoop103,hadoop104

    成功:可以在hadoop103看到

    4.5 群起并测试集群 4.5.1 配置slaves

    1.配置slaves,默认是localhost

    2.添加工作的节点(不允许有空格)

    3.分发slaves

    4.5.2 启动集群 1.初始化集群
    注意:首次启动,需要在hadoop102格式化NameNode
    ---------------------------------------------------------
     (注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
     ---------------------------------------------------
    

    1.在hadoop102格式化NameNode

    2.出现成功

    3.ls -all 查看所有文件,包括隐藏文件 新出现data,logs

    解决办法(非必要):

    2.正式启动集群

    1.进入/opt/module/hadoop-2.7.3/sbin,里面有启动命令

    2.输入hadoop102输入命令启动namenode

    3.hadoop103输入命令启动resourcemanger

    start-yarn.sh
    

    4.jps查看各个主机进程

    4.5.3 Web端查看HDFS的NameNode

    (1) Web端查看HDFS的NameNode 浏览器中输入:

    ​ http://hadoop102:9870 查看HDFS上存储的数据信息

    (2)Web端查看YARN的ResourceManager 浏览器中输入:

    ​ http://hadoop103:8088 查看YARN上运行的Job信息

    4.6 配置历史服务器
    为了查看程序的历史运行情况,需要配置一下历史服务器。
    

    1.配置mapred-site.xml

    2.分发配置

    3.在hadoop102 启动历史服务器

    mr-jobhistory-daemon.sh start historyserver
    

    4.查看进程jps,是否启动成功

    5.查看JobHistory

    4.7 配置日志聚集

    1.配置yarn-site.xml

    
    yarn.log-aggregation-enable
    true
    
    
      
    yarn.log.server.url  
    http://hadoop102:19888/jobhistory/logs
    
    
    
    yarn.log-aggregation.retain-seconds
    604800
    
    

    2.分发配置

    3.关闭NodeManager 、ResourceManager和HistoryServer

    4.启动NodeManager 、ResourceManager和HistoryServer

    5.查看日志:当有过作业就会有日志文件(这里还没有作业)

    历史服务器地址
    http://hadoop102:19888/jobhistory
    


    4.8 集群启动停止方式总结
    各个模块分开启动/停止(配置ssh是前提)常用
    1.整体启动/停止HDFS
    start-dfs.sh/stop-dfs.sh
    
    2.整体启动/停止YARN
    start-yarn.sh/stop-yarn.sh
    
    3.整体启动/停止historyserver
    mr-jobhistory-daemon.sh start/stop historyserver
    
    
    
    各个服务组件逐一启动/停止
    1.分别启动/停止HDFS组件
    hdfs --daemon start/stop namenode/datanode/secondarynamenode
    2.启动/停止YARN
    yarn --daemon start/stop  resourcemanager/nodemanager
    
    4.9 hadoop集群常用脚本 4.9.1 hadoop启动、停止脚本
    1.进入atguigu/bin,创建myhadoop.sh脚本
    cd /home/atguigu/bin
    vim myhadoop.sh
    

    2.加入如下内容
    #!/bin/bash
    
    if [ $# -lt 1 ]
    then
        echo "No Args Input..."
        exit ;
    fi
    
    case $1 in
    "start")
            echo " =================== 启动 hadoop集群 ==================="
    
            echo " --------------- 启动 hdfs ---------------"
            ssh hadoop102 "/opt/module/hadoop-2.7.3/sbin/start-dfs.sh"
            echo " --------------- 启动 yarn ---------------"
            ssh hadoop103 "/opt/module/hadoop-2.7.3/sbin/start-yarn.sh"
            echo " --------------- 启动 historyserver ---------------"
            ssh hadoop102 "/opt/module/hadoop-2.7.3/bin/mapred --daemon start historyserver"
    ;;
    "stop")
            echo " =================== 关闭 hadoop集群 ==================="
    
            echo " --------------- 关闭 historyserver ---------------"
            ssh hadoop102 "/opt/module/hadoop-2.7.3/bin/mapred --daemon stop historyserver"
            echo " --------------- 关闭 yarn ---------------"
            ssh hadoop103 "/opt/module/hadoop-2.7.3/sbin/stop-yarn.sh"
            echo " --------------- 关闭 hdfs ---------------"
            ssh hadoop102 "/opt/module/hadoop-2.7.3/sbin/stop-dfs.sh"
    ;;
    *)
        echo "Input Args Error..."
    ;;
    esac
    

    3.赋予脚本权限
    chmod +x myhadoop.sh
    

    4.9.2 查看三台服务器进程脚本:jpsall
    1.进入·/home/atguigu/bin,创建jpsall文件
    cd /home/atguigu/bin
    vim jpsall
    

    2. 输入
    #!/bin/bash
    
    for host in hadoop102 hadoop103 hadoop104
    do
            echo =============== $host ===============
            ssh $host jps 
    done
    

    3.赋予脚本权限
    chmod +x jpsall
    

    4分发/home/atguigu/bin目录
    xsync /home/atguigu/bin/
    

    测试成功

    4.10 集群时间同步

    1.安装ntp插件

    yum install ntp
    


    2.进入/etc 看到出现文件夹ntp,ntp.conf文件


    3.开始ntpd服务

    syatemctl start ntpd
    


    4.编辑 修改ntp.conf文件

    vim /etc/ntp.conf
    

    5.编辑ntpd

    vim  /etc/sysconfig/ntpd
    


    6.开始时间服务

    systemctl start ntpd
    systemctl enable ntpd
    

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/774439.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号