一 hadoop 简介

1 Hadoop 整体框架

Hadoop 由HDFS 、MapReduce、HBASE、hive 和zookeeper 等成员组成,其中最
基础最重要的元素是底层用于存储集群中所有存储节点文件的文件系统HDFS 来
执行MapReduce 程序的MapReduce 引擎
hadoop环境搭建_第1张图片

1 pig 是一个基于Hadoop 的大规模数据分析平台,pig 为复杂的海量数据并行计
算提供了一个简单的操作和编程接口
2 hive 是基于Hadoop 的一个工具,提供完整的SQL 查询,可以将sql 语句转换
为MapReduce (映射)任务进行执行
3 zookeeper:高效的,可扩展的协调系统,存储和协调关键共享状态
4 HBASE 是一个开源的,基于列存储模型的分布式数据库
5 hdfs 是一个分布式文件系统,具有高容错的特点,适合于那些超大数据集的应
用程序,
6 MapReduce 是一种编程模式,用于大规模数据集的并行计算

2 hadoop 集群部署结构

hadoop环境搭建_第2张图片
hadoop环境搭建_第3张图片

3 hadoop 核心设计

hadoop环境搭建_第4张图片

1 HDFS

是一个高度容错性的分布式文件系统,可以被广泛的部署于廉价的PC 上,他以流式访问模式访问应用程序的数据,这样可以提高系统的数据吞吐量,因而非常适合用于具有超大数据集的应用程序中
hadoop环境搭建_第5张图片
HDFS 架构采用主从架构,一个HDFS 集群应该包含一个namenode 节点和多个datanode 节点,name node 负责整个HDFS 文件系统中的文件元数据的保管和管理,集群中通常只有一台机器上运行namenode,datanode 节点保存文件中的数据,集群中的机器分别运行一个datenode 实例,在HDFS 中,namenode 节点称为名称节点,DataNode 称为数据节点,DataNode 通过心跳机制与namenode 节点进行定时通信Namenode 相当于mfs 中的master serverDatanode 相当于mfs 中的chunk server

2 HDFS 的读写方式
写入
hadoop环境搭建_第6张图片

文件写入:如上图
1 客户端向nameode (master server ) 发起文件写入请求
2 namenode 根据文件大小和文件块配置情况,返回给客户端DataNode 信息
(chunkserver)
3 client 将文件划分成多个文件块,根据DataNode 的地址信息,按顺序写入每个
DataNode 中

读取
hadoop环境搭建_第7张图片
步骤:
1 向namenode 发送读取请求
2 namenode 返回文件位置列表
3 client 根据列表读取文件信息

2 MapReduce

是一种编程模型,用于大规模数据集并行计算,map(映射)和reduce(化简),采用分布方式,(分封制),先把任务分发到集群节点上,并行计算,然后将结果合并,多结点计算,涉及的任务调度,负载均衡,容错,都有MapReduce 完成

hadoop环境搭建_第8张图片

用户提交任务给job tracer ,job tracer 把对应的用户程序中的map 个reduce 操作映射到tasktracee 节点中,输入模块负责把输入数据数据分成小数据块,然后把它们传递给map 节点,map 节点得到每一个key/value 对,然后产生一个或多个key/value 对,然后写入文件,reduce 节点获取临时文件中的数据,对带有相同key 的数据进行迭代计算,后将最终结果写入文件

hadoop环境搭建_第9张图片

Hadoop 的核心是MapReduce,而MapReduce 的核心又在于map 和reduce 函数。它们是交给用户实现的,这两个函数定义了任务本身。

map 函数:接受一个键值对(key-value pair)(例如上图中的Splitting 结果),产生一组中间键值对(例如上图中Mapping 后的结果)。Map/Reduce 框架会将map 函数产生的中间键值对里键相同的值传递给一个reduce 函数。
reduce 函数:接受一个键,以及相关的一组值(例如上图中Shuffling 后的结果),将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)(例如上图中Reduce 后的结果)
但是,Map/Reduce 并不是万能的,适用于Map/Reduce 计算有先提条件:
(1)待处理的数据集可以分解成许多小的数据集;
(2)而且每一个小数据集都可以完全并行地进行处理;
若不满足以上两条中的任意一条,则不适合适用Map/Reduce 模式。

二 环境搭建

软件下载位置
链接:https://pan.baidu.com/s/1lBQ0jZC6MGj9zfV-dEiguw
密码:13xi

1 配置hadoop 用户

hadoop环境搭建_第10张图片
hadoop环境搭建
hadoop环境搭建_第11张图片
hadoop环境搭建_第12张图片
hadoop环境搭建

2 下载并解压相关软件

hadoop环境搭建_第13张图片
hadoop环境搭建_第14张图片

3 修改环境变量,使得hadoop运行在Java平台之上

hadoop环境搭建
hadoop环境搭建
hadoop环境搭建

4 修改java环境变量,使其可以查看到hadoop进程开启状态

hadoop环境搭建
hadoop环境搭建

5 查看

hadoop环境搭建

二 单节点部署

1 创建文件夹,并将数据导入用于测试单节点,

并使用Hadoop内部方法完成基本配置。其中output是自动创建的,无需手工创建
hadoop环境搭建_第15张图片

2 查看其统计结果

hadoop环境搭建
hadoop环境搭建_第16张图片

三 伪节点部署

1 配置文件系统管理相关

hadoop环境搭建
hadoop环境搭建_第17张图片

2 配置文件保存的份数

hadoop环境搭建
hadoop环境搭建_第18张图片

3 配置hadoop密码并设置ssh免密认证

hadoop环境搭建_第19张图片
hadoop环境搭建_第20张图片

4 配置datanode节点

hadoop环境搭建

5 namenode节点格式化

hadoop环境搭建_第21张图片
返回值为0,表示格式化成功
hadoop环境搭建_第22张图片

6 启动服务并查看进程状态

hadoop环境搭建_第23张图片
测试显示结果
hadoop环境搭建_第24张图片

7 测试

创建目录上传
hadoop环境搭建
查看
hadoop环境搭建_第25张图片
hadoop环境搭建_第26张图片
上传文件至服务端
hadoop环境搭建
查看
hadoop环境搭建_第27张图片
使用命令查看结果
删除并查看其显示结果
hadoop环境搭建_第28张图片
hadoop环境搭建
hadoop环境搭建
hadoop环境搭建_第29张图片
hadoop环境搭建
hadoop环境搭建_第30张图片
hadoop环境搭建_第31张图片

8 高级配置:mapred配置

hadoop环境搭建
hadoop环境搭建_第32张图片
hadoop环境搭建
hadoop环境搭建

9 启动服务并查看

hadoop环境搭建_第33张图片

10 查看是否成功

hadoop环境搭建_第34张图片

四 分布式配置

1 停止之前的伪节点配置

hadoop环境搭建_第35张图片

2 在超级用户下安装服务用以共享存储

hadoop环境搭建
hadoop环境搭建_第36张图片
hadoop环境搭建_第37张图片

3 启动服务

hadoop环境搭建_第38张图片

4 配置共享存储

hadoop环境搭建
hadoop环境搭建

5 刷新看是否成功

hadoop环境搭建

6 客户端启动服务并挂载挂载

hadoop环境搭建_第39张图片
hadoop环境搭建_第40张图片
hadoop环境搭建

7 查看配置

hadoop环境搭建
hadoop环境搭建

8 配置datanode节点

hadoop环境搭建
hadoop环境搭建

9 配置备份存储数量

hadoop环境搭建
hadoop环境搭建_第41张图片

10 格式化namenode节点

hadoop环境搭建_第42张图片
hadoop环境搭建_第43张图片
hadoop环境搭建

11 设置免密

hadoop环境搭建_第44张图片

12 启动服务并查看

hadoop环境搭建_第45张图片

13 datanode节点查看服务

hadoop环境搭建

14 查看datanode节点是否存在并正常挂载

hadoop环境搭建
hadoop环境搭建_第46张图片

五 在线添加节点

1 安装并配置基础环境

hadoop环境搭建_第47张图片

2 启动服务并挂载

hadoop环境搭建_第48张图片

3 配置datanode节点

hadoop环境搭建
hadoop环境搭建

4 配置免密认证

hadoop环境搭建_第49张图片

5 启动服务并查看其进程

hadoop环境搭建_第50张图片

6 查看其是否加入存储系统中

hadoop环境搭建_第51张图片
hadoop环境搭建_第52张图片

六 节点数据迁移

1 创建数据目录并上传数据

hadoop环境搭建_第53张图片

2 查看是否上传成功

hadoop环境搭建_第54张图片

3 查看其各个节点存储状态

hadoop环境搭建_第55张图片
hadoop环境搭建_第56张图片
hadoop环境搭建_第57张图片
hadoop环境搭建_第58张图片

4 配置下线

hadoop环境搭建
hadoop环境搭建_第59张图片
配置下线用户为server3
hadoop环境搭建
hadoop环境搭建

5 生效配置文件

hadoop环境搭建

6 查看serever3状态,如果为normal 则表示迁移完成,否则未完成

hadoop环境搭建_第60张图片
hadoop环境搭建_第61张图片

7 查看其他节点存储,发现存储已经增加,则表明数据迁移完成

hadoop环境搭建_第62张图片
hadoop环境搭建_第63张图片
hadoop环境搭建_第64张图片

8 关闭datanode节点,下线成功

hadoop环境搭建

9 开启其他节点的nodemanager服务

hadoop环境搭建

七 高可用

简介:
在典型的HA集群中,通常有两台不同的机器充当NN(namenode),在任何时间,只有一台机器处于active状态,另一台机器则处于standby状态,active NN负责集群中所有客户端的操作,而standby NN主要用于备用,主要维持足够的状态,如果有必要,可以提供快速的故障恢复

为了让standby NN状态和 active NN 保持同步,及元数据保持一致,他会都会和journalnodes 守护进程通信,当active NN 执行任何有关命名空间的修改,他都需要持久化到一半以上的journalnodes 上(通过edits log 持久化存储),而standby NN负责观察edits log 的变化,他能够从JNS 中读取edits 信息,并更新其内部的名称空间,一旦active NN 出现故障,standby NN 会将保证从JNS中读取了全部edits,然后切换成active 状态,standby NN读取全部的edits 可确保发生故障转移之前,是和active NN拥有完全同步的命名空间状态

为了提供快速的故障恢复,standby NN也需要保存集群中各个文件块的存储位置,为了实现这个,集群中的所有Datanode 将配置好的active NN和standby NN的位置,并向他们发送快文件所在的位置及心跳。
为了部署HA 集群,你需要准备以下事项:
(1)、NameNode machines:运行Active NN 和Standby NN 的机器需要相同的硬件配置;
(2)、JournalNode machines:也就是运行JN 的机器。JN 守护进程相对来说比较轻量,所以这些守护进程可以可其他守护线程(比如NN,YARN ResourceManager)运行在同一台机器上。在一个集群中,最少要运行3 个JN 守护进程,这将使得系统有一定的容错能力。当然,你也可以运行3 个以上的JN,但是为了增加系统的容错能力,你应该运行奇数个JN(3、5、7 等),当运行N 个JN,系统将最多容忍(N-1)/2 个JN 崩溃。在HA 集群中,Standby NN 也执行namespace 状态的checkpoints,所以不必要运行Secondary NN、CheckpointNode 和BackupNode;事实上,运行这些守护进程是错误的。

1 DHFS 高可用

1 关闭之前的服务

hadoop环境搭建_第65张图片

2 查看各节点配置

hadoop环境搭建
hadoop环境搭建
hadoop环境搭建

3 配置服务

hadoop环境搭建
hadoop环境搭建_第66张图片

4 删除原有配置

hadoop环境搭建

5 清空原有配置,以防影响

hadoop环境搭建_第67张图片
hadoop环境搭建_第68张图片
hadoop环境搭建_第69张图片
hadoop环境搭建_第70张图片
hadoop环境搭建_第71张图片

6 配置安装服务zookeeper

zookeeper 至少为三台,总结点数为奇数个
hadoop环境搭建
hadoop环境搭建_第72张图片
hadoop环境搭建
hadoop环境搭建
hadoop环境搭建
hadoop环境搭建
hadoop环境搭建_第73张图片

7 启动服务

hadoop环境搭建_第74张图片
hadoop环境搭建_第75张图片
hadoop环境搭建_第76张图片

8 查看那个是leader

hadoop环境搭建
hadoop环境搭建
hadoop环境搭建

9 在leader 上启动服务并查看相关配置

hadoop环境搭建_第77张图片
hadoop环境搭建_第78张图片

10 配置集群相关配置

1 配置指定hdfs的namenode 为master(名称随意)指定zookeeper 集群主机地址(server2,server3,server4的IP地址)

hadoop环境搭建
hadoop环境搭建_第79张图片

2 编辑hdfs-site.xml文件

hadoop环境搭建
A 指定hdfs的nameservices 为master
hadoop环境搭建_第80张图片
B 定义namenode节点(server1 server5 )
hadoop环境搭建_第81张图片
C 指定namenode 元数据在journalNode上的存放位置
hadoop环境搭建
D指定journalnode在本地磁盘存放数据的位置
hadoop环境搭建
E 开启namenode 失败自动切换,及自动切换实现方式,隔离机制方式以及使用sshfence 隔离机制需要ssh免密以及隔离机制超时时间等参数
hadoop环境搭建_第82张图片

11 配置server5进行挂载

hadoop环境搭建
hadoop环境搭建_第83张图片
hadoop环境搭建_第84张图片

12 启动日志服务器server2 server3 server4

hadoop环境搭建_第85张图片
hadoop环境搭建_第86张图片
hadoop环境搭建_第87张图片

13 格式化namenode

hadoop环境搭建_第88张图片
hadoop环境搭建_第89张图片

14 将生成的数据发送到另一个高可用节点

hadoop环境搭建_第90张图片

15 配置免密认证

hadoop环境搭建_第91张图片

16 启动zkfc服务

hadoop环境搭建_第92张图片

17 查看服务

hadoop环境搭建
hadoop环境搭建
hadoop环境搭建_第93张图片
hadoop环境搭建
hadoop环境搭建_第94张图片
hadoop环境搭建_第95张图片

18 验证高可用,关闭服务

hadoop环境搭建_第96张图片
hadoop环境搭建_第97张图片

hadoop环境搭建_第98张图片

hadoop环境搭建_第99张图片

hadoop环境搭建_第100张图片

2 高可用之 YARN

hadoop环境搭建

1 指定yarn的框架为mapreduce

hadoop环境搭建_第101张图片

hadoop环境搭建

2 配置可以在nodemanager上运行mapreduce程序

hadoop环境搭建

3 激活RM高可用

hadoop环境搭建

4 指定RM的集群ID

hadoop环境搭建

5 定义RM节点

hadoop环境搭建
hadoop环境搭建_第102张图片

6激活RM 自动恢复

hadoop环境搭建

7 配置RM状态信息存储方式,有memstore和ZKstore

hadoop环境搭建

8 配置为zookeeper 存储时,指定ziikeeper集群的地址

hadoop环境搭建

9启动yarn 服务并查看

hadoop环境搭建_第103张图片

10 另一个节点需要手工启动服务

hadoop环境搭建_第104张图片

11 查看集群状态

hadoop环境搭建_第105张图片
hadoop环境搭建_第106张图片
hadoop环境搭建_第107张图片

12 测试

断开主节点查看情况
hadoop环境搭建_第108张图片
则切换到server5上
hadoop环境搭建_第109张图片
查看server5 状态
hadoop环境搭建_第110张图片
启动server1
hadoop环境搭建_第111张图片
查看server1状态
hadoop环境搭建_第112张图片

3 服务的关闭方式

hadoop环境搭建_第113张图片
hadoop环境搭建_第114张图片
hadoop环境搭建_第115张图片
hadoop环境搭建_第116张图片
hadoop环境搭建_第117张图片