Hadoop 是基于 Java 语言开发的,它允许在由大量普通计算机(商品硬件)组成的集群上对大规模数据进行分布式处理。其核心设计理念是将数据分散存储在多个节点上,并通过并行计算来处理这些数据,以实现高可靠性、高可扩展性和高效性。
课程简介
关键组件
Hadoop 分布式文件系统(HDFS):用于在集群中存储大规模的数据。它将数据分割成多个块,并分布存储在不同的节点上,同时提供了数据冗余和容错机制,确保数据的可靠性。
YARN(Yet Another Resource
Negotiator):负责集群资源的管理和调度。它为各种应用程序提供统一的资源管理和调度平台,使得不同类型的应用(如批处理、实时处理、交互式查询等)能够在同一个集群中高效运行。
MapReduce:是一种编程模型和计算框架,用于大规模数据集的并行处理。
主要特点
高可靠性:通过数据冗余和自动故障转移机制,确保数据在节点故障时不会丢失,保证系统的稳定运行。
高可扩展性:能够轻松地添加新的节点到集群中,以应对不断增长的数据量和计算需求,实现性能的线性扩展。
高效性:利用分布式计算和并行处理技术,将数据处理任务分布到多个节点上同时进行,大大提高了数据处理的效率。
低成本:基于普通的商品硬件构建集群,降低了硬件成本。同时,开源的特性也使得软件成本较低,适合大规模数据处理场景。
Hadoop与其他大数据处理框架有什么区别?
Hadoop:采用经典的主从架构,由 NameNode(主节点)管理元数据,DataNode(从节点)存储数据。MapReduce 计算框架也分为 JobTracker(主)和 TaskTracker(从),这种架构简单清晰,但在处理复杂工作流和资源管理的灵活性上相对较差。
Spark:基于内存的分布式计算框架,其架构包括 Driver Program 和 Executor。Driver Program 负责控制整个应用程序的执行,Executor 负责在各个节点上执行任务,能更高效地进行内存管理和任务调度,尤其适合迭代式计算和交互式查询。
Flink:架构上与 Spark 有相似之处,也有 JobManager(类似于 Spark 的 Driver)和 TaskManager(类似于 Spark 的 Executor)。Flink 的流计算架构更为轻量级和高效,能更好地处理无界流数据。
Hadoop:MapReduce 模型基于磁盘进行数据读写,虽然适合处理大规模批处理数据,但在处理实时性要求较高的数据时,由于磁盘 I/O 的限制,速度相对较慢。
Spark:将数据缓存到内存中,大大减少了磁盘 I/O,因此在处理迭代计算、交互式查询等场景时,速度比 Hadoop 快很多。例如,在机器学习算法中,多次迭代计算时 Spark 能显著提高效率。
Flink:在流计算方面性能卓越,它采用了基于事件时间的流处理模型,能精确地处理乱序数据和延迟数据,并且具有低延迟、高吞吐量的特点,在实时流数据处理场景中速度优势明显。
Hadoop:主要用于大规模批处理作业,如日志分析、数据仓库等。它能够处理海量的静态数据,将数据进行长期存储和定期处理。
Spark:适用于数据挖掘、机器学习、交互式查询等需要快速迭代和处理内存数据的场景。例如,在电商网站的用户行为分析中,Spark 可以快速对用户的点击、购买等行为数据进行分析,为推荐系统提供支持。
Flink:专注于流计算场景,如实时监控、金融交易实时处理、物联网数据处理等。例如,在股票交易系统中,Flink 可以实时处理股票的交易数据,对异常交易进行实时预警。
大数据hadoop技能要求
大数据hadoop需要学什么?

