• hadoop3.3.2版本分布式集群搭建1主1从(含虚拟机安装教程)


    1.搭建虚拟机

    下载VMware软件使用软件搭建 VMware官网(傻瓜式安装)

    1. 新建虚拟机、并且配置虚拟机

    ![新建虚拟机](https://img-blog.csdnimg.cn/c08e62cd435a4aeca679c4b9eeb55244.png

    在这里插入图片描述
    选择默认兼容性
    选择你所下载的iso镜像
    这里要选择你所下载的iso镜像 我的版本是center os 7 这是我的镜像地址在百度网盘()

    创建用户名
    全名: 虚拟机登录界面显示的名称(随意)
    用户名: 设置用户名(例:angzush_) 此用户名需跟后续进入linux设置的一致,不然无法切换root用户
    密码: 设置用户密码(例:123456)此密码需跟后续进入linux设置的一致

    在这里插入图片描述
    虚拟机名称:随意命名
    位置:虚拟机搭建的位置建议别在c盘

    处理器和处理器内核数
    处理器和处理器内核数、根据自己电脑配置来

    给虚拟机分配内存
    给虚拟机分配内存根据自己电脑配置来(一般不要低于1g)
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    自己根据分配磁盘大小我的是100g

    在这里插入图片描述

    在这里插入图片描述
    点击自定义硬件配置指向iso映像文件

    在这里插入图片描述
    然后点击完成自启动(在这一步一些电脑会出现这个bug)
    在这里插入图片描述
    这个问题是因为本地电脑未支持虚拟机需要开启支持(重启电脑然后按F2进入BIOS界面一些电脑在Configuration选项里有 intel virtual technology 选项将Disabled 改为 Enabled)
    例:
    在这里插入图片描述
    在这里插入图片描述
    然后按F10保存启动就行了

    重新打开VMware开启虚拟机
    在这里插入图片描述

    在这里插入图片描述
    进入user 创建用户
    在这里插入图片描述
    用户一定要和之前在虚拟机创建的一致、我这勾选了Make this user administrator 意思是让该用户拥有admin的权限、然后双击DONE
    在这里插入图片描述
    在这里插入图片描述
    这就算安装完成了、输入密码直接进入(例:123456)
    在这里插入图片描述
    然后右键 openTerminal 打开控制台、输入ifconfig查看IP地址
    在这里插入图片描述

    我的ip地址是192.168.11.130、然后用本地电脑ping 这个ip看是否能ping通、接着用虚拟机控制台ping 百度看是否有网

    // 在本地电脑DOS命令行ping虚拟机ip 
    ping 192.168.11.130
    // 在虚拟机控制台ping 百度
    ping www.baidu.com 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    在这里插入图片描述
    出现以上两种代表成功、接下来需要给虚拟机快照
    在这里插入图片描述
    使用拍摄快照将虚拟机环境保存下来

    2. Hadoop搭建

    1. 安装java

    在java官网下载 Java官网
    在这里插入图片描述
    然后用xshell 拉入到Linux root目录下
    (xshell、xftp下载地址)链接:https://pan.baidu.com/s/1WSun7g70e9LCdpsUkaTJuA 提取码:0326

    然后在xshell中解压jdk安装包、tar -zxvf 安装包名称 ,接着使用 mv命令将jdk文件夹移动到 /usr/local 下、并将文件夹名称改为java、所以java的路径为 /usr/local/java
    在这里插入图片描述
    然后修改全局环境 vim/etc/profile 在最下面添加export

    #this is for java environment
    export JAVA_HOME=/usr/local/java
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JRE_HOME=$JAVA_HOME/jre
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    #重新加载文件
    source /etc/profile
    
    • 1
    • 2

    使用 java、javac、java -version 查看环境搭建是否正确在这里插入图片描述

    2. 搭建hadoop运行环境

    1. 使用 hostname 查看主机名称
      在这里插入图片描述
      如果不是master建议将主服务器名修改为master
      在这里插入图片描述

      从服务器改为slave1

      #使用该命令
      sudo hostnamectl set-hostname master
      sudo hostnamectl set-hostname slave1
      
      • 1
      • 2
      • 3
    2. 修改host文件

      vim /etc/hosts
      
      • 1

      在这里插入图片描述
      添加主服务器IP、和从服务器IP及名称
      例:192.168.11.128 master
              192.168.11.129 slave1

    3. ssh免密登录配置
      首先在master上运行、接着一直回车生成密钥

      ssh-keygen -t rsa
      
      • 1

      然后将密钥加入到 authorized_keys 文件中

      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      
      • 1

      然后将authorized_keys文件发送到slave1机器上

      scp authorized_keys root@192.168.11.129:/root/.ssh/
      
      • 1

      接着在slave1服务器中重复上面的命令、要将生成的authorized_keys文件发送到master服务器/root/.ssh里
      然后使用 ssh主机名来切换(第一次是需要输入yes但不需要输入密码)

      #切换到slave1
      ssh slave1
      #切换到master
      ssh master
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述

    4. 下载Hadoop版本(我下载的是3.3.2版本) Hadoop下载地址
      在这里插入图片描述

    5. 配置Hadoop环境变量
      解压文件、放到/usr/local/改名为hadoop(不一定要是这个位置、最好放在已挂载的data数据文件夹下,这里只是演示用)

      然后配置环境变量

      #我的目录是 /usr/local/hadoop 不一定要是这个位置、最好放在已挂载的data数据文件夹下,这里只是演示用
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
      
      • 1
      • 2
      • 3
      • 4
    6. 配置Hadoop文件:

      文件作用
      workers记录所有的数据节点的主机名或 IP 地址
      core-site.xmlHadoop 核心配置
      hdfs-site.xmlHDFS 配置项
      mapred-site.xmlMapReduce 配置项
      yarn-site.xmlYRAN 配置项
      1. 修改core-site.xml

        vim ${HADOOP_HOME}/etc/hadoop/core-site.xml
        
        • 1
        <configuration>
            <property>
                <name>hadoop.tmp.dirname>
                <value>file:/data/hadoop/hdfs/tmpvalue>
                <description>临时存储目录,修改为自己想放的地方、前提是文件夹已被创建description>
            property>
            <property>
                <name>fs.defaultFSname>
                <value>hdfs://master:9000value>
                <description>hdfs默认地址与端口description>
            property>
            <property>
                <name>io.file.buffer.sizename>
                <value>131702value>
            property>
        configuration>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
      2. 修改hdfs-site.xml

        vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
        
        • 1
        <configuration>
        <property>
            <name>dfs.namenode.name.dirname>
                <value>file:/data/hadoop/hdfs/namevalue>
                <description>namenode上存储hdfs名字空间元数据 description>
             property>
             <property>
                 <name>dfs.datanode.data.dirname>
                 <value>file:/data/hadoop/hdfs/datavalue>
                 <description>datanode上数据块的物理存储位置description>
             property>
             <property>
                <name>dfs.replicationname>
                <value>2value>
            property>
            <property>
                <name>dfs.namenode.secondary.http-addressname>
                <value>slave1:50090value>
                <description>这个主机名设置哪个节点,SecondaryNameNode就启动在哪个服务器上description>
            property>
            <property>
                <name>dfs.webhdfs.enabledname>
                <value>truevalue>
            property>
                <property>
                <name>dfs.client.use.datanode.hostnamename>
                <value>truevalue>
                <description>only cofig in clientsdescription>
            property>
        configuration>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
      3. 修改Mapred-site.xml

        vim ${HADOOP_HOME}/etc/hadoop/mapred-site.xml
        
        • 1
        <configuration>
            <property>
                <name>mapreduce.framework.namename>
                <value>yarnvalue>
            property>
            <property>
                <name>yarn.app.mapreduce.am.envname>
                <value>HADOOP_MAPRED_HOME=/data/hadoop/mapreducevalue>
            property>
            <property>
                <name>mapreduce.map.envname>
                <value>HADOOP_MAPRED_HOME=/data/hadoop/mapreduce/mapvalue>
            property>
            <property>
                <name>mapreduce.reduce.envname>
                <value>HADOOP_MAPRED_HOME=/data/hadoop/mapreduce/reducevalue>
            property>
        configuration>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
      4. 修改Yarn-site.xml

        vim ${HADOOP_HOME}/etc/hadoop/yarn-site.xml
        
        • 1
        <configuration>
        
            <property>
                <name>yarn.resourcemanager.hostnamename>
                <value>mastervalue>
            <description>The hostname of the RM.修改为主节点主机名description>
            property>
            <property>
                <name>yarn.nodemanager.aux-servicesname>
                <value>mapreduce_shufflevalue>
            property>
            
            <property>
                <name>yarn.nodemanager.vmem-check-enabledname>
                <value>falsevalue>
            property>
        configuration>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
      5. 然后在 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中各添加javahome

        export JAVA_HOME=/usr/local/java
        
        • 1

        在这里插入图片描述

      6. 在workers文件中填写主机名,主从都写

        vim ${HADOOP_HOME}/etc/hadoop/workers
        
        • 1

        在这里插入图片描述

      7. 进入Hadoop sbin目录下 cd ${HADOOP_HOME}/sbin 添加start-dfs.sh、stop-dfs.sh头部配置

        HDFS_DATANODE_USER=root
        HDFS_DATANODE_SECURE_USER=hdfs 
        HDFS_NAMENODE_USER=root 
        HDFS_SECONDARYNAMENODE_USER=root
        
        • 1
        • 2
        • 3
        • 4
      8. 给start-yarn.sh、stop-yarn.sh添加头部配置

        YARN_RESOURCEMANAGER_USER=root
        HADOOP_SECURE_DN_USER=yarn
        YARN_NODEMANAGER_USER=root
        
        • 1
        • 2
        • 3

      然后执行 hadoop version 查看版本信息
      在这里插入图片描述

    这是给master配置好了 然后咱们再配置slave1

    1. 将Hadoop整体文件夹拷贝到slave1

      scp /usr/local/hadoop root@192.168.11.129:/usr/local/
      
      • 1
    2. 修改 /etc/profile 环境变量、添加之前再master配置的内容、或者可以直接将master 的 proflie文件放到slave1虚拟机上然后重新加载环境

    slave1配置完成后切换到master格式化hdfs

    hdfs namenode -format
    
    • 1

    启动hdfs和yarn

    #启动hdfs
    start-dfs.sh
    #关闭hdfs
    stop-dfs.sh
    
    • 1
    • 2
    • 3
    • 4

    master服务器jps显示
    slave1服务器jps显示

    #启动yarn
    start-yarn.sh
    #关闭yarn
    stop-yarn.sh
    
    • 1
    • 2
    • 3
    • 4

    master服务器jps显示
    slave1服务器jps显示
    此刻代表Hadoop 启动成功、接下来咱们访问Hadoop的webUi界面

    hdfsWebUi:http://ip:9870
    在这里插入图片描述

    yarnWebUi:http://ip:8088
    在这里插入图片描述

    3. BUG集

    1. 在hdfsWebUI查看数据目录会报这个错

    Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error
    在这里插入图片描述

    这是因为java 11以后 移除了javax.activation**、咱们需要将jar包放入Hadoop/share/hadoop/common 下
    jar包位置:https://jar-download.com/?search_box=javax.activation
    在这里插入图片描述
    下载解压后放到 cd ${HADOOP_HOME}/share/hadoop/common/ master和slave1 都要、然后重启虚拟机就行

    2.可能在启动虚拟机时启动不成功出现错误Failed to load SELinux policy freezing

    解决方案:在启动时按e grub编辑页面
    在这里插入图片描述
    通过键盘的向上或向下箭头,找到linux16那行 在LANG=zh_CN.UTF-8 空格 加上 selinux=0或者 enforcing=0(我是第一个就解决问题了)
    在这里插入图片描述
    不要退出页面,在此处使用Ctrl+x启动,之后等会就会看到熟悉的页面了。要说一点的是,可能会在下图所示页面卡顿一会,等会就行了

    进入系统之后记得把配置修改正确。
    Step1: 使用su命令进入管理员权限;
    Step2: 修改配置文件/etc/selinux/config/中的“SELINUX”参数
    在这里插入图片描述

    SELINUX=disable
    SELINUXTYPE=targeted
    
    • 1
    • 2
  • 相关阅读:
    企业工商四要素核验API的实现原理和功能介绍
    SAS|lag和dif函数
    Leetcode 1089. 复写零
    【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「SpringAOP 整合篇」
    算法导论23章最小生成树习题—23.2练习
    vue如何禁止通过页面输入路径跳转页面
    Jenkins服务开机自启动
    【在Unity中实现像《 Batman:Arkham Series(蝙蝠侠:阿卡姆系列)》中行云流水的打斗程序_内附源工程】【转载搬运】
    @Async注解的坑
    【C#】【源码】直接可用的远程桌面应用
  • 原文地址:https://blog.csdn.net/Angzush/article/details/126175253