Hadoop学习笔记(一)

简介: Hadoop学习笔记(一)

Hadoop 简介

1.介绍

Hadoop 是阿帕奇基金会(Apache)开源的一款分布式系统基础架构。由以下几部分组成:HDFSMapReduceYARN 。它使用户可以快速简便的开发分布式程序去处理数据,而不需掌握过多的分布式知识以及底层实现逻辑。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

2.发展史

1) 02年由 Doug Cutting 开发了一款网络搜索引擎 Nutch ,这便是 Hadoop 的前身。

2) 03年到04年诞生了 GFSMap Reduce

3) 08年 Hadoop 创造了最快排序 1TB 数据的新世界纪录。Hive 成为了它的子项目。

4) 11年 Hadoop 1.0.0版本出现。

5) 13年到15年 Hadoop 2.x版本诞生并不断更新迭代。

6) 16年 Hadoop 进入3.x时代。

3.核心

分布式文件系统 HDFS ;分布式计算系统 MapReduce ;分布式资源管理系统 YARN更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

3.1 HDFS

核心(角色):NameNodeDataNode

作用:分布式文件存储

特点:高可靠性、高扩展性、高吞吐率。

副本可以保证高可靠性

原理:NameNode 负责管理存储所有的元数据信息(文件系统的目录信息、文件信息以及分块等信息)。DataNode 负责管理存储块文件。DataNode 会定时向 NameNode 报告自己的状态(比如磁盘空间、资源消耗、是死是活),可将此过程称为心跳。当客户端发起一次读或写的请求,请求先到达 NameNode ,它判断一下读写权限,再查找一个可用并适合的 DataNode ,然后向客户端返回该 DataNode 的相关信息。客户端拿到节点信息后与其交互,进行读或写操作。完成后客户端拿到对应结果(读取的数据或者写结果状态信息),最后向 NameNode 反馈结果。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

注意:HDFS 会将数据文件以指定的块大小拆分成数据块,并将数据块以副本的方式保存到不同的节点上。其中数据写入时采用的方式是先完成第一个副本,然后再将其复制到其他节点,保证一个节点出现异常,数据不会丢失。过程虽然复杂,但是用户无感知,所有的切分、容错、负载均衡等都悄悄的完成,使得用户只知道上传了一个文件或者读取了一个文件。

3.2 MapReduce

核心:Map(映射)、Reduce(归纳)

作用:大数据量计算

特点:简化并行应用开发,不需要关注并行计算底层实现,而是直接调用所提供的 API 即可。

原理:将输入的数据集切分为若干独立的数据块,由 map 任务以并行的方式处理。然后将 map 的输出先进性排序,然后再把结果输入 reduce 任务,由 reduce 任务来完成最终的统一处理。

注意:部署 Hadoop 集群时,通常计算节点和存储节点部署在同一节点,使作业优先调度到那些已经存储有数据的节点进行计算,这样可以大大节省数据传输消耗的带宽。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

3.3 YARN

来源:是为了解除 Hadoop1.x 中只能运行 MapReduce 框架的限制,将 MapReduce 框架中 Job Tracker 的资源管理和作业调度监控功能进行分离。

作用:为运行在 YARN 上的分布式应用程序提供统一的资源管理和调度

特点:Hadoop 集群在利用率、资源统一管理和数据共享等方面带来了极大便利;可以运行不同类型的作业:MapReduceSpark 等计算框架。

4.选择原因

首先当然是它开源,免费的原因(你懂得 ~)。其次就是社区活跃,参与的人超多,这样一来,在使用过程中有任何问题,随时可以找到解决办法,而不需死扣晦涩的文档。还有它适用于大数据分布式存储和计算的各个场景,满足很多人的需求。最后就是它的成熟性,发展的十余年间,被各大企业所验证。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

5.版本

1) 社区版(官方,免费,但可能需要自己再研发额外功能)

2) Cloudera CDH (目前公司使用最多,安装、配置、升级等简便,文档完善,与 Spark 结合好,但是不开源,而且和社区版在某些功能上有些出入)

3) Hortonworks HDP (原装 Hadoop ,开源,版本与社区版一致,支持 Tez,集成了开源监控方案 GangliaNagios,但是安装升级等比较繁琐,需要费点功夫)

相关文章
|
6月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.19 安装Kafka
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
178 0
Hadoop学习笔记(HDP)-Part.19 安装Kafka
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
235 0
Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
|
6月前
|
分布式计算 资源调度 Hadoop
安装hadoop学习笔记
安装hadoop学习笔记
66 0
安装hadoop学习笔记
|
6月前
|
分布式计算 资源调度 Hadoop
Hadoop学习笔记(HDP)-Part.18 安装Flink
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
241 2
Hadoop学习笔记(HDP)-Part.18 安装Flink
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
137 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
201 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
6月前
|
分布式计算 Hadoop 关系型数据库
Hadoop学习笔记(HDP)-Part.10 创建集群
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
159 1
Hadoop学习笔记(HDP)-Part.10 创建集群
|
6月前
|
SQL 消息中间件 关系型数据库
Hadoop学习笔记(HDP)-Part.04 基础环境配置
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
106 1
|
6月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.20 安装Flume
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
104 0
Hadoop学习笔记(HDP)-Part.20 安装Flume
|
6月前
|
分布式计算 资源调度 Java
Hadoop学习笔记(HDP)-Part.17 安装Spark2
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
90 0
Hadoop学习笔记(HDP)-Part.17 安装Spark2

相关实验场景

更多