Hadoop入门三 : Hadoop集群搭建

一. Hadoop集群简介
Hadoop入门三 : Hadoop集群搭建
文章图片

HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上在一起。
HDFS集群负责海量数据的存储,集群中的角色主要有:
NameNode、DataNode、SecondaryNameNode
YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:
ResourceManager、NodeManager
mapreduce 是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理。
二 . 集群部署方式
Hadoop部署方式分三种:

  1. 独立模式(standalone mode)
    独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。
  2. 伪分布式模式(Pseudo-Distributed mode)
    伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分别启动单独的java进程,主要用于调试。
  3. 群集模式(Cluster mode)
    集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上
    Hadoop入门三 : Hadoop集群搭建
    文章图片

三 . Hadoop集群安装
1. 集群规划 以三台主机为例,以下是集群规划:
Hadoop入门三 : Hadoop集群搭建
文章图片

  • 修改各服务器的主机名(三台)
    vim /etc/hostname

    将主机名修改为自己规划的主机名:
    Hadoop入门三 : Hadoop集群搭建
    文章图片

  • Host 映射(3台)
vim /etc/hosts
Hadoop入门三 : Hadoop集群搭建
文章图片

  • 关闭防火墙
systemctl stop firewalld.service#关闭防火墙 systemctl disable firewalld.service #禁止防火墙开启自启

  • ssh 免密登陆
  1. 生成公钥和私钥
ssh-keygen -t rsa (直接Enter)

默认在 ~/.ssh目录生成两个文件:
id_rsa :私钥
id_rsa.pub :公钥
  1. 导入公钥到认证文件
    导入本机
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    导入要免密码登录的服务器
scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub

将公钥导入到认证文件(这一步的操作在服务器上进行)
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys

在服务器上更改权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys

  • 同步三台机器的时间
yum -y install ntpdate ntpdate ntp4.aliyun.com

2. 解压Hadoop安装包 上传解压hadoop 3.1.4安装文件
解压 tar -xvzf hadoop-3.1.4.tar.gz -C ../server# 在每个节点中创建用于存放数据的data目录 # NameNode数据 mkdir -p /export/server/hadoop-3.1.4/data/namenode # DataNode数据 mkdir -p /export/server/hadoop-3.1.4/data/datanode

3 . 准备安装环境
上传解压hadoop 3.1.4安装文件 cd /export/software rz解压 tar -xvzf hadoop-3.1.4.tar.gz -C ../server# 在每个节点中创建用于存放数据的data目录 # NameNode数据 mkdir -p /export/server/hadoop-3.1.4/data/namenode # DataNode数据 mkdir -p /export/server/hadoop-3.1.4/data/datanode

4. 编辑配置文件 1. 配置NameNode(core-site.xml)
cd /export/server/hadoop-3.1.4/etc/hadoop vim core-site.xml -------------------------------- 在第19行下添加以下内容:fs.defaultFS hdfs://node1.uuicom.cn:9820 配置NameNode的URL

2. 配置HDFS路径(hdfs-site.xml)
vim hdfs-site.xml --------------------------------dfs.namenode.name.dir /export/server/hadoop-3.1.4/data/namenode NameNode存储名称空间和事务日志的本地文件系统上的路径 dfs.datanode.data.dir /export/server/hadoop-3.1.4/data/datanode DataNode存储名称空间和事务日志的本地文件系统上的路径

3. 配置YARN(yarn-site.xml)
vim yarn-site.xml -------------------------------- 在第18行下添加以下内容: yarn.nodemanager.aux-services mapreduce_shuffle yarn.scheduler.minimum-allocation-mb 512 为每个容器请求分配的最小内存限制资源管理器(512M) yarn.scheduler.maximum-allocation-mb 4096 为每个容器请求分配的最大内存限制资源管理器(4G) yarn.nodemanager.vmem-pmem-ratio 4 虚拟内存比例,默认为2.1,此处设置为4倍

4. 配置MapReduce(mapred-site.xml)
vim mapred-site.xml ---------------------------------- 在第20行下添加以下内容: vim mapred-site.xml ---------------------------------- 在第20行下添加以下内容:mapreduce.framework.name yarn 执行MapReduce的方式:yarn/local yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} 【Hadoop入门三 : Hadoop集群搭建】mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME}

5. workers文件
vim /export/server/hadoop-3.1.4/etc/hadoop/workers ---------------------------------- # 删除第一行localhost,然后添加以下三行 node1.uuicon.cn node2.uuicon.cn node3.uuicon.cn

6.修改hadoop.env环境变量
hadoop.env文件 vim /export/server/hadoop-3.1.4/etc/hadoop/hadoop-env.sh 修改第54行为: export JAVA_HOME=/export/server/jdk1.8.0_241

7. 配置环境变量
vim /etc/profile export HADOOP_HOME=/export/server/hadoop-3.1.4 export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:source /etc/profile

    推荐阅读