• hadoop集群安装并配置


    1.安装JDK 环境

    JDK1.8下载链接
    使用wget 下载到liunx 主机

    #创建文件夹
    mkdir /usr/app
    # 进入文件夹
    cd /usr/app
    #下载java 
    wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
    #解压
    tar -zvxf jdk-8u181-linux-x64.tar.gz 
    #修改名称
    mv  jdk-8u181-linux-x64 jdk.18
    //配置环境变量
    vim /etc/profile
    export JAVA_HOME=/usr/app/jdk1.8   # 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
    //加载
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    每台节点都安装jdk

    2.系统配置

    2.1修改本地hosts文件

    配置本地hosts文件,后面我们直接使用hostname 去连接主机 不再输入ip地址

    每个节点都执行

    #编辑host文件
     vi /etc/hosts
    #文件末尾添加自己的主机和hostname
    192.168.56.103 hadoop01
    192.168.56.104 hadoop02
    192.168.56.105 hadoop03
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    保存后ping hadoop02 网络正常
    在这里插入图片描述

    2.2创建hadoop 用户

    每台机器都指向

    #新增用户
    useradd hadoop 
    #设置hadoop 用户密码为 123456
    passwd hadoop 123456
    #切换到hadoop 用户
    su - hadoop 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.2 设置ssh免密(使用hadoop 用户生成)

    由于hadoop 一般为集群,我们安装时 直接使用ssh 命令 复制安装 hadoop 效率会更高
    我们一般使用ssh 命令时会遇到输入密码验证的问题 我们可以提前配置免密操作

    全部节点 执行该命令生成密钥,执行后一直按Enter 即可

    #生成密钥
    ssh-keygen -t rsa -b 4096
    
    • 1
    • 2

    将密钥拷贝到其他两个子节点,命令如下:

    ssh-copy-id -i hadoop01
    ssh-copy-id -i hadoop02
    ssh-copy-id -i hadoop03
    
    • 1
    • 2
    • 3

    结果打印在这里插入图片描述

    3.安装 hadoop 3.2.4

    国内下载地址 华为镜像
    官网下载地址 官网链接

    3.1 安装hadoop

    在hadoop01 服务器下载hadoop安装包,如果不能连接外网请下载后上传到服务器

    cd /usr/app
    #下载
    wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
    #解压
    tar -zvxf hadoop-3.2.4.tar.gz
    mv hadoop-3.2.4 hadoop 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.1.1 配置Hadoop 环境变量

    在/etc/profile文件底部追加如下内容

    export HADOOP_HOME=/usr/app/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    • 1
    • 2

    从hadoop01 将hadoop安装文件夹远程复制到hadoop02、hadoop03

    3.2配置 HDFS

    配置HDFS集群,我们主要涉及到如下文件的修改

    修改文件作用
    workers配置从节点(DataNode)有哪些
    hadoop-env.sh配置Hadoop的相关环境变量
    core-site.xmlHadoop核心配置文件
    hdfs-site.xmlHDFS核心配置文件

    这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。
    ps:$HADOOP_HOME是后续我们要设置的环境变量,其指代Hadoop安装文件夹即/app/hadoop

    3.2.1 配置 workers 文件

    # 进入配置文件目录
    cd etc/hadoop
    # 编辑workers文件
    vim workers
    # 填入如下内容
    hadoop01
    hadoop02
    hadoop03
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.2.2 配置hadoop-env.sh

    # 填入如下内容
    #JAVA_HOME,指明JDK环境的位置在哪
    export JAVA_HOME=/usr/jdk
    #HADOOP_HOME,指明Hadoop安装位置
    export HADOOP_HOME=/usr/hadoop
    #HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    #HADOOP_LOG_DIR,指明Hadoop运行日志目录位置
    export HADOOP_LOG_DIR=$HADOOP_HOME/logs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.2.3 配置core-site.xml

    <configuration>
    
      <property>
        <name>fs.defaultFSname>
        <value>hdfs://hadoop01:8020value>
      property>
    
      <property>
        <name>io.file.buffer.sizename>
        <value>131072value>
      property>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.2.3 配置 hdfs-site.xml

    <configuration>
    
      <property>
        <name>dfs.datanode.data.dir.permname>
        <value>700value>
      property>
    
      <property>
        <name>dfs.namenode.name.dirname>
        <value>/data/nnvalue>
      property>
      
      <property>
        <name>dfs.namenode.hostsname>
        <value>hadoop01,hadoop02,hadoop03value>
      property>
      
    <property>
        <name>dfs.blocksizename>
        <value>268435456value>
      property>
      
      <property>
        <name>dfs.namenode.handler.countname>
        <value>100value>
      property>
    
      <property>
        <name>dfs.datanode.data.dirname>
        <value>/data/dnvalue>
      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
    • 31
    • 32
    • 33

    目前,已经基本完成Hadoop的配置操作,可以从hadoop01 将hadoop安装文件夹远程复制到hadoop02、hadoop03

    3.2.4 启动hdfs

    # 确保以hadoop用户执行
    su - hadoop
    # 格式化namenode
    hadoop namenode -format
    # 一键启动hdfs集群
    start-dfs.sh
    # 一键关闭hdfs集群
    stop-dfs.sh
    # 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
    /export/server/hadoop/sbin/start-dfs.sh
    /export/server/hadoop/sbin/stop-dfs.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.3 配置MapReduce

    3.3.1 配置 mapred-env.sh

    # 设置JDK路径
    export JAVA_HOME=/usr/app/jdk1.8
    # 设置JobHistoryServer进程内存为1G
    export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
    #设置日志级别为INFO
    export HADOOP_MAPRED_ROOT_LOGGER=INFORFA
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.3.2配置 mapred-site.xml

    <configuration>
      <property>
        <name>mapreduce.framework.namename>
        <value>yarnvalue>
        <description>MapReduce 的运行框架设置为YARNdescription>
      property>
    
      <property>
        <name>mapreduce.jobhistory.addressname>
        <value>hadoop01:10020value>
        <description> 历史服务器通讯地址设置为hadoop01:10020description>
      property>
      <property>
        <name>mapreduce.jobhistory.webapp.addressname>
        <value>hadoop01:19888value>
        <description>历史服务器web端口为hadoop01:19888description>
      property>
      <property>
        <name>mapreduce.jobhistory.intermediate-done-dirname>
        <value>/data/mr-history/tmpvalue>
        <description>历史信息在hdfs的记录临时路径description>
      property>
      <property>
        <name>mapreduce.jobhistory.done-dirname>
        <value>/data/mr-history/donevalue>
        <description>历史信息在hdfs的记录路径description>
      property>`在这里插入代码片`
    <property>
      <name>yarn.app.mapreduce.am.envname>
      <value>HADOOP_MAPRED_HOME=$HADOOP_HOMEvalue>
      <description>设置环境变量地址description>
    property>
    <property>
      <name>mapreduce.map.envname>
      <value>HADOOP_MAPRED_HOME=$HADOOP_HOMEvalue>
      <description>设置环境变量地址description>
    property>
    <property>
      <name>mapreduce.reduce.envname>
      <value>HADOOP_MAPRED_HOME=$HADOOP_HOMEvalue>
      <description>设置环境变量地址description>
    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
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    3.4配置yarn

    3.4.1配置 yarn-env.sh

    #设 置 JDK路径的环境变量
    export JAVA_HOME=/usr/jdk1.8
    #设置 HADOOP HOME的环境变量
    export HADOOP_HOME=/export/server/hadoop
    #设置配置文件路径的环境变量
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    #设置日志文件路径的环境变量
    export HADOOP_LOG_DIR=$HADOOP_HOME/logs
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.4.2 配置 yarn-site.xml

    <configuration>
    <property>
        <name>yarn.log.server.urlname>
        <value>http://hadoop01:19888/jobhistory/logsvalue>
        <description>历史服务器URL description>
    property>
    
      <property>
        <name>yarn.web-proxy.addressname>
        <value>hadoop01:8089value>
        <description> 代理服务器主机和端口description>
      property>
    
      <property>
        <name>yarn.log-aggregation-enablename>
        <value>truevalue>
        <description> 开启聚合日志description>
      property>
    
      <property>
        <name>yarn.nodemanager.remote-app-log-dirname>
        <value>/tmp/logsvalue>
        <descriptionn>程序日志HDFs的存储路径description>
      property>
      
      <property>
        <name>yarn.resourcemanager.hostnamename>
        <value>node1value>
        <description>>ResourceManager设置在hadoop01节点description>
      property>
    
      <property>
        <name>yarn.resourcemanager.scheduler.classname>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulervalue>
        <description>选择公平调度description>
      property>
    
      <property>
        <name>yarn.nodemanager.local-dirsname>
        <value>/data/nm-localvalue>
        <description>NodeManger中间数据本地存储路径description>
      property>
    
      <property>
        <name>yarn.nodemanager.log-dirsname>
        <value>/data/nm-logvalue>
        <description>NodeManagers数据日志本地存储路径description>
      property>
    
      <property>
        <name>yarn.nodemanager.log.retain-secondsname>
        <value>10800value>
        <description>在NodeManager上保留日志文件的时间description>
      property>
      
      <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
        <description>为MapReduce 程序开启Shuffle服务description>
      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
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    在这里插入图片描述

    3.4.3启动yarn 集群

    1. 一键启动YARN集群
    $HADOOP_HOME/sbin/start-yarn.sh
    
    • 1

    会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager
    会基于workers文件配置的主机启动NodeManager

    1. 一键停止YARN集群
     $HADOOP_HOME/sbin/stop-yarn.sh
    
    • 1
    1. 在当前机器,单独启动或停止进程
    $HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver
    
    • 1

    start和stop决定启动和停止 可控制resourcemanager、nodemanager、proxyserver三种进程

    1. 历史服务器启动和停止
    $HADOOP_HOME/bin/mapred --daemon start|stop historyserver
    
    • 1

    3.5hadoop集群启动

    一键启动hadoop 集群:

     $HADOOP_HOME/sbin/start-all.sh
    
    • 1

    一键停止hadoop 集群

     $HADOOP_HOME/sbin/stop-all.sh
    
    • 1
  • 相关阅读:
    RocketMQ入门指南:从零开始学习分布式消息队列技术
    猿创征文|我的C/C++技术成长之路
    网络分析笔记07:pcapng增强分组块的捕获长度偏差
    2.6python 函数_python量化实用版教程(初级)
    Linux基础指令
    基于GPT搭建私有知识库聊天机器人(一)实现原理
    实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式
    【JavaEE重点知识归纳】第6节:数组
    架构细节大揭秘,Stable Diffusion 3 论文技术解析!
    Centos系统安装Yapi(传统方式安装)
  • 原文地址:https://blog.csdn.net/qq_46645840/article/details/130509297