大数据框架-Hadoop

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

大数据框架-Hadoop

1.什么是大数据

大数据是指由传统数据处理工具难以处理的规模极大、结构复杂或速度极快的数据集合。这些数据集合通常需要使用先进的计算和分析技术才能够处理和分析因此大数据技术包括了大数据存储、大数据处理和大数据分析等方面的技术和工具。

大数据的特点包括以下几个方面

  1. 规模大数据集合通常包含数千亿、数万亿甚至更多的数据远远超过传统数据处理工具的处理能力。
  2. 结构复杂数据集合通常包含多种类型的数据包括结构化、半结构化和非结构化数据这些数据通常需要经过清洗和转换才能进行处理。
  3. 速度快数据集合通常包含实时或准实时产生的数据需要使用实时处理技术进行处理和分析。
  4. 价值高数据集合通常包含有价值的信息可以用于支持业务决策、优化运营和发现新的商业机会等。

大数据技术包括了分布式存储系统如Hadoop、Spark等、分布式计算框架、数据挖掘和机器学习算法、实时数据流处理技术等多个方面是数据科学、人工智能等领域的重要支撑。

2.Hadoop基本概念

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统 Distributed File System其中一个组件是HDFSHadoop Distributed File System。HDFS有高容错性的特点并且设计用来部署在低廉的low-cost硬件上而且它提供高吞吐量high throughput来访问应用程序的数据适合那些有着超大数据集large data set的应用程序。HDFS放宽了relaxPOSIX的要求可以以流的形式访问streaming access文件系统中的数据。Hadoop的框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储而MapReduce则为海量的数据提供了计算。

Hadoop 是一个开源的分布式计算框架用于存储和处理大规模的结构化和非结构化数据。Hadoop 由两个主要组件组成分布式文件系统 HDFS 和分布式计算框架 MapReduce。

HDFS 是一个分布式文件系统可以将大规模数据集合分布式地存储在多个节点上。每个节点都可以存储数据的一部分并提供数据备份和恢复机制以保证数据的可靠性和可用性。HDFS 的主要优势在于可以容纳超大规模的数据同时也具有高可靠性和高可扩展性。

MapReduce 是一种分布式计算框架可以将大规模数据集合分布式地处理和分析。MapReduce 模型的核心思想是将大规模数据集合拆分成多个小的数据块然后将这些小数据块分发到不同的计算节点上进行计算。这些计算节点将计算结果合并起来形成最终的结果。MapReduce 模型的优势在于可以高效地处理大规模数据集合并且具有高可靠性和高可扩展性。

除了 HDFS 和 MapReduceHadoop 还提供了一些其他的组件如 YARN资源调度和管理系统、HBaseNoSQL 数据库、Spark分布式计算框架等。这些组件共同构成了 Hadoop 生态系统可以支持更加复杂和多样化的数据处理需求。

简单理解

  • HDFS-使用分布式文件系统存储数据
  • MapReduce-类似于JAVA中Stream流处理

Hadoop是一个开源的分布式计算框架用于处理大数据集。它的设计目标是能够在大量的计算机集群上运行以处理海量数据。以下是一个类比来解释Hadoop的工作原理

假设你需要清理你的房子但你只有一把扫帚和一个垃圾桶而你的房子很大你一个人清理可能需要很长时间。但是如果你有很多朋友来帮忙每个人都可以拿一把扫帚和垃圾桶分别清理不同的区域然后将垃圾桶中的垃圾倒入一个大垃圾桶中那么清理的速度就会快很多。

你就是Hadoop的用户你需要处理的是大量的数据。而你的朋友们就是Hadoop的集群每个节点都可以处理数据的一部分。Hadoop会将数据分成若干份然后分配给不同的节点处理。处理完成后每个节点都会将它们的处理结果传回一个中心节点中心节点将这些结果组合起来形成最终的结果。

Hadoop的工作原理就像是你和你的朋友们清理房子一样每个节点都可以独立地处理一部分数据然后将结果合并起来形成最终结果。这种分布式处理方式使得Hadoop可以处理大量的数据并且具有高可靠性和可扩展性。

3.Hadoop基本核心组件

简述

Hadoop 集群包含一个 NameNodeNameNode作为主服务器管理文件系统的命名空间和客户端对文件的访问]操作 和大量 DataNodeDataNode 通常以机架的形式组织机架通过一个交换机将所有系统连接起来使用DataNode集群管理、存储的数据。

img

NameNode

单独机器上运行的软件它负责管理文件系统名称空间和控制外部客户机的访问。

NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件这里是 EditLog将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本以防文件损坏或 NameNode 系统丢失

在Hadoop分布式文件系统HDFS中NameNode可以被看作是一个“大管家”它管理整个HDFS的文件和数据块负责分配和协调各个数据节点的存储任务。当客户端需要读写数据时需要向NameNode查询相应数据块的位置信息然后才能与对应的数据节点进行通信。因此NameNode可以理解为一个控制中心负责管理整个HDFS系统确保数据的可靠性和高效性。可以将HDFS比作一个“大数据仓库”存储着各种类型的数据如日志、文本、图片、视频等等。这些数据被分成多个数据块并存储在不同的数据节点上而NameNode则维护了每个数据块的位置信息以及对应的数据节点它是HDFS的“头脑”和“心脏”。当客户端需要读写数据时需要先向NameNode查询相应数据块的位置信息然后才能与对应的数据节点进行通信。因此NameNode的性能和可靠性对整个HDFS的运行效率和稳定性有着至关重要的作用。同时为了保证数据的可靠性NameNode还会自动触发数据块的复制过程以保证数据不会因为数据节点的故障而丢失。

Secondary NameNode

Secondary NameNode是Hadoop中的一个辅助节点它并不是NameNode的备用节点而是用来帮助NameNode进行检查点的生成和管理。在Hadoop中NameNode负责管理文件系统的元数据包括文件名、目录结构、权限等信息而这些信息存储在内存中一旦NameNode发生故障数据就会丢失。为了避免这种情况Hadoop引入了Secondary NameNode它定期从NameNode中获取元数据信息并生成一个检查点将元数据信息存储到磁盘上。当NameNode发生故障时可以从这个检查点中恢复数据避免数据的永久性丢失。需要注意的是Secondary NameNode并不是NameNode的备用节点它只是用来生成检查点的辅助节点。当NameNode发生故障时需要使用其他的方式来恢复数据例如使用NameNode的备份节点或者使用数据复制等技术来保证数据的可靠性。

可以将Secondary NameNode比喻成一个“数据备份助手”它可以帮助Hadoop的NameNode定期备份元数据信息防止NameNode故障导致数据的永久性丢失。就像我们平时使用电脑一样我们会将重要的文件备份到其他存储介质中以备不时之需。Secondary NameNode在Hadoop中的作用就类似于这个备份过程。

DataNode

在Hadoop分布式文件系统HDFS中DataNode是指存储实际数据块的节点也可以被称为数据节点。它们是HDFS中的工作节点负责存储和管理文件系统中的实际数据。DataNode节点通常被安装在普通服务器上它们通过网络与NameNode节点通信并按照NameNode节点的指令进行数据的读写操作。DataNode节点上的存储空间被划分成多个数据块每个数据块大小通常为64MB或128MB。当客户端向HDFS写入数据时数据会被切分成多个数据块并且每个数据块会存储在不同的DataNode节点上。同样地当客户端需要读取数据时需要向NameNode查询相应数据块的位置信息然后才能与对应的DataNode节点进行通信获取数据。DataNode节点不仅负责数据的存储还负责数据的复制和数据块的恢复。当DataNode节点失效时NameNode会自动将该节点上的数据块进行复制以保证数据的可靠性和可用性。同时当DataNode节点上的某个数据块损坏或丢失时HDFS还可以通过其它DataNode节点上的备份数据块进行恢复。

DataNode 就像是一家公司的库房存储着公司的货物而这些货物又被复制到了多个仓库中以实现货物的备份和冗余。同时每个库房都会定期向公司的总部汇报自己的存货情况和库存状态当总部检测到某个库房出现问题时会将该库房的货物转移到其他仓库中确保货物不会丢失。就像 Hadoop 中的 DataNode 一样它们都是存储数据的节点负责数据的存储和备份同时也定期向主节点汇报自己的状态信息以确保数据的完整性和可用性。

YARN

Hadoop YARNYet Another Resource Negotiator是Hadoop生态系统中的一种资源管理框架用于管理Hadoop集群中的资源和作业调度。

  1. 资源管理就像调度中心要负责分配工人和机器一样YARN要负责分配Hadoop集群中的计算资源包括内存、CPU等等以保证每个任务都能够获得足够的资源来运行。
  2. 作业调度就像调度中心要安排任务的执行顺序一样YARN也要根据任务的优先级和依赖关系来安排任务的执行顺序以确保整个工厂的生产效率和质量。
  3. 多计算框架支持就像调度中心可以调度不同类型的任务一样YARN也可以支持不同的计算框架例如MapReduce、Spark、Flink等等以满足不同的业务需求。
  4. 高可靠性就像调度中心要处理机器故障和工人离职一样YARN也要处理Hadoop集群中的节点故障和资源泄漏等问题以确保整个工厂的生产效率和质量。

可以将Hadoop集群看作一个大型的工厂这个工厂有很多的工人和机器同时也有很多的任务需要完成。YARN就像是这个工厂的调度中心它负责分配工人和机器并安排任务的执行顺序以保证整个工厂的生产效率和质量

MapReduce

Hadoop MapReduce是Hadoop框架中用于分布式处理大数据的一种编程模型和计算引擎。MapReduce的核心思想是将大数据集分成若干个小数据块并分配给多个计算节点进行处理。每个节点都可以独立地处理数据块然后将结果返回给中心节点中心节点将这些结果组合起来形成最终结果。MapReduce的处理过程可以分为两个阶段Map阶段和Reduce阶段。在Map阶段中Hadoop会将输入数据集分割成若干个小数据块然后分配给多个Map任务并行处理。每个Map任务会对自己分配到的数据块进行处理生成若干个键值对这些键值对会被传递给Reduce任务。在Reduce阶段中Hadoop会将Map任务生成的键值对按照键进行排序并将具有相同键的值聚合在一起。然后将这些聚合后的键值对分配给多个Reduce任务并行处理。每个Reduce任务会对自己分配到的键值对进行处理并生成最终的输出结果。MapReduce模型的优点在于可以充分利用集群中的计算资源将大数据集分割成若干个小数据块进行并行处理提高处理速度。同时MapReduce模型可以自动处理节点故障和数据丢失等问题具有高可靠性和可扩展性。

MapReduce就像是一个工厂生产线它可以处理非常大的数据集。这个生产线有两个工作阶段Map阶段和Reduce阶段。

在Map阶段生产线接收原材料大数据集然后将其分割成许多小块每个小块被交给一个工人进行加工。这些工人会对每个小块进行处理将原始数据转化成键值对然后将这些键值对传递给下一个阶段Reduce阶段。

在Reduce阶段生产线接收许多键值对并将它们按照键进行分组和排序。然后这些分组的键值对被交给一些工人进行最终的加工生成最终的输出结果。

就像工厂生产线一样MapReduce可以同时处理多个数据块这样可以加快处理速度。而且如果有工人出现故障生产线可以自动重新分配任务保证处理的顺利进行。

个人感觉类似于JAVA中Stream流处理Map映射数据Reduce处理逻辑业务数据。

Hive

Hive是一个基于Hadoop的数据仓库系统它提供了一种类似于SQL的查询语言称为HiveQL可以使开发人员和数据分析师使用SQL语言来查询和分析存储在Hadoop分布式文件系统HDFS中的大数据。Hive将SQL语句转换为MapReduce作业并通过Hadoop执行这些作业来处理和分析数据。

Hive还提供了数据规范化、数据集成和数据访问控制等高级功能使得开发人员可以更轻松地在大数据平台上进行数据分析和数据挖掘。Hive还支持外部表和分区表可以让用户更灵活地处理和管理数据。同时Hive还可以与其他Hadoop生态系统组件如HBase和Spark等进行集成。

更多大数据岗位实际使用Hive写SQL而不是MapReduce

4.总结

大数据通过分布式文件系统来存储大量数据同时利用分布式计算来高效地处理数据并提供数据采集、预处理、分析和可视化等服务

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Hadoop