为三台CentOS安装Hadoop集群


操作前说明

  • 环境

机器名 IP 用户
node001 192.168.77.110 hadoop
node002 192.168.77.120 hadoop
node003 192.168.77.130 hadoop
  • 要求

    • 三台机器之间可通信、可免密登录
    • 三台机器时间同步
    • 三台机器Java环境已配置好
  • 部署目标

服务器IP node001 node002 node003
HDFS NameNode
HDFS SecondaryNameNode
HDFS DataNode DataNode DataNode
YARS ResourceManager
YARS NodeManager NodeManager NodeManager
历史日志服务器 JobHistoryServer

获取压缩包

  • 官网个人并不推荐(太慢了,各位还是在有资源的前辈们那里拿一下吧)

第一台机器

1. 传输到第一台机器

  • 方法一: 使用终端管理软件传输
  • 方法二: 使用ssh+scp远程传输
    • scp 被传输文件路径 机器用户@机器ip:传输到机器的路径

2. 解压到指定目录

tar -xvf hadoop-3.2.2.tar -C /sjj/install/

  • 因为我是.tar文件 所以是-xvf
  • 如果是.tar.gz文件 需要是-xzvf

3. 查看解压是否到位

cd /sjj/install
ls
查看解压

配置??????????(集群失败的很多原因的在这里

1. hadoop目录下操作

  • 进入目录

    cd /sjj/install/hadoop-3.2.2
    ls
    hadoop目录

  • 可以删除share中的doc文件夹里面的东西并不重要

    cd share/
    ls
    rm -rf doc/

  • 执行checknative文件

    cd /sjj/install/hadoop-3.2.2
    bin/hadoop checknative
    checknative
    可以看见openssl为false,我们在线下载一个
    注意三台机器都要安装
    sudo yum -y install openssl-devel

2. 修改配置文件

第一台机器下执行

  • 进入配置文件的文件夹
    cd /sjj/install/hadoop-3.2.2/etc/hadoop/
  • 修改Hadoop-env.sh

    vim Hadoop-env.sh
    /JAVA_HOME进行搜索
    找到以下配置添加,要是你自己的jdk版本
    export JAVA_HOME=/sjj/install/jdk1.8.0_321
  • 修改core-site.xml

    vim core-site.xml
    添加下面配置

        
                fs.defaultFS
                hdfs://node001:8020
        
        
        
                hadoop.tmp.dir
                /sjj/install/hadoop-3.2.2/hadoopDatas/tempDatas
        
        
        
                io.file.buffer.size
                2048
        
        
        
                fs.trash.interval
                10080
        

  • 修改hdfs-site.xml

    vim hdfs-site.xml
    添加以下配置

        
        
                dfs.namenode.secondary.http-address
                node001:9868
        
        
                def.namenode.http-address
                node001:9870
        
        
        
                dfs.namenode.name.dir
                file:///sjj/install/hadoop-3.2.2/hadoopDatas/namenodeDatas
        
        
        
                dfs.namenode.data.dir
                file:///sjj/install/hadoop-3.2.2/hadoopDatas/datanodeDatas
        
        
        
                dfs.namenode.edits.dir
                file:///sjj/insatll/hadoop-3.2.2/hadoopDatas/dfs/nn/edits
        
        
        
                dfs.namenode.checkpoint.dir
                file:///sjj/install/hadoop-3.2.2/hadoopDatas/dfs/snn/name
        
        
        
                dfs.namenode.checkpoint.edits.dir
                file:///sjj/install/hadoop-3.2.2/hadoopDatas/dfs/nn/snn/edits
        
        
                dfs.replication
                3
        
        
                dfs.permissions.enabled
                false
        
        
                dfs.blocksize
                134217728
        

  • 修改mapred-site.xml

    vim mapred-site.xml
    t添加以下配置

        
                mapreduce.framework.name
                yarn
        
        
                mapreduce.job.ubertask.enable
                true
        
        
                mapreduce.jobhistory.address
                node001:10020
        
        
                mapreduce.jobhistory.webapp.address
                node001:19888
        
        
                yarn.app.mapreduce.am.env
                HADOOP_MAPRED_HOME=${HADOOP_HOME}
        
        
                mapreduce.map.env
                HADOOP_MAPRED_HOME=${HADOOP_HOME}
        
        
                mapreduce.reduce.env
                HADOOP_MAPRED_HOME=${HADOOP_HOME}
        

  • 修改yarn-site.xml

    vim yarn-site.xml
    添加以下配置



    
            yarn.resourcemanager.hostname
            node001
    
    
            yarn.nodemanager.aux-services
            mapreduce_shuffle
    

  • 修改workers

    vim workers
    替换localhost为以下配置
node001
node002
node003

创建文件存放目录

node001上操作

mkdir -p /sjj/install/hadoop-3.2.2/hadoopDatas/tempDatas
mkdir -p /sjj/install/hadoop-3.2.2/hadoopDatas/namenodeDatas
mkdir -p /sjj/install/hadoop-3.2.2/hadoopDatas/datanodeDatas
mkdir -p /sjj/install/hadoop-3.2.2/hadoopDatas/dfs/nn/edits
mkdir -p /sjj/install/hadoop-3.2.2/hadoopDatas/dfs/snn/name
mkdir -p /sjj/install/hadoop-3.2.2/hadoopDatas/dfs/nn/snn/edits

安装包分发

  • 进入hadoop-3.2.2所在目录

    cd /sjj/install

1. scp全量分发

scp -r hadoop-3.2.2/ node002:$PWD
scp -r hadoop-3.2.2/ node003:$PWD

2. 使用rsync等工具增量分发(这里不介绍

修改hadoop的环境变量

三台机器都要操作
sudo vim /etc/profile
末尾添加配置
export HADOOP_HOME=/sjj/install/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出,让配置生效
source /etc/profile

格式化集群

仅首次执行需要,node001执行一遍就行
hdfs namenode -format

hadoop namenode -format
日志中显示succssfully表示成功
成功

集群启动

1. 启动HDFS、YARS、Historyserver

  • 前提:配置了workers和ssh免密登录

  • 在主节点node001执行命令

    start-dfs.sh
    start-yarn.sh
    mapred --daemon start historyserver
  • 停止集群

    stop-dfs.sh
    stop-yarn.sh
    mapred --daemon stop historyserver

2. 单个进程逐个启动

hdfs --daemon start xxx
yarn --daemon start xxx
如果要停止satrt换成stop即可

验证

全部启动后输入jps查看是否启动
要求和部署目标一致

  • Namenode information 192.168.77.110:9870

  • All Applications 192.168.77.110:8088

  • JobHistory 192.168.77.110:19888

  • DataNode

datanode

  • JobHistory

JobHistory

  • All Applications

All Applications

最后

关闭顺序一定要是 hadoop集群->虚拟机->电脑

不然很容易出问题