携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 1 天,点击查看活动详情。
我们知道Hadoop是一个由 Apache基金会 开发的分布式系统基础架构,主要解决海量数据的存储和分析计算问题。本篇文章我们主要基于Hadoop搭建一个大数据分布式集群架构。
Hadoop运行环境搭建
我们主要是使用 VMWare虚拟机安装Centos系统来实现分布式集群,所以,大家对于VMWare安装Centos步骤并不是那么明确的,可以提前了解学习一下。
1. 模板虚拟机环境准备
安装模板虚拟机,IP 地址:192.168.10.100 、主机名称:hadoop100 、内存:4G 、硬盘:50G
1)hadoop100 虚拟机配置要求如下(以CentOS-7.5-x86-1804为例)
(1)使用yum安装软件前需要虚拟机可以正常上网,所以我们先测试下虚拟机的联网情况
[root@hadoop100 ~]# ping www.baidu.com
(2)安装epel-release
注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的
[root@hadoop100 ~]# yum install -y epel-release
2)关闭防火墙,关闭防火墙开机自启
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service
3)创建普通用户leony,并修改普通用户的密码
[root@hadoop100 ~]# useradd leony
[root@hadoop100 ~]# passwd leony
4)配置 leony 用户具有 root权限,方便后期加 sudo 执行 root 权限的命令
[root@hadoop100 ~]# vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
leony ALL=(ALL) NOPASSWD:ALL
5)在 /opt 目录下创建文件夹,并修改 所属主 和 所属组
(1)在 /opt 目录下创建 module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
(2)修改 module、software文件夹的所有者和所属组均为普通用户leony
[[root@hadoop100 ~]# chown leony:leony /opt/module
[root@hadoop100 ~]# chown leony:leony /opt/software
2. 克隆虚拟机
1)利用模板机 hadoop100 ,克隆三台虚拟机:hadoop102、 hadoop103、 hadoop104
(克隆时,要先关闭 模板机hadoop100)
2)修改克隆机IP,我们以 hadoop102 举例说明
(1)修改克隆虚拟机hadoop102的静态IP
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
IPADDR=192.168.10.102
PREFIX=24
GATEWAY=192.168.10.2
DNS1=192.168.10.2
(2)保证Centos中ifcfg-ens33文件中的IP地址、虚拟网络编辑器地址 和 Windows系统VM8网络IP地址 相同,都为 192.168.10.102 。且之后克隆的Centos系统中的网关IP(DNS服务器)全部为 192.168.10.2,这样可以保证同一网段通信。
hadoop103、hadoop104中的IP地址分别为 192.168.10.103、 192.168.10.104,但需保证 网关IP 都为 192.168.10.2。
3. hadoop102 安装 JDK
1)卸载现有 JDK 注意:安装JDK前,一定要确保提前删除了虚拟机自带的JDK。
2)安装 JDK(解压JDK到/opt/module目录)
[leony@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
3)配置 JDK 环境变量
(1)新建 /etc/profile.d/my_env.sh 文件
[leony@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
添加以下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(2)令新的环境变量PATH生效
[leony@hadoop102 ~]$ source /etc/profile
4)测试 JDK 是否成功
[leony@hadoop102 ~]$ java -version
结果显示java version "1.8.0_212",则代表 Java 安装成功
4. hadoop102 安装 Hadoop
1)安装Hadoop(解压安装文件)
[leony@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
2)设置环境变量
[leony@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
添加以下内容
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile,令修改的文件生效。
3)测试是否安装成功
hadoop version,结果显示 Hadoop 3.1.3 ,则代表安装成功。
5. Hadoop运行模式
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
-
本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
-
伪分布式模式: 也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。生产环境不用。
-
完全分布式模式: 多台服务器组成分布式环境。生产环境使用。
因为本地模式和伪分布式模式在生产环境中基本不用,所以我们主要讲述一下完全分布式模式。
完全分布式模式
1)3台客户机hadoop102、hadoop103、hadoop103(关闭防火墙、静态IP、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
(1)集群规划部署
- NameNode 和 SecondaryNameNode不能安装在同一台服务器
- ResourceManager 很消耗内存,不能和 NameNode、SecondaryNameNode 配置在同一台机器上。
(2)配置文件
Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
core-site.xml 、hdfs-site.xml 、yarn-site.xml 、mapred-site.xml四个自定义配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可根据项目需求重新进行修改配置。
6)启动集群
(1)如果集群是第一次启动,需要先在hadoop102节点上格式化NameNode
(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
格式化命令 hdfs namenode -format
(2)启动HDFS
[leony@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
(3)在配置了ResourceManager的节点(hadoop103) 启动YARN
[leony@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
(4)Web端查看HDFS的NameNode
-
浏览器中输入:http://hadoop102:9870
-
查看HDFS上存储的数据信息
(5)Web端查看YARN的ResourceManager
- 浏览器中输入:http://hadoop103:8088
- 查看YARN上运行的Job信息