zoukankan      html  css  js  c++  java
  • Hadoop 集群搭建

    1. Hadoop 集群简介

    • Hadoop集群包括两个集群:HDFS集群、YARN集群
    • 两个集群逻辑上分离、通常物理上在一起
    • 两个集群都是标准的主从架构集群
      在这里插入图片描述
      在这里插入图片描述
    • 逻辑上分离
      两个集群互相之间没有依赖、互不影响
    • 物理上在一起
      某些角色进程往往部署在同一台物理服务器上
    • MapReduce集群呢?
      MapReduce是计算框架、代码层面的组件没有集群之说
      在这里插入图片描述

    2. Hadoop 部暑模式

    在这里插入图片描述

    3. Hadoop 源码编译

    • 安装包、源码包下载地址
      https://hadoop.apache.org/releases.html
      在这里插入图片描述
    • 随便选择一个镜像地址下载,第一个是北京外国语大学的镜像地址,第二个是清华大学的
      在这里插入图片描述
    • 如果想下载其他比较早的版本,点击
      在这里插入图片描述
      https://archive.apache.org/dist/hadoop/common/,这里包含所有发布的版本
      在这里插入图片描述
    • 为什么要重新编译Hadoop源码?
      匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO 需要调用系统本地库( *.so|*.dll )
      修改源码、重构源码
    • 如何编译Hadoop
      源码包根目录下文件:BUILDING.txt
      在这里插入图片描述
    • 这里使用Hadoop3.1.4安装包,可以去官网下载

    4. Hadoop 集群安装

    step1:集群角色规划

    • 角色规划的准则
      根据软件工作特性和服务器硬件资源情况合理分配
      比如依赖内存工作的NameNode是不是部署在大内存机器上?
    • 角色规划注意事项
      资源上有抢夺冲突的,尽量不要部署在一起
      工作上需要互相配合的。尽量部署在一起
      在这里插入图片描述

    Step2:服务器基础环境准备

    • 主机名(3台机器)
    vim /etc/hostname
    

    在这里插入图片描述

    • Hosts映射(3台机器)|
    vim /etc/hosts
    

    在这里插入图片描述

    • 防火墙关闭(3台机器)
    systemctl stop firewalld.service   #关闭防火墙
    systemctl disable firewalld.service #禁止防火墙开启自启
    
    • ssh免密登录(node1执行->node1|node2|node3
    ssh-keygen #4个回车 生成公钥、私钥
    ssh-copy-id node1、ssh-copy-id node2、ssh-copy-id node3 #
    
    • 检验:
      在这里插入图片描述
    • 集群时间同步(3台机器)
    yum -y install ntpdate
    ntpdate ntp4.aliyun.com
    

    在这里插入图片描述

    • JDK 1.8安装(3台机器)
      在这里插入图片描述

    Step3:上传安装包、解压安装包

    • 创建统一工作目录(3台机器),自定义创建,自己可以划分
    mkdir -p /export/server/    #软件安装路径
    mkdir -p /export/data/      #数据存储路径
    mkdir -p /export/software/  #安装包存放路径
    

    在这里插入图片描述

    • 上传、解压安装包(node1)
    tar -zxvf hadoop-3.2.2 -C /export/server/
    

    -C :表示指定安装路径

    Step4:Hadoop安装包目录结构

    在这里插入图片描述

    Step5:编辑Hadoop配置文件(1)

    • 打开Hadoop根目录下的 etc/hadoop-env.sh 文件
    cd /export/server/hadoop-3.1.4/etc/hadoop/
    vim hadoop-env.sh
    
    export JAVA_HOME=/export/server/jdk1.8.0_65
    

    在这里插入图片描述

    • 在文件末尾加上如下命令,设置用户以执行对应角色shell命令
    #设置用户以执行对应角色shell命令
    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 
    

    Step5:编辑Hadoop配置文件(2)

    • 还是在Hadoop的根目录下的 etc 下配置 core-site.xml,在 <configuration> 下添加如下代码
    • 注意:下面的域名要改成自己主机对应的
    <!-- 默认文件系统的名称。通过URI中schema区分不同文件系统。-->
    <!-- file:///本地文件系统 hdfs:// hadoop分布式文件系统 gfs://。-->
    <!-- hdfs文件系统访问地址:http://nn_host:8020。-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1.xdr630.com:8020</value>
    </property>
    <!-- hadoop本地数据存储目录 format时自动生成 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/data/hadoop-3.1.4</value>
    </property>
    <!-- 在Web UI访问HDFS使用的用户名。-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    

    Step5:编辑Hadoop配置文件(3)

    • 配置 hdfs-site.xml,在在 <configuration> 下添加
    <!-- 设定SNN运行主机和端口。-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2.xdr630.com:9868</value>
    </property>
    

    Step5:编辑Hadoop配置文件(4)

    • 配置 mapred-site.xml ,添加
    <!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    <!-- MR App Master环境变量。-->
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <!-- MR MapTask环境变量。-->
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <!-- MR ReduceTask环境变量。-->
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    

    Step5:编辑Hadoop配置文件(5)

    • 配置 yarn-site.xml,添加
    <!-- yarn集群主角色RM运行机器。-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1.xdr630.com</value>
    </property>
    <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 每个容器请求的最小内存资源(以MB为单位)。-->
    <property>
      <name>yarn.scheduler.minimum-allocation-mb</name>
      <value>512</value>
    </property>
    <!-- 每个容器请求的最大内存资源(以MB为单位)。-->
    <property>
      <name>yarn.scheduler.maximum-allocation-mb</name>
      <value>2048</value>
    </property>
    <!-- 容器虚拟内存与物理内存之间的比率。-->
    <property>
      <name>yarn.nodemanager.vmem-pmem-ratio</name>
      <value>4</value>
    </property>
    

    Step5:编辑Hadoop配置文件(6)

    • 配置 workers ,添加
    node1.xdr630.com
    node2.xdr630.com
    node3.xdr630.com
    

    Step6:分发同步安装包

    • 在node1机器上将Hadoop安装包scp同步到其他机器
    cd /export/server/
    scp -r hadoop-3.1.4 root@node2:/usr/local/
    scp -r hadoop-3.1.4 root@node3:/usr/local/
    

    Step7:配置Hadoop环境变量

    • 在node1上配置Hadoop环境变量
    vim /etc/profile
    export HADOOP_HOME=/export/server/hadoop-3.1.4
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    • 将修改后的环境变量同步其他机器
    scp /etc/profile root@node2:/etc/
    scp /etc/profile root@node3:/etc/
    
    • 重新加载环境变量 验证是否生效(3台机器)
    source /etc/profile
    hadoop #验证环境变量是否生效
    

    在这里插入图片描述

    5. 总结

    1. 服务器基础环境
    2. Hadoop源码编译
    3. Hadoop配置文件修改
    4. shell文件、4个xml文件、workers文件
    5. 配置文件集群同步

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254733.html

  • 相关阅读:
    JavaScript-----7.循环
    3. CSS新特性之动画
    JavaScript-----6.流程控制:分支
    JavaScript-----5.运算符
    JavaScript-----4.数据类型
    2. CSS新特性之2D转换transform
    JavaScript-----3.变量
    JavaScript-----2初识
    JavaScript---1.计算机的编程基础
    品优购学习心得
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254733.html
Copyright © 2011-2022 走看看