前言

尝试了一下Hadoop搭建并做了如下记录

基础准备

软件及环境准备

软件名称 版本 描述
VirtualBox或VMware 14
CentOS7 7.5
JDK 1.8
Hadoop 3.1.2 hadoop-3.1.2.tar.gz

机器节点规划

  • Hadoop五个节点HA规划 | HostName | IP | NameNode | DataNode | ZooKeeper | ZKFC | JouaryNode | | —- | —- | —- | —- | —- | —- | —- | | node1 | 192.168.233.101 | | | | | | | node2 | 192.168.233.102 | | | | | | | node3 | 192.168.233.103 | | | | | | | node4 | 192.168.233.104 | | | | | | | node5 | 192.168.233.105 | | | | | * |

注:ZooKeeper和JouaryNode是可以共享的

相关路径创建

  • 基础软件安装配置路径 | 路径 | 注释 | | —- | —- | | /opt/basics | 基础路径 | | /opt/basics/java/ | JDK路径 | | /opt/bigdata/hadoop/ | Hadoop路径 | | /opt/bigdata/zookeeper/ | ZooKeeper安装路径 |

系统基础配置(root用户)

基本组件安装

  • 安装net-tools vim wge ntp 等基础工具
    注:如果系统是最小化安装的,以上工具组件可能没有集成,需要另外安装
    1. yum install -y net-tools vim* wget ntp telnet

设置HostName和Hosts

  • 链接-CentOS7设置hostname和hosts
  • 根据规划将下面内容写入hosts

    192.168.233.101 node1
    192.168.233.102 node2
    192.168.233.103 node3
    192.168.233.104 node4
    192.168.233.105 node5

关闭SELINUX

  • 临时关闭

    1. setenforce 0
  • 永久关闭

    1. vim /etc/selinux/config

    SELINUX=disabled #将SELINUX的值由enforcing改为disabled

设置静态IP地址

关闭防火墙

配置免密登陆

  • 链接-配置免密登陆
    需要免密钥的两种场景:
    1. 管理脚本:远程管理其他节点启停服务时需要免密钥
    2. NameNode:搭建HA的时候,需要免密钥控制对方和自己

环境配置

JDK环境配置

ZooKeeper分布式集群搭建配置

Hadoop相关配置

安装及环境变量配置

  • 创建Hadoop路径

    1. mkdir -p /opt/basics/hadoop/
  • 将事先准备好的hadoop-3.1.2.tar.gz文件上传至/opt/basics/hadoop路径

  • 执行解压命令

    1. tar -xvzf hadoop-3.1.2.tar.gz
  • 配置环境变量,在末尾追加hadoop相关配置

    1. vim ~/.bashrc
    1. HADOOP_HOME=/opt/basics/hadoop/hadoop-3.1.2
    2. HADOOP_CONF_DIR=HADOOP_HOME/etc/hadoop
    3. PATH=HADOOP_HOME/sbin:$PATH
    4. export HADOOP_HOME HADOOP_CONF_DIR YARN_CONF_DIR PATH
  • 使配置立即生效

    1. source ~/.bashrc
  • 验证是否安装成功

    1. hadoop version

Hadoop配置

  • 切换到hadoop路径下
    注:本章节下文配置均在此目录中

    1. cd $HADOOP_HOME/etc/hadoop

    | 涉及文件 | 描述 | | —- | —- | | hadoop-env.sh | | | core-site.xml | | | workers | DataNode节点信息 | | hdfs-site.xml | SecondaryNameNode相应内容 | | | | | | |

  • 编辑core-site.xml文件,配置NameNode相应内容

    1. vi core-site.xml
    1. fs.defaultFS hdfs://node1:9000 hadoop.tmp.dir /var/bigdata/hdfs/full io.file.buffer.size 4096
  • 编辑workers文件,配置DataNode相应内容

    1. vi workers

    node3 node4 node5

  • 编辑hdfs-site.xml文件,配置SecondaryNameNode相应内容

    1. vi hdfs-site.xml
    1. dfs.replication 3 dfs.namenode.secondary.http-address node2:9001 dfs.webhdfs.enabled true

格式化NameNode

  • 执行格式化NameNode

    1. hdfs namenode -format
  • 启动hdfs

    1. start-dfs.sh

访问hdfs

  • 访问下面地址
    注:Hadoop从3.1.0开始hdfs默认访问端口从50070改为9870
    1. http://192.168.233.101:9870