- 学习内容Hadoop(入门)重点搭集群
1.大数据概念
·大数据(bigdata),IT行业术语,
是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合
是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
·主要解决,海量级的存储、海量数据的分析计算、统一资源管理调度
·HDFS-海量级的存储 MapReduce-海量数据的分析计算 YARN-统一资源管理调度
·Hadoop的特点(4V)
volume(大量) velocity(高速) variable(多样) value(低价值密度)
2.Hadoop是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构
主要解决,海量数据的存储、分析计算问题
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈
201.Hadoop发展史
Hadoop的底层就来自于Google在大数据方面的三篇论文
GFS-->HDFS
MapReduce-->MR
BigTable-->HBase
202.Hadoop三大发行版本
Apache 版本最原始(最基础)的版本,对于入门学习最好。
Cloudera 在大型互联网企业中用的较多。
Hortonworks 文档较好
203.Hadoop的优势(4高)
01.高可靠:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或者存储出现故障,也不会导致数据的丢失
02.高扩展性:在集群分配任务数据,可方便的扩展数以千计的节点
03.高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
04.高容错性:能够自动将失败的任务重新分配
204.Hadoop组成
01. Hadoop1.x VS Hadoop2.x
hadoop1.x是由 MapReduce(计算+资源调度) HDFS(数据存储) common(辅助工具) 组成
hadoop2.x是由 MapReduce(计算) Yarn(资源调度) HDFS(数据存储) common(辅助工具) 组成
区别:两者没有太大区别,只是2.x增加了Yarn,Yarn在2.x中只负责资源调度 MapReduce则只负责运算
HDFS架构
01.NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性、以及每个文件的块列表和块所在的DataNode等。
02.DataNode(dn):在本地文件系统存储块数据,以及块数据的校验和。
03.SecondaryNameNdoe(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
YARN架构
01.ResourceManager(RM)主要作用
1.处理客户端请求
2.监控NodeManager
3.启动或监控ApplicationMaster
4.资源的分配与调度
02.NodeManager(NM)主要作用
1.管理单个节点上的资源
2.处理来自ResourceManager的命令
3.处理来自ApplicationMaster的命令
03.ApplicationMaster(AM)主要作用
1.负责数据的切分
2.为应用程序申请资源并分配给内部的任务
3.任务的监控与容错
04.Container
Container是YARN中的资源抽象,它封装了某个节点上多维度资源,如(内存、CPU、磁盘、网络)等。
YARN工作机制
(0)Mr程序提交到客户端所在的节点
(1)Yarnrunner向Resourcemanager申请一个Application。
(2)rm将该应用程序的资源路径返回给yarnrunner
(3)该程序将运行所需资源提交到HDFS上
(4)程序资源提交完毕后,申请运行mrAppMaster
(5)RM将用户的请求初始化成一个task
(6)其中一个NodeManager领取到task任务。
(7)该NodeManager创建容器Container,并产生MRAppmaster
(8)Container从HDFS上拷贝资源到本地
(9)MRAppmaster向RM 申请运行maptask容器
(10)RM将运行maptask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。
(11)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动maptask,maptask对数据分区排序。
(12)MRAppmaster向RM申请2个容器,运行reduce task。
(13)reduce task向maptask获取相应分区的数据。
(14)程序运行完毕后,MR会向RM注销自己。
MapReduce架构
01.MapReduce将计算过程分为两个阶段:Map和Reduce
02.Map阶段并行处理输入数据 Reduce阶段对Map结果进行汇总
3.Hadoop运行环境搭建
301.虚拟机环境准备
1.克隆虚拟机
2.修改克隆虚拟机的静态IP
3.修改主机名
4.关闭防火墙
5.创建普通用户
6.配置普通用户具有root权限
7.在/opt目录下创建文件夹
01.在/opt目录下创建module、software文件夹
sudo mkdir module
sudo mkdir software
02.修改software、module 文件夹的所有者cd(赋于权限)
sudo chown jinghang:jinghang module/ software/
8.安装jdk
01. 安装jdk之前先使用:rpm -qa | grep java 命令查看是否安装过java软件
如果安装的版本低于1.7就用:sudo rpm -e 软件包 的命令卸载
如果没有安装就准备下一步进行安装
02. 使用Xshell工具将JDK压缩包导入到opt目录下面的software文件夹下面,这个文件夹用来放我们所有要使用的压缩包
03. 解压压缩包
将刚刚放在software的压缩包解压到module下面
命令:tar -zxvf 压缩包名 -C /opt/module/
04. 配置JDK的环境变量
先获取jdk路径:在jdk软件包下面pwd获取路径
vim到profile文件中:sudo vim /etc/profile
在profile文件的末尾添加我们刚获取的jdk路径
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
然后wq保存 执行source /etc/profile 让其生效
使用:java -version 命令来测试是否安装成功
9.hadoop的安装同上jdk
4.Hadoop运行模式
hadoop的运行模式包括:本地运行模式 伪分布模式 完全分布式模式
01.本地模式:不需要启用单独进程,直接可以运行,测试和开发时使用。
02.伪分布模式:等同于完全分布式,只有一个节点。
03.完全分布式模式:多个节点一起运行
注意:我们一般开发使用的主要是完全分布式模式(重点)