hadoop基础知识总结

自古美人都是妖i 提交于 2021-01-13 08:36:49

 

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。

 

Hadoop生态圈:

MapReduce:分布式计算框架

Yarn:集群资源管理和调度平台

Hdfs:分布式文件系统

Hive:数据仓库

HBase:实时分布式数据库

Flume:日志收集工具

Sqoop:数据库ETL工具

Zookeeper:分布式协作服务

Mahout:数据挖掘库

 

Hadoop由4个主要构成部分:

 

1) 基础核心:提供基础的通用的功能,一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)

2) HDFS:分布式存储,高容错性适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序,HDFS块的默认大小64 MB

3) MapReduce:分布式计算

4) YARN:资源分配(多个任务是排队执行还是同时执行)

 

HDFS由3种主要的节点构成:

 

1) NameNode :用来存储数据的存放位置等元数据(不存放数据)(如文件名、文件大小、文件所在目录、所有者名称、读写执行权限等)

2) DataNode :只用来存储数据

3) SecondaryNameNode :辅助NameNode运行,将NameNode产生的元数据持久化到磁盘上,与NameNode进行通信,以便定期地保存HDFS元数据的 快照,如果NameNode发生问题,SecondaryNameNode可以及时地作为备用NameNode使用。HDFS目前使用zookeeper来确保仅有一个活动namenode。

HDFS适用于高吞吐量,一次写入,多次读取的应用场景,不适合大量小文件的存储,低时间延迟,多用户读写操作的场景。

 

HDFS 文件读取
1. 首先创建RPC连接; 
2. 从namenode 中获取文件数据块的位置; 
3. 客户端与datanode之间建立socket链接,选择与客户端最近的datanode节点; 
4. 下载文件的数据块

 

HDFS 文件写入

1. 创建RPC连接; 
2. 创建文件元数据; 
3. 为文件分配块; 
4. 客户端与DataNode,DataNode之间建立socket(4,5,6),并且几者之间socket均建立成功才算成功,才能进行数据块的写入操作; 
5. 每个DataNode接收完某个块会向NameNode进行报告; 
6. 如果一个文件的每个块的三个副本中,只要有一个副本报告给NameNode,客户端发送消息给NameNode确认文件完成;

MapReduce  并行计算框架

主从结构,一个JobTracker和多个TaskTracker

JobTracker:1作业调度2分配任务、监控任务执行进度3监控TaskTracker的状态 
TaskTracker:1、执行任务 2、汇报任务状态 

1) MapReduce是由一个单独运行在主节点上的JobTacker和运行在每个集群从节点上的TaskTracker共同组成的。JobTacker负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。总结点监控他们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。

2)  MapReduce模型原理是利用一个输入的key/value对集合来产生一个输出的key/value队集合,使用Map和Reduce函数来计算

3)  MapReduce将大数据分解为成百上千小数据集,每个数据集分别由集群中的一个节点(一般是一台计算机)并行处理生成中间结果,然后这些中间结果又由大量的节点合并,形成最终结果。

 

hadoop集群三种模式

本地模式(单机模式),伪分布模式,全分布式模式

单机模式:没有守护进程,所有东西运行在jvm上,使用的是本地文件系统, 没有dfs,使用开发过程中运行mapreduce程序,是使用最少的一种模式

伪分布模式:在一台服务器上模拟集群安装环境, 即多个进程运行在一个服务器上;使用与开发和测试环境,所有 守护进程在同一台机子上

全分布式模式:N台主机组成一个Hadoop集群,Hadoop守护进程运行在每一台主机上;分布式模式中,主节点和从节点会分开

网络连接方式

host-only:宿主机(windows)与客户机(虚拟机中的客户机)单独组网,与主机当前的网络是隔离的

bridge:宿主机和客户机网络是连接的,在同一个局域网中,可以相互访问

NAT(network address translation): 虚拟机不占用主机所在局域网ip,通过使用主机的NAT功能访问区域网和互联网,此种方式虚拟机不用设置静态ip,只需要使用DHCP功能自动获取ip即可(绝大多数上网使用此种方式)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!