1概述
Hadoop是由Apache基金会开发的分布式系统基础架构,主要解决海量数据存储和分析计算问题
广义来讲,Hadoop通常指Hadoop生态圈。
三大版本:Apache、Cloudera(对应CDH)、Hortonworks(对应HDP)
Hadoop优势(4高)
1)高可靠性:底层维护多个数据副本,即使某个计算元素或存储出现故障,也不会导致数据丢失
2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
3)高效性:在MapReduce(MR)的思想下,Hadoop是并行工作的,以加快任务处理
4)高容错性:能够自动将失败的任务重新分配
Hadoop组成(面试重点)
Hadoop1.x:MapReduce(计算+资源调度)、HDFS(数据存储)、Common(辅助工具)
其中MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大
Hadoop2.x:增加了Yarn:只负责资源的调度,而解放MR只负责运算
Hadoop3.x:在组成上没有变化
HDFS架构概述
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
注:块数据的校验和是一种用于验证数据完整性的技术,它通常用于存储或传输数据时,以确保数据在传输或存储过程中没有发生损坏或篡改。
3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份
YARN架构概述
Yet Another Resource Negotiator,另一种资源协调者,是Hadoop的资源管理器。
1)ResourceManager(RM):整个集群资源(内存、CPU等)的老大
2)NodeManager(NM):单个节点服务器资源老大
3)ApplicationMaster(AM):单个任务运行的老大
4)Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源(内存,CPU,磁盘,网络等)
MapReduce架构概述
将计算分为两个阶段:Map和Reduce
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总
三者关系
大数据技术生态体系
2Hadoop运行环境搭建(开发重点)
2.1模版虚拟机环境准备
安装模版虚拟机 Hadoop100内存4G硬盘50G Linux系统以CentOS7.5-x86-1804为例
使用yum安装 epel-release, net-tool, vim
关闭防火墙 systemctl stop firewalld,关闭防火墙开机自启 systemctl disable firewalld.service
创建用户密码,配置用户具有root权限,便于后期加sudo执行root权限的命令
在/opt目录下创建文件夹module、software并修改所有者和所属组
重启虚拟机 reboot
2.2克隆虚拟机
利用模版机hadoop100,克隆三台hadoop102,hadoop103,hadoop104
修改克隆机IP
1)修改克隆机的静态IP
2)查看Linux虚拟机的虚拟网络编辑器修改部分设置
3)查看Windows系统适配器VMware Network Adapter VMnet8的IP地址
4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同
修改克隆机主机名
1)修改主机名称
2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts,并添加内容
3)重启克隆机hadoop102
4)修改windows的主机映射文件(hosts文件)
2.3在hadoop102安装JDK
1)卸载现有JDK
2)用XShell传输工具将JDK导入到opt目录下的software文件夹下面
3)在Linux系统查看是否导入成功
4)解压JDK到/opt/module目录下
5)配置JDK环境变量
6)测试
2.4在hadoop102安装Hadoop
1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt下的software文件夹下
2)进入路径
3)解压安装文件到/opt/module
4)查看是否解压成功
5)加Hadoop添加到环境变量
6)测试,不成功就重启
2.5Hadoop目录结构
1)查看Hadoop目录结构
2)重要目录
3Hadoop运行模式
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式
本地模式:单机运行,用来演示,生产不用
伪分布式模式:单机运行,具备所有功能,个别小公司用来测试,生产不用
完全分布模式:多台服务器组成分布式环境,生产使用
完全分布式运行模式
分析:
准备三台客户机(关闭防火墙、静态IP、主机名称)—安装JDK—配置环境变量—安装Hadoop—配置环境变量—配置集群—单点启动—配置ssh—群起并测试集群
编写集群分发脚本xsync
1)scp(secure copy)安全拷贝
scp可以实现服务器与服务器之间的数据拷贝
基本用法
2)rsync 远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点
与scp区别:用rsync比scp快,rsync只对差异文件做更新,scp是把所有文件复制过去
基本语法
3)xsync集群分发脚本
需求:循环复制文件到所有节点的相同目录下
需求分析:
脚本实现
SSH无密登录配置
1)配置ssh
基本语法 : ssh 另一台电脑的IP地址
2)无密钥配置
免密登录原理
生成公钥和私钥
将公钥拷贝到要免密登录的目标机器上
.ssh文件夹下(~/.ssh)的文件功能解释
集群配置
1)集群部署规划
注:NameNode和SecondaryNameNode不要安装在同一台服务器
ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
2)配置文件说明
Hadoop配置文件分两类,默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值
1.默认配置文件
2.自定义配置文件
core-site.xml等四个对应的配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改
3)配置集群
核心配置文件——配置core-site.xml
HDFS配置文件——配置hdfs-site.xml
YARN配置文件——配置yarn-site.xml
MapReduce配置文件——配置mapred-site.xml
4)在集群上用xsync分发配置好的Hadoop配置文件
5)检查
群起集群
1)配置workers
添加如下内容
xsync同步所有节点配置文件
2)启动集群
1.如果集群是第一次启动,需要在102节点格式化NameNode
$ hdfs namenode -format
2.启动HDFS
$ sbin/start-dfs.sh
3.在配置了ResourceManager的节点(103)启动YARN
start-yarn.sh
3)集群基本测试
上传 hadoop fs -put
查看HDFS文件存储路径
查看HDFS在磁盘存储文件内容
配置历史服务器
配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上
好处:便于查看程序运行详情,方便开发与调试
开启需要重启NodeManager,ResourceManager,HistoryServer
集群启动停止方式
编写Hadoop集群常用脚本
1)Hadoop集群启停脚本(包含HDFS,Yarn,HistoryServer):myhadoop.sh
2)查看三台服务器Java进程脚本:jpsall
常用端口号说明
集群时间同步
如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准
如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步
1)需求
找一个机器作为时间服务器,所有机器与这台集群时间进行定时的同步,生产环境根据任务对时间的准确程度要求周期同步。
2)时间服务器配置(必须root用户)
1.查看所有节点ntpd服务状态和开机自启动状态
NTP(Network Time Protocol)配置文件。NTP 是一种用于同步计算机系统时间的网络协议,它可以让计算机系统通过网络获取准确的时间信息,以保证系统时间的一致性和准确性。
在 Linux 系统中,NTP 的配置文件通常位于 /etc/ntp.conf
路径下
2.修改hadoop102的ntp.comf配置文件
3)其他机器配置(必须root用户)
1.关闭所有节点上ntp服务和自启动