Hadoop离线是大数据生态圈的核心与基石,是整个大数据开发的入门。本次分享内容让初学者能高效、快捷掌握Hadoop必备知识,大大缩短Hadoop离线阶段学习时间,下面一起开始今天的学习!
一、Hadoop集群简介
Hadoop集群整体概述
- Hadoop集群包括两个集群: HDFS集群、YARN集群
 - 两个集群逻辑上分离、通常物理上在一起
 - 两个集群都是标准的主从架构集群
 

Hadoop集群简介
Hadoop集群=HDFS集群+YARN集群

- 逻辑上分离
 
两个集群互相之间没有依赖、互不影响
- 物理上在一起
 
某些角色进程往往部署在同一台物理服务器上
- MapReduce集群呢?
 
MapReduce是计算框架、代码层面的组件 没有集群之说
二、Hadoop集群模式安装(Cluster mode)
Hadoop源码编译
- 安装包、源码包下载地址
 
https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/
- 为什么要重新编译Hadoop源码?
 
匹配不同操作系统本地库环境,  Hadoop某些操作比如压缩、  IO需要调用系统本地库(*.so|*.dll)
 修改源码、重构源码。
- 如何编译Hadoop
 
源码包根目录下文件: BUILDING.txt 详细步骤参考附件资料
- 课程提供编译好的Hadoop安装包
 
hadoop-3.3.0-Centos7-64-with-snappy.tar.gz


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

- 创建统一工作目录(3台机器)
 
mkdir -p /export/server/ #软件安装路径
 mkdir -p /export/data/ #数据存储路径
 mkdir -p /export/software/  #安装包存放路径 

Step3:上传安装包、解压安装包
- JDK 1.8安装(3台机器)
 

- 上传、解压Hadoop安装包(node1)
 

Step4:Hadoop安装包目录结构

配置文件概述
  官网文档:  https://hadoop.apache.org/docs/r3.3.0/
     第一类1个:  hadoop-env.sh
     第二类4个:  xxxx-site.xml ,site表示的是用户定义的配置,会覆盖default中的默认配置。
 core-site.xml  核心模块配置
 hdfs-site.xml  hdfs文件系统模块配置
 mapred-site.xml  MapReduce模块配置
 yarn-site.xml yarn模块配置
     第三类1个:  workers
     所有的配置文件目录:  /export/server/hadoop-3.3.0/etc/hadoop
Step5:编辑Hadoop配置文件(1)
hadoop-env.sh

Step5:编辑Hadoop配置文件(2)
core-site.xml

Step5:编辑Hadoop配置文件(3)
hdfs-site.xml

Step5:编辑Hadoop配置文件(4)
mapred-site.xml

Step5:编辑Hadoop配置文件(5)
yarn-site.xml

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

Step6:分发同步安装包
在node1机器上将Hadoop安装包scp同步到其他机器

Step7:配置Hadoop环境变量
- 在node1上配置Hadoop环境变量
 
vim /etc/profile
 export HADOOP_HOME=/export/server/hadoop-3.3.0
 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 #验证环境变量是否生效

Step8:NameNode format (格式化操作)
    首次启动HDFS时,必须对其进行格式化操作。
     format本质上是初始化工作,进行HDFS清理和准备工作
     命令:hdfs namenode -format

 

三、Hadoop集群启停命令、 Web UI
手动逐个进程启停
- 每台机器上每次手动启动关闭一个角色进程,可以精准控制每个进程启停,避免群起群停。
 - HDFS集群
 

- YARN集群
 

shell脚本一键启停
在node1上,使用软件自带的shell脚本一键启动。前提: 配置好机器之间的SSH免密登录和workers文件。
- HDFS集群
 
start-dfs.sh
 stop-dfs.sh
- YARN集群
 
start-yarn.sh
 stop-yarn.sh
- Hadoop集群
 
start-all.sh
 stop-all.sh

进程状态、日志查看
- 启动完毕之后可以使用jps命令查看进程是否启动成功
 

- Hadoop启动日志路径: /export/server/hadoop-3.3.0/logs/
 

HDFS集群
地址: http://namenode_host:9870
其中namenode_host是namenode运行所在机器的主机名或者ip
 如果使用主机名访问,别忘了在Windows配置hosts

- HDFS文件系统Web页面浏览
 

YARN集群
地址:  http://resourcemanager_host:8088
 其中resourcemanager_host是resourcemanager运行所在机器的主机名或者ip
 如果使用主机名访问,别忘了在Windows配置hosts

四、Hadoop初体验
HDFS 初体验
    shell命令操作
 hadoop fs -mkdir /itcast
 hadoop fs -put zookeeper.out /itcast
 hadoop fs -ls /
    Web UI页面操作
 


MapReduce+YARN 初体验
执行Hadoop官方自带的MapReduce案例, 评估圆周率π的值。











