hadoop必记知识点(1)

1.Hadoop是什么,解决什么问题?

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。它可以让使用者在普通的硬件上搭建起一个强大的计算集群。Hadoop的特点包括:高可靠性、高扩展性、高容错性、支持大数据和高并发等。Hadoop核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。其中,HDFS为分布式文件系统,负责数据存储;MapReduce为分布式计算模型,负责对数据进行处理和分析。

Hadoop主要解决的是大数据处理和分析的问题。传统的单机数据库或服务器在面对海量数据时,处理速度慢,扩展性差,而Hadoop通过分布式架构,可以将海量数据分散存储在多个节点上,并行处理,从而大幅提高处理速度和扩展性。同时,Hadoop还支持各种数据处理和分析模式,包括批处理、流处理、图处理等,可以满足各种复杂的数据需求。

2. Hadoop(Core)核心组件

Hadoop核心组件主要包括HDFS(Hadoop Distributed File System)和MapReduce。其中,HDFS为分布式文件系统,负责数据存储;MapReduce为分布式计算模型,负责对数据进行处理和分析。除此之外,YARN(Yet Another Resource Negotiator)也是一个重要的组件,负责资源的管理和调度。

3. Hadoop 1.x、2.x和3.x版本的区别

主要体现在以下几个方面:

架构差异:

Hadoop 1.x:采用的是经典的双节点架构,包括NameNode和DataNode。NameNode负责管理文件系统的元数据,而DataNode负责实际的数据存储和检索。此外,Hadoop 1.x中的MapReduce也采用了单独的架构,JobTracker负责调度和监控作业,而TaskTracker负责执行任务。这种架构在可扩展性和高可用性方面存在一些限制。

Hadoop 2.x:引入了YARN(Yet Another Resource Negotiator),将MapReduce和HDFS统一在同一个框架下。YARN负责资源的管理和调度,而MapReduce(即MRv1)负责数据的处理。这种架构提高了资源的利用率,改善了系统的扩展性和高可用性。

Hadoop 3.x:在2.x的基础上,进一步优化了YARN的性能,提高了资源利用率和系统吞吐量。同时,Hadoop 3.x还引入了一些新的功能和优化,如Erasure Code、SMB/CIFS支持等。

功能差异:

Hadoop 1.x:功能相对较为简单,主要支持批量数据处理。

Hadoop 2.x:除了支持批量数据处理外,还通过YARN支持了多种计算模型,如实时数据处理、图计算等。此外,Hadoop 2.x还引入了高可用性机制,提高了系统的稳定性和可靠性。

Hadoop 3.x:在2.x的基础上,进一步增强了系统的可用性和稳定性。同时,还引入了一些新的功能和优化,如提高了对大规模数据集的支持能力、优化了内存使用等。

性能差异:

Hadoop 1.x:由于架构和功能的限制,性能相对较低。

Hadoop 2.x:通过引入YARN和多种计算模型,提高了系统的性能和吞吐量。

Hadoop 3.x:在2.x的基础上,进一步优化了性能,提高了处理大规模数据集的能力。

兼容性差异:

Hadoop 1.x:应用程序需要针对1.x版本进行开发和优化。

Hadoop 2.x:向后兼容1.x版本的应用程序,同时支持新的计算模型和功能。

Hadoop 3.x:向后兼容2.x版本的应用程序,同时引入了新的功能和优化。

4. Hadoop生态圈组件及其作用

主要的组件:

  1. HDFS(Hadoop Distributed File System):它是一个分布式文件系统,用于存储大量数据。HDFS具有高容错性和高吞吐量,适合部署在低廉的硬件上。

  2. MapReduce:这是一个用于大规模数据处理的软件框架。它能够将复杂的处理任务分解成Map和Reduce两个步骤来执行。

  3. YARN(Yet Another Resource Negotiator):YARN是一个资源管理和调度平台,负责分配计算资源,管理和调度各种应用程序。

  4. HBase:它是一个非关系型分布式数据库,适合存储非结构化数据,常常作为Hadoop的一种补充,用于存储和查询大数据。

  5. Hive:它是一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。

  6. Pig:它是一套用于分析大量数据的工具,可以处理包括简单和复杂的逻辑在内的数据分析。

  7. Zookeeper:它是一个开源的分布式协调服务,用于维护配置信息,命名空间,提供分布式同步等。

  8. Spark:它是一个用于大规模数据处理的快速和通用引擎。Spark 提供了一个统一的解决方案,可以完成批处理、交互式查询、实时分析等任务。

9.Apache Flink 是 Hadoop 生态圈中的一个重要组件,它是一个开源的、用于处理大数据的流处理框架。Flink 可以有效地处理大规模数据流,提供高性能、高吞吐量、低延迟的数据处理能力。

5.Hadoop生态圈离线实时组件及其作用

离线批处理和实时处理。

  1. MapReduce:这是Hadoop生态圈的原始计算模型,主要用于离线批处理。MapReduce将任务划分为Map阶段和Reduce阶段,Map阶段负责读取数据和进行初步处理,Reduce阶段负责对Map阶段的输出进行进一步处理和聚合。虽然MapReduce可以处理实时数据,但由于其设计思想是基于磁盘的,因此不适用于对实时性要求较高的场景。

  2. Spark:这是Hadoop生态圈中的另一个重要组件,它是一个用于大规模数据处理的快速和通用引擎。Spark提供了基于内存的计算,可以完成批处理、交互式查询和实时分析等任务。Spark的实时计算能力比MapReduce更强,因为它支持流处理,可以实时处理数据并提供即时反馈。

  3. Apache Flink 是 Hadoop 生态圈中的一个重要组件,它是一个开源的、用于处理大数据的流处理框架。Flink 可以有效地处理大规模数据流,提供高性能、高吞吐量、低延迟的数据处理能力。
    Flink 的主要特点和作用包括:
    流处理 :Flink 是一个流处理框架,可以实时处理和分析大规模数据流,提供即时反馈和决策支持。
    批处理 :虽然 Flink 主要是一个流处理框架,但它也支持批处理。这意味着可以使用同一种框架来处理静态数据和动态数据。
    状态管理 :Flink 提供了一个状态管理机制,可以存储和管理流处理过程中的状态信息,如用户信息、设备信息等。
    窗口操作 :Flink 提供了窗口操作机制,可以对数据流进行分段处理,支持各种窗口类型和操作。
    实时监控 :Flink 提供了实时监控和故障恢复机制,可以监控系统的运行状态,及时发现和处理问题。
    分布式计算 :Flink 是一个分布式计算框架,可以部署在多台机器上,支持大规模数据的并行处理。
    SQL 和 Table API:Flink 提供了 SQL 和 Table API,可以方便地进行数据查询和处理。

相关推荐
Data跳动1 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1112 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq3 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq3 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈3 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
Java程序之猿3 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
清平乐的技术专栏3 小时前
Hive SQL 查询所有函数
hive·hadoop·sql
来一杯龙舌兰3 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
小白学大数据4 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
15年网络推广青哥4 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵