1、Hadoop、HDFS、YARN介绍
Hadoop解决两件事情:海量数据的存储(使用HDFS)和海量数据的计算(使用MapReduce)。
(1)Hadoop简介与优势
简介:
1)Hadoop是一个由Apachc基金会所开发的分布式系统基础架构
。
2)主要解决,海量数据的存储和海量数据的分析计算问题。
3)广义上来说,Hadoop通常是指一个更广泛的概念------Hadoop生态圈。
优势:
1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4)高容错性:能够自动将失败的任务自动分配。
(2)Hadoop组成
![](https://file.jishuzhan.net/article/1733678136521920514/f79194f2973c7b48c60793bf09521c6e.webp)
- 在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。
- 在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。
- 而Hadoop3.x在组成上没有变化。
(3)HDFS概述
Hadoop Distributed File System,简称HDFS,是一个分布式文件系统
。主要解决海量数据存储的问题。
- NameNode(nn)︰存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数.文件权限),以及每个文件的块列表和块所在的DataNodc等。【记录数据存储在哪个节点上】
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。【负责数据的存储】
- Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。【防止NameNode突然瘫痪,进行备份】
![](https://file.jishuzhan.net/article/1733678136521920514/fe39b0484dab782899bafa3805deb6b6.webp)
(4)YARN概述
Yet Another Resource Negotiator简称YARN,另一种资源协调者,是Hadoop的资源管理器。
- Resource Maneger(RM):所有资源的管理者,是整个集群资源(内存、CPU等)的老大,管理所有的内存和CPU。
- NodeManager(NM):单节点资源的管理者,是单个节点服务器资源的老大。
- ApplicationMaster(AM):单个任务运行的老大。
- Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
![](https://file.jishuzhan.net/article/1733678136521920514/15dd52770ef27f9c27f86de2b7db2ee2.webp)
说明1:客户端可以有多个
说明2∶集群上可以运行多个ApplicationMaster【相当于Hadoop的并行运算】
说明3:每个NodeManager上可以有多个Container
那么到底可以运行多少个Container容器呢?
- 一个Container默认的内存是1-8G。由于一个NodeManager是4G的内存,因此一个NodeManager上最多开辟4个Container【每个Container=1G】,而一个Container最少需要分配一个CPU,因此最终一个NodeManager上最多开辟2个Container。
(5)MapReduce概述
MapReduce将计算过程分为两个阶段:Map和 Reduce。
- Map阶段并行处理输入数据
- Reduce阶段对Map结果进行汇总
2、安装
(1)Centos7.5软硬件安装
![](https://file.jishuzhan.net/article/1733678136521920514/d996748e905244b69284bc741294f3bc.webp)
![](https://file.jishuzhan.net/article/1733678136521920514/3bb4dca53a040069545c084edff19425.webp)
下载镜像:centos镜像
![](https://file.jishuzhan.net/article/1733678136521920514/f6d1b847bf35e1495d7347a05aba8093.webp)
(2)配置服务器IP地址
设置vmware:
![](https://file.jishuzhan.net/article/1733678136521920514/676ce41b454cf05ef3734addfc83aa61.webp)
设置windows:
![](https://file.jishuzhan.net/article/1733678136521920514/1662abbbc12c183305ef8d061f548b0f.webp)
设置虚拟机:
主机名称映射:
配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts
(3)Xshell远程访问
![](https://file.jishuzhan.net/article/1733678136521920514/4a8c91f252bd882e71ea6a3eae70caa9.webp)
修改windows的主机映射文件:
下载Xftp
(4)安装epel-release
![](https://file.jishuzhan.net/article/1733678136521920514/a27014c038a22e88fb60ace990ec3359.webp)
(5)关闭防火墙,关闭防火墙开机自启
(6)卸载自带JDK
![](https://file.jishuzhan.net/article/1733678136521920514/e0f534f97bd863b141e23d52223d4eb2.webp)
python
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
- rpm -qa:查询所安装的所有rpm软件包
- grep -i:忽略大小写
- xargs -nl:表示每次只传递一个参数
- rpm -e --nodeps:强制卸载软件
3、克隆三台虚拟机
(1)克隆虚拟机
注意:克隆之前先关机
克隆之后需要修改三台虚拟机的主机名称以及IP地址
(2)在hadoop102上安装JDK
当时遇到一个错误,查阅这篇博客之后解决:xftp传输文件状态错误解决办法
![](https://file.jishuzhan.net/article/1733678136521920514/8e641b0e0110a124fe69789503c9220b.webp)
linux退出当前目录使用:cd ...
linux查看当前目录所在路径:pwd
(3)配置JDK环境变量
![](https://file.jishuzhan.net/article/1733678136521920514/f26162de9c99af802b75fa6d9352d182.webp)
![](https://file.jishuzhan.net/article/1733678136521920514/1bc900dc94b67877789929c0b7d53676.webp)
(4)在hadoop102按照hadoop
![](https://file.jishuzhan.net/article/1733678136521920514/f9b72146c0019f96aa1537db746884e6.webp)
注意安装路径!
(5)配置hadoop环境变量
![](https://file.jishuzhan.net/article/1733678136521920514/a82f677abcbf020e85b0cd86e5b85c31.webp)
![](https://file.jishuzhan.net/article/1733678136521920514/8f06f74df94d87e6ee4780022088a336.webp)
在系统文件加入下面的环境变量:
![](https://file.jishuzhan.net/article/1733678136521920514/b8d33fa969e3f7ba719d6a2e8a4b619e.webp)
![](https://file.jishuzhan.net/article/1733678136521920514/2a038f9b2a43b83eb32589daf4facc9f.webp)
hadoop目录下有哪些内容:
![](https://file.jishuzhan.net/article/1733678136521920514/9ee73a8df1cf6b6641ee935412ce771e.webp)