什么是 Hadoop?简介, Archi结构、生态系统、组件
什么是 Hadoop?
Apache Hadoop 是一个开源软件框架,用于开发在分布式计算环境中执行的数据处理应用程序。
使用 HADOOP 构建的应用程序运行在分布于商用计算机集群的大型数据集上。商用计算机价格低廉且广泛可用。它们主要用于以低成本实现更大的计算能力。
与个人计算机系统的本地文件系统中驻留的数据类似,在 Hadoop 中,数据驻留在分布式文件系统中,称为 Hadoop 分布式文件系统. 处理模型基于 “数据局部性” 计算逻辑被发送到包含数据的集群节点(服务器)的概念。这种计算逻辑只不过是用高级语言编写的程序的编译版本,例如 Java。这样的程序处理存储在 Hadoop HDFS.
你知道吗? 计算机集群由一组多个处理单元(存储磁盘+处理器)组成,它们相互连接并作为单一系统运行。
Hadoop 生态系统和组件
下图展示了 Hadoop 生态系统中的各种组件:
Apache Hadoop 由两个子项目组成 -
- Hadoop MapReduce: MapReduce 是一种计算模型和软件框架,用于编写在 Hadoop 上运行的应用程序。这些 MapReduce 程序能够在大型计算节点集群上并行处理大量数据。
- 高密度文件系统 (Hadoop分布式文件系统): HDFS 负责 Hadoop 应用程序的存储部分。MapReduce 应用程序使用来自 HDFS 的数据。HDFS 创建数据块的多个副本并将它们分布在集群中的计算节点上。这种分布可实现可靠且极其快速的计算。
尽管 Hadoop 以 MapReduce 及其分布式文件系统 HDFS 而闻名,但该术语也用于一系列相关项目,这些项目属于分布式计算和大规模数据处理范畴。其他与 Hadoop 相关的项目 阿帕奇 包括 Hive、HBase、Mahout、Sqoop、Flume 和 ZooKeeper。
Hadoop的 Archi质地
Hadoop 有一个主从 Archi数据存储和分布式数据处理的结构 映射简化 和 HDFS 方法。
名称节点:
NameNode 代表命名空间中使用的每个文件和目录
数据节点:
DataNode 可帮助您管理 HDFS 节点的状态,并允许您与块进行交互
主节点:
主节点允许您使用 Hadoop MapReduce 进行数据并行处理。
从节点:
从属节点是 Hadoop 集群中的附加机器,可用于存储数据以进行复杂的计算。此外,所有从属节点都配有 Task Tracker 和 DataNode。这允许您分别与 NameNode 和 Job Tracker 同步进程。
在 Hadoop 中,可以在云端或本地设置主系统或从系统
Hadoop 的功能
• 适用于大数据分析
由于大数据本质上往往是分布式和非结构化的,因此 HADOOP 集群最适合分析大数据分析。由于流向计算节点的是处理逻辑(而不是实际数据),因此消耗的网络带宽较少。这个概念被称为 数据局部性概念 这有助于提高基于 Hadoop 的应用程序的效率。
• 可扩展性
HADOOP 集群可通过添加其他集群节点轻松扩展至任意程度,从而支持大数据的增长。此外,扩展不需要修改应用程序逻辑。
• 容错
HADOOP 生态系统具有将输入数据复制到其他集群节点的功能。这样,如果集群节点发生故障,数据处理仍可使用存储在另一个集群节点上的数据继续进行。
Hadoop 中的网络拓扑
网络拓扑(排列)会影响 Hadoop 集群在规模增长时的性能。除了性能之外,还需要关注高可用性和故障处理。为了实现这一点,Hadoop 集群的形成利用了网络拓扑。
通常,网络带宽是组建任何网络时要考虑的重要因素。然而,由于测量带宽可能很困难,在 Hadoop 中,网络以树的形式表示,并且该树的节点之间的距离(跳数)被视为 Hadoop 集群形成的重要因素。在这里,两个节点之间的距离等于它们与最近共同祖先的距离之和。
Hadoop 集群由数据中心、机架和实际执行作业的节点组成。这里,数据中心由机架组成,机架由节点组成。进程可用的网络带宽取决于进程的位置。也就是说,随着我们远离-
- 同一节点上的进程
- 同一机架上的不同节点
- 同一数据中心不同机架上的节点
- 不同数据中心的节点