Hadoop概述

Hadoop是一个由Apache基金会所开发的分布式系统基础架构

Hadoop以一种可靠、高效、可伸缩的方式对大量数据存储和分析计算。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。

Hadoop生态圈

Hadoop三大发行版本

1)Apache Hadoop

官网地址:http://hadoop.apache.org/releases.html

下载地址:https://archive.apache.org/dist/hadoop/common/

2)Cloudera Hadoop

官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html

下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/

3)Hortonworks Hadoop

官网地址:https://hortonworks.com/products/data-center/hdp/

下载地址:https://hortonworks.com/downloads/#data-platform

核心组件

1.hadoop通用组件 - Hadoop Common

包含了其他hadoop模块要用到的库文件和工具

2.分布式文件系统 - Hadoop Distributed File System (HDFS)

运行于通用硬件上的分布式文件系统,高吞吐,高可靠

3.资源管理组件 - Hadoop YARN

于2012年引入的组件,用于管理集群中的计算资源并在这些资源上调度用户应用。

4.分布式计算框架 - Hadoop MapReduce

用于处理超大数据集计算的MapReduce编程模型的实现。

生态层级

分层 核心组件 作用
数据采集层 Flume、Sqoop、Kafka 采集 / 同步异构数据源
存储层 HDFS、HBase 存储海量结构化 / 非结构化数据
计算层 MapReduce、Spark、Flink 离线 / 实时计算
分析层 Hive、Pig、Impala 数据仓库 / 即席查询
调度 / 管理 YARN、ZooKeeper、Oozie 资源调度 / 集群管理

Hadoop关联项目

  1. Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeepr、Sqoop和Hcatalog等的集中管理。也是5个顶级hadoop管理工具之一。

  2. Avro™:数据序列化系统

  3. hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

  4. Mahout 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。

  5. Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。

  6. Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab开源的类Hadoop MapReduce的通用并行框架,拥有MapReduce所具有的优点;但是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

  7. Tez 是 Apache 最新的支持 DAG 作业的开源计算框架。它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。Hadoop传统上是一个大量数据批处理平台。但是,有很多用例需要近乎实时的查询处理性能。还有一些工作则不太适合MapReduce,例如机器学习。Tez的目的就是帮助Hadoop处理这些用例场景。

  8. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

  9. HBase是一个分布式的、高可靠性、高性能、面向列、可伸缩的分布式存储系统,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。

hadoop 3.x 新特性

1、将默认的最低jdk从7升级到8

2、纠删码可以将3倍副本占据的空间压缩到1.5倍,并保持3倍副本的容错。由于在读取数据的时候需要进行额外的计算,用于存储使用不频繁的数据

3、通过扩展YARN的资源类型,支持CPU和内存之外的其他资源,如GPU、FPGA、软件许可证、本地存储等。

4、重写了hadoop中的shell脚本,修复了很多长期存在的bug并添加了新特性。有一些改进兼容老版本,有一些不兼容。

5、对map阶段的输出收集器增加了本地实现,对于洗牌密集型工作,可以提高30%以上的性能。

6、hadoop2.x中NameNode的HA包含一个active的NameNode和一个Standby的NameNode。解决了系统中NameNode的单点故障问题。在hadoop3中允许多个standby状态的NameNode以达到更高级别容错的目的。

7、以前,多个Hadoop服务的默认端口位于Linux临时端口范围(32768-61000)。 这意味着在启动时,由于与另一个应用程序的冲突,服务有时无法绑定到端口。这些冲突的端口已移出临时范围,影响NameNode,Secondary NameNode,DataNode和KMS。

8、Hadoop现在支持与Microsoft Azure Data Lake和Aliyun对象存储系统的集成,作为替代Hadoop兼容的文件系统。

9、单个DataNode管理多个磁盘。 在正常写入操作期间,磁盘将被均匀填充。 但是,添加或替换磁盘可能会导致DataNode内的严重数据偏斜。 旧的HDFS平衡器不能处理,旧的HDFS平衡器处理DN之间而非内部的数据偏斜。

10、对Hadoop守护进程以及MapReduce任务的堆管理做了一系列更改。现在可以根据主机的内存大小进行自动调整,并且不推荐使用HADOOP_HEAPSIZE变量。简化了map和reduce任务堆空间的配置,在任务中不再需要以java选项的方式进行指定

11、为Amazon S3存储的S3A客户端添加了一个可选功能:能够将DynamoDB表用于文件和目录元数据的快速一致存储。

12、HDFS基于路由器的联邦添加了一个RPC路由层,该层提供多个HDFS命名空间的联合视图。 这与现有的ViewFs和HDFS联合功能类似,不同之处在于安装表由路由层而不是客户端在服务器端进行管理, 简化了对现有HDFS客户端对联邦群集的访问。

相关文章:

HDFS _hdfs csdn-CSDN博客

HDFS完全分布式搭建-CSDN博客

HDFS角色分析-CSDN博客

Hadoop集群的安全模式_namenode怎么退出安全模式-CSDN博客

HDFS-JavaAPI-CSDN博客

HDFS读写流程与Federation-CSDN博客

NameNode HA(高可用)-CSDN博客

ZooKeeper-CSDN博客

Zookeeper集群搭建-CSDN博客

MapReduce-CSDN博客

Yarn资源调度器-CSDN博客

实战:单词数量统计案例-CSDN博客

Hadoop序列化与反序列化-CSDN博客

实战:温度分析-CSDN博客

实战:好友推荐-CSDN博客

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐