zoukankan      html  css  js  c++  java
  • 想要面试大数据工作的50道必看题

    摘要:是否对面试官在 Hadoop 面试中可能会问的所有问题感到不知所措?现在是时候通过一系列涵盖 Hadoop 框架不同方面的 Hadoop 面试问题了。

    本文分享自华为云社区《2021 年你必须准备的 50 大 Hadoop 面试问题》,作者:Donglian Lin 。

    在本文中,我们将涵盖所有常见问题,这些问题将帮助您通过最佳解决方案在面试中胜出。但在此之前,让我告诉您对大数据和 Hadoop 专家的需求是如何持续增长的。

    • 美国大数据 Hadoop 开发人员的平均工资为 144,000 美元- Indeed.com
    • 印度大数据 Hadoop 开发人员的平均工资为 1600,000 卢比-Indeed.com
    • 英国的平均年薪为 £66,250 – £66,750- itjobswatch.co.uk

    我想提请您注意大数据革命。早些时候,组织只关心运营数据,不到整体数据的 20%。后来,他们意识到分析整个数据会给他们更好的业务洞察力和决策能力。那是雅虎、Facebook、谷歌等巨头开始采用 Hadoop 和大数据相关技术的时候。事实上,现在五分之一的公司正在转向大数据分析。因此,对大数据 Hadoop 工作的需求正在上升。因此,如果您想提升自己的职业生涯,Hadoop 和 Spark 正是您需要的技术。无论是新人还是有经验的人,这总是会给您一个良好的开端。

    准备好这些顶级 Hadoop 面试问题,以便在新兴的大数据市场中占据优势,全球和本地企业,无论大小,都在寻找优质的大数据和 Hadoop 专家。这份 Hadoop 顶级面试问题的权威列表将带您了解有关Hadoop 集群、 HDFS、 MapReduce、Pig、Hive、HBase的问题和答案 。这个博客是通往下一个 Hadoop 工作的门户。

    • 以下是我们将要讨论的问题的大纲:
    • 基本的 Hadoop 面试问题
    • Hadoop HDFS 面试问题
    • Hadoop MapReduce 面试题
    • Apache Pig 面试问题
    • Apache Hive 面试问题
    • Apache HBase 面试题
    • Apache Spark 面试问题
    • Oozie & Zookeeper 面试问题

    如果您在 Hadoop 面试中遇到一些困难的问题,并且仍然对最佳答案感到困惑,请将这些问题放在下面的评论部分。我们很乐意回答他们。

    1、关系型数据库和HDFS的基本区别是什么?

    以下是 HDFS 和关系数据库之间的主要区别:

    2. 解释“大数据”,大数据的五个 V 是什么?

    “大数据”是大量复杂数据集的术语,这使得使用关系数据库管理工具或传统数据处理应用程序难以处理。捕获、管理、存储、搜索、共享、传输、分析和可视化大数据很困难。大数据已成为企业的机遇。现在,他们可以成功地从数据中获取价值,并且凭借增强的业务决策能力,将比竞争对手具有明显的优势。

    ♣ 提示:在此类问题中谈论 5V 将是一个好主意,无论是否专门询问!

    • 卷:卷表示以指数速率增长的数据量,即以 PB 和 Exabytes 为单位。
    • 速度:速度是指数据增长的速度,非常快。今天,昨天的数据被认为是旧数据。如今,社交媒体是数据增长速度的主要贡献者。
    • 多样性:多样性是指数据类型的异质性。换句话说,收集到的数据有多种格式,如视频、音频、csv 等。因此,这些不同的格式代表了数据的多样性。
    • 真实性:真实性是指由于数据的不一致和不完整而对可用数据存疑或不确定的数据。可用数据有时会变得混乱并且可能难以信任。大数据形式多样,质量和准确性难以控制。数量往往是数据缺乏质量和准确性的原因。
    • 价值:获得大数据固然很好,但除非我们能将其转化为价值,否则它毫无用处。通过将其转化为价值,我的意思是,它是否增加了组织的利益?致力于大数据的组织是否实现了高 ROI(投资回报率)?除非它通过处理大数据来增加他们的利润,否则它是没有用的。

    3.什么是Hadoop及其组件。

    当“大数据”成为一个问题时,Apache Hadoop 演变为它的解决方案。Apache Hadoop 是一个框架,它为我们提供各种服务或工具来存储和处理大数据。它有助于分析大数据并从中做出业务决策,这是使用传统系统无法高效和有效地完成的。

    ♣ 提示:现在,在讲解Hadoop的同时,还要讲解一下Hadoop的主要组成部分,即:

    • 存储单元——HDFS(NameNode、DataNode)
    • 处理框架——YARN(ResourceManager、NodeManager)

    4. 什么是 HDFS 和 YARN?

    HDFS(Hadoop分布式文件系统)是Hadoop的存储单元。它负责在分布式环境中将不同类型的数据存储为块。它遵循主从拓扑。

    ♣ 提示:建议对HDFS组件也进行说明即

    • NameNode: NameNode 是分布式环境中的主节点,它维护存储在 HDFS 中的数据块的元数据信息,如块位置、复制因子等。
    • DataNode: DataNode 是从节点,负责在 HDFS 中存储数据。NameNode 管理所有的 DataNode。

    YARN(Yet Another Resource Negotiator)是 Hadoop 中的处理框架,它管理资源并为进程提供执行环境。

    ♣ 提示:同理,就像我们在 HDFS 中所做的那样,我们也应该解释一下 YARN 的两个组件:

    • ResourceManager:它接收处理请求,然后相应地将请求的部分传递给相应的 NodeManager,在那里进行实际处理。它根据需要为应用程序分配资源。
    • NodeManager: NodeManager 安装在每个DataNode 上,负责在每个DataNode 上执行任务。

    5. 告诉我各种 Hadoop 守护进程及其在 Hadoop 集群中的作用。

    通常通过首先解释 HDFS 守护程序,即 NameNode、DataNode 和辅助 NameNode,然后转到 YARN 守护程序,即 ResorceManager 和 NodeManager,最后解释 JobHistoryServer 来解决这个问题。

    • NameNode:它是主节点,负责存储所有文件和目录的元数据。它有关于块的信息,它创建一个文件,以及这些块在集群中的位置。
    • Datanode:它是包含实际数据的从节点。
    • 辅助 NameNode:它会定期将更改(编辑日志)与 NameNode 中存在的 FsImage(文件系统映像)合并。它将修改后的 FsImage 存储到持久化存储中,可以在 NameNode 失败的情况下使用。
    • ResourceManager:它是管理资源和调度运行在 YARN 之上的应用程序的中央机构。
    • NodeManager:它运行在从机上,负责启动应用程序的容器(应用程序在其中执行它们的部分),监控它们的资源使用情况(CPU、内存、磁盘、网络)并将这些报告给 ResourceManager。
    • JobHistoryServer:它在Application Master 终止后维护有关MapReduce 作业的信息。

    Hadoop HDFS 面试问题

    6. 将 HDFS 与网络附加存储 (NAS) 进行比较。

    本题先解释一下NAS和HDFS,然后比较它们的特点如下:

    • 网络附加存储 (NAS) 是连接到计算机网络的文件级计算机数据存储服务器,提供对异构客户端组的数据访问。NAS 可以是提供存储和访问文件服务的硬件或软件。而 Hadoop 分布式文件系统 (HDFS) 是使用商品硬件存储数据的分布式文件系统。
    • 在 HDFS 中,数据块分布在集群中的所有机器上。而在 NAS 中,数据存储在专用硬件上。
    • HDFS 旨在与 MapReduce 范式一起使用,其中将计算移至数据。NAS 不适合 MapReduce,因为数据与计算分开存储。
    • HDFS 使用的是具有成本效益的商品硬件,而 NAS 是包含高成本的高端存储设备。

    7. 列出 Hadoop 1 和 Hadoop 2 的区别。

    这是一个重要的问题,在回答这个问题时,我们必须主要关注两点,即被动 NameNode 和 YARN 架构。

    • 在 Hadoop 1.x 中,“NameNode”是单点故障。在 Hadoop 2.x 中,我们有主动和被动的“NameNodes”。如果主动“NameNode”出现故障,则被动“NameNode”负责。因此,可以在 Hadoop 2.x 中实现高可用性。
    • 此外,在 Hadoop 2.x 中,YARN 提供了一个中央资源管理器。使用 YARN,您现在可以在 Hadoop 中运行多个应用程序,所有应用程序都共享一个公共资源。MRV2 是一种特殊类型的分布式应用程序,它在 YARN 之上运行 MapReduce 框架。其他工具也可以通过 YARN 执行数据处理,这在 Hadoop 1.x 中是一个问题。

    8. 什么是主动和被动“NameNodes”?

    在 HA(高可用性)架构中,我们有两个 NameNode——主动“NameNode”和被动“NameNode”。

    • 活动的“NameNode”是在集群中工作和运行的“NameNode”。
    • 被动的“NameNode”是备用的“NameNode”,与主动的“NameNode”具有相似的数据。

    当主动“NameNode”出现故障时,被动“NameNode”会替换集群中的主动“NameNode”。因此,集群永远不会没有“NameNode”,因此它永远不会失败。

    9. 为什么在Hadoop集群中频繁删除或添加节点?

    Hadoop 框架最吸引人的特性之一是它对商品硬件的利用。然而,这会导致 Hadoop 集群中频繁出现“DataNode”崩溃。Hadoop 框架的另一个显着特点是随着数据量的快速增长而易于扩展。由于这两个原因,Hadoop 管理员最常见的任务之一就是在 Hadoop 集群中启用(添加)和停用(移除)“数据节点”。

    10. 当两个客户端试图访问 HDFS 中的同一个文件时会发生什么?

    HDFS 仅支持独占写入。

    当第一个客户端联系“NameNode”打开文件进行写入时,“NameNode”授予客户端创建该文件的租约。当第二个客户端尝试打开同一个文件进行写入时,“NameNode”会注意到该文件的租用已经授予另一个客户端,并拒绝第二个客户端的打开请求。

    11. NameNode 如何处理 DataNode 故障?

    NameNode 定期从集群中的每个 DataNode 接收心跳(信号),这意味着 DataNode 运行正常。

    块报告包含 DataNode 上所有块的列表。如果一个 DataNode 发送心跳消息失败,则在特定时间段后将其标记为死亡。

    NameNode 使用之前创建的副本将死节点的块复制到另一个 DataNode。

    12. NameNode宕机了怎么办?

    NameNode 恢复过程包括以下步骤来启动和运行 Hadoop 集群:

    1. 使用文件系统元数据副本(FsImage)启动一个新的 NameNode。
    2. 然后,配置 DataNode 和客户端,以便它们可以确认这个新的 NameNode,即启动。
    3. 现在,新的 NameNode 将在完成加载最后一个检查点 FsImage(用于元数据信息)并从 DataNode 接收到足够的块报告后开始为客户端提供服务。

    而在大型 Hadoop 集群上,NameNode 恢复过程可能会消耗大量时间,这在日常维护的情况下成为更大的挑战。

    13. 什么是检查点?

    简而言之,“Checkpointing”是一个获取 FsImage 的过程,编辑日志并将它们压缩到一个新的 FsImage 中。因此,NameNode 可以直接从 FsImage 加载最终的内存状态,而不是重放编辑日志。这是一种更有效的操作,并减少了 NameNode 的启动时间。检查点由辅助 NameNode 执行。

    14、HDFS如何容错?

    当数据存储在 HDFS 上时,NameNode 将数据复制到多个 DataNode。默认复制因子为 3。您可以根据需要更改配置因子。如果 DataNode 出现故障,NameNode 会自动将数据从副本复制到另一个节点并使数据可用。这在 HDFS 中提供了容错能力。

    15. NameNode 和 DataNode 可以是商品硬件吗?

    这个问题的明智答案是,DataNodes 是像个人计算机和笔记本电脑一样的商品硬件,因为它存储数据并且需要大量使用。但是根据您的经验,您可以看出,NameNode 是主节点,它存储有关存储在 HDFS 中的所有块的元数据。它需要高内存(RAM)空间,因此NameNode需要是具有良好内存空间的高端机器。

    16. 为什么我们在有大量数据集的应用程序中使用 HDFS 而不是在有很多小文件时?

    与分布在多个文件中的少量数据相比,HDFS 更适合单个文件中的大量数据集。如您所知,NameNode 将有关文件系统的元数据信息存储在 RAM 中。因此,内存量会限制我的 HDFS 文件系统中的文件数量。换句话说,过多的文件会导致生成过多的元数据。而且,将这些元数据存储在 RAM 中将成为一项挑战。根据经验,文件、块或目录的元数据需要 150 个字节。

    17.在HDFS中如何定义“块”?Hadoop 1 和 Hadoop 2 中的默认块大小是多少?可以改变吗?

    块只是硬盘驱动器上存储数据的最小连续位置。HDFS 将每个存储为块,并将其分布在整个 Hadoop 集群中。HDFS 中的文件被分解为块大小的块,这些块作为独立的单元存储。

    • Hadoop 1 默认块大小:64 MB
    • Hadoop 2 默认块大小:128 MB

    是的,可以配置块。可以在 hdfs-site.xml 文件中使用 dfs.block.size 参数来设置 Hadoop 环境中块的大小。

    18. 'jps' 命令有什么作用?

    'jps' 命令帮助我们检查 Hadoop 守护进程是否正在运行。它显示了机器上运行的所有 Hadoop 守护进程,即 namenode、datanode、resourcemanager、nodemanager 等。

    19. 你如何定义 Hadoop 中的“机架感知”?

    机架感知是“NameNode”根据机架定义决定如何放置块及其副本的算法,以最大限度地减少同一机架内“DataNode”之间的网络流量。假设我们考虑复制因子 3(默认),策略是“对于每个数据块,一个机架中将存在两个副本,另一个机架中将存在第三个副本”。此规则称为“副本放置策略”。

    20. Hadoop 中的“推测执行”是什么?

    如果某个节点似乎执行任务的速度较慢,则主节点可以在另一个节点上冗余地执行同一任务的另一个实例。然后,首先完成的任务将被接受,另一个被杀死。这个过程称为“推测执行”。

    21. 如何重启“NameNode”或Hadoop中的所有守护进程?

    这个问题可以有两个答案,我们将讨论这两个答案。我们可以通过以下方法重启NameNode:

    1. 您可以使用 单独停止 NameNode 。/sbin /hadoop-daemon.sh 停止 namenode命令,然后使用. /sbin/hadoop-daemon.sh 启动 namenode 命令。
    2. 要停止和启动所有守护进程,请使用. /sbin/全部停止。sh 然后使用 . /sbin/start-all.sh 命令将首先停止所有守护进程,然后启动所有守护进程。

    这些脚本文件位于 Hadoop 目录内的 sbin 目录中。

    22. “HDFS Block”和“Input Split”有什么区别?

    “HDFS Block”是数据的物理划分,而“Input Split”是数据的逻辑划分。HDFS 将数据划分为块以将块存储在一起,而对于处理,MapReduce 将数据划分为输入拆分并将其分配给映射器函数。

    23. 说出 Hadoop 可以运行的三种模式。

    Hadoop可以运行的三种模式如下:

    1. 独立(本地)模式如果我们不配置任何东西,这是默认模式。在这种模式下,Hadoop 的所有组件,如 NameNode、DataNode、ResourceManager 和 NodeManager,都作为一个 Java 进程运行。这使用本地文件系统。
    2. 伪分布式模式单节点 Hadoop 部署被视为以伪分布式模式运行 Hadoop 系统。在这种模式下,所有 Hadoop 服务,包括主服务和从服务,都在单个计算节点上执行。
    3. 完全分布式模式Hadoop 主从服务运行在不同节点上的 Hadoop 部署被称为完全分布式模式。

    Hadoop MapReduce 面试题

    24.什么是“MapReduce”?运行“MapReduce”程序的语法是什么?

    它是一种框架/编程模型,用于使用并行编程在计算机集群上处理大型数据集。运行 MapReduce 程序的语法是hadoop_jar_file.jar /input_path /output_path。

    如果你对 MapReduce 有任何疑问或想修改你的概念,你可以参考这个MapReduce 教程

    25. “MapReduce”程序的主要配置参数是什么?

    “MapReduce”框架中用户需要指定的主要配置参数有:

    • 分布式文件系统中作业的输入位置
    • 作业在分布式文件系统中的输出位置
    • 数据输入格式
    • 数据输出格式
    • 包含地图功能的类
    • 包含 reduce 函数的类
    • 包含映射器、减速器和驱动程序类的 JAR 文件

    26. 说明我们不能在mapper中进行“聚合”(加法)的原因?为什么我们需要“减速器”呢?

    这个答案包括很多点,所以我们将依次进行。

    • 我们不能在 mapper 中执行“聚合”(加法),因为在“mapper”函数中不会发生排序。排序只发生在reducer 端,没有排序聚合是无法完成的。
    • 在“聚合”期间,我们需要所有映射器函数的输出,这些输出在映射阶段可能无法收集,因为映射器可能运行在存储数据块的不同机器上。
    • 最后,如果我们尝试在 mapper 上聚合数据,它需要在可能运行在不同机器上的所有 mapper 函数之间进行通信。因此,它会消耗高网络带宽并可能导致网络瓶颈。

    27、Hadoop中“RecordReader”的作用是什么?

    “InputSplit”定义了一个工作片段,但没有描述如何访问它。“RecordReader”类从其源加载数据并将其转换为适合“Mapper”任务读取的(键、值)对。“RecordReader”实例由“输入格式”定义。

    28. 解释“MapReduce 框架”中的“分布式缓存”。

    分布式缓存可以解释为,MapReduce 框架提供的一种工具,用于缓存应用程序所需的文件。一旦你为你的工作缓存了一个文件,Hadoop 框架就会让它在你运行 map/reduce 任务的每个数据节点上可用。然后,您可以在 Mapper 或 Reducer 作业中将缓存文件作为本地文件访问。

    29、“reducers”之间是如何通信的?

    这是一个棘手的问题。“MapReduce”编程模型不允许“reducer”相互通信。“减速器”是孤立运行的。

    30. “MapReduce Partitioner”有什么作用?

    “MapReduce Partitioner”确保单个键的所有值都进入同一个“reducer”,从而允许在“reducer”上均匀分布地图输出。它通过确定哪个“reducer”负责特定键,将“mapper”输出重定向到“reducer”。

    31. 你将如何编写自定义分区器?

    可以按照以下步骤轻松编写 Hadoop 作业的自定义分区器:

    • 创建一个扩展 Partitioner 类的新类
    • 覆盖方法 – getPartition,在 MapReduce 中运行的包装器中。
    • 使用 set Partitioner 方法将自定义分区程序添加到作业,或将自定义分区程序作为配置文件添加到作业。

    32、什么是“合路器”?

    “Combiner”是一个执行本地“reduce”任务的迷你“reducer”。它从特定“节点”上的“映射器”接收输入,并将输出发送到“减速器”。“组合器”通过减少需要发送到“减速器”的数据量来帮助提高“MapReduce”的效率。

    33. 你对“SequenceFileInputFormat”了解多少?

    “SequenceFileInputFormat”是用于在序列文件中读取的输入格式。它是一种特定的压缩二进制文件格式,经过优化,可将一个“MapReduce”作业的输出之间的数据传递到其他“MapReduce”作业的输入。

    序列文件可以作为其他 MapReduce 任务的输出生成,并且是从一个 MapReduce 作业传递到另一个 MapReduce 作业的数据的有效中间表示。

    Apache Pig 面试问题

    34. Apache Pig 相对于 MapReduce 有哪些优势?

    Apache Pig 是一个平台,用于分析将它们表示为雅虎开发的数据流的大型数据集。它旨在提供对 MapReduce 的抽象,降低编写 MapReduce 程序的复杂性。

    • Pig Latin 是一种高级数据流语言,而 MapReduce 是一种低级数据处理范式。
    • 无需在 MapReduce 中编写复杂的 Java 实现,程序员可以使用 Pig Latin 非常轻松地实现相同的实现。
    • Apache Pig 将代码长度减少了大约 20 倍(根据 Yahoo)。因此,这将开发周期缩短了近 16 倍。
    • Pig 提供了许多内置操作符来支持数据操作,如连接、过滤、排序、排序等。而在 MapReduce 中执行相同的功能是一项艰巨的任务。
    • 在 Apache Pig 中执行 Join 操作很简单。而在 MapReduce 中很难在数据集之间执行 Join 操作,因为它需要依次执行多个 MapReduce 任务才能完成作业。
    • 此外,pig 还提供了 MapReduce 中缺少的嵌套数据类型,例如元组、包和映射。

    35. Pig Latin 中有哪些不同的数据类型?

    Pig Latin 可以处理原子数据类型(如 int、float、long、double 等)和复杂数据类型(如 tuple、bag 和 map)。

    原子数据类型:原子或标量数据类型是所有语言中使用的基本数据类型,如字符串、整数、浮点、长、双、char[]、byte[]。

    复杂数据类型:复杂数据类型有元组、映射和包。

    36. 你合作过的“Pig Latin”中有哪些不同的关系运算?

    不同的关系运算符是:

    1. for each
    2. order by
    3. filters
    4. group
    5. distinct
    6. join
    7. limit

    37.什么是UDF?

    如果某些函数在内置运算符中不可用,我们可以通过编程方式创建用户定义函数 (UDF),以使用其他语言(如 Java、Python、Ruby 等)引入这些功能,并将其嵌入到 Script 文件中。

    Apache Hive 面试问题

    38.“蜂巢”中的“SerDe”是什么?

    Apache Hive 是一个建立在 Hadoop 之上的数据仓库系统,用于分析 Facebook 开发的结构化和半结构化数据。Hive 抽象了 Hadoop MapReduce 的复杂性。

    “SerDe”接口允许您指示“Hive”如何处理记录。“SerDe”是“Serializer”和“Deserializer”的组合。“Hive”使用“SerDe”(和“FileFormat”)来读取和写入表的行。

    39、默认的“Hive Metastore”可以被多个用户(进程)同时使用吗?

    “Derby 数据库”是默认的“Hive Metastore”。多个用户(进程)不能同时访问它。它主要用于执行单元测试。

    40. “Hive”存储表数据的默认位置是什么?

    Hive 存储表数据的默认位置在 /user/hive/warehouse 中的 HDFS 内。

    Apache HBase 面试题

    41.什么是Apache HBase?

    HBase 是一个开源、多维、分布式、可扩展和用 Java 编写的 NoSQL 数据库。HBase 运行在 HDFS(Hadoop 分布式文件系统)之上,并为 Hadoop 提供类似 BigTable (Google) 的功能。它旨在提供一种容错方式来存储大量稀疏数据集。HBase 通过在庞大的数据集上提供更快的读/写访问来实现高吞吐量和低延迟。

    42. Apache HBase 有哪些组件?

    HBase 包含三个主要组件,即 HMaster Server、HBase RegionServer 和 Zookeeper。

    • Region Server:一个表可以分成几个区域。区域服务器为客户端提供一组区域。
    • HMaster:它协调和管理Region Server(类似于NameNode 管理HDFS 中的DataNode)。
    • ZooKeeper:Zookeeper 就像 HBase 分布式环境中的协调器。它有助于通过会话进行通信来维护集群内的服务器状态。

    43、Region Server有哪些组成部分?

    区域服务器的组件是:

    • WAL : Write Ahead Log (WAL) 是附加到分布式环境中每个 Region Server 的文件。WAL 存储尚未持久化或提交到永久存储的新数据。
    • 块缓存:块缓存驻留在区域服务器的顶部。它将经常读取的数据存储在内存中。
    • MemStore:它是写缓存。在将所有传入数据提交到磁盘或永久内存之前,它会存储所有传入数据。一个区域中的每个列族都有一个 MemStore。
    • HFile:HFile 存储在 HDFS 中。它将实际单元存储在磁盘上。

    44.解释HBase中的“WAL”?

    Write Ahead Log (WAL) 是附加到分布式环境中每个 Region Server 的文件。WAL 存储尚未持久化或提交到永久存储的新数据。它用于恢复数据集失败的情况。

    45. 提到“HBase”和“关系数据库”之间的区别?

    HBase 是一个开源、多维、分布式、可扩展和用 Java 编写的 NoSQL 数据库。HBase 运行在 HDFS 之上,并为 Hadoop 提供类似 BigTable 的功能。让我们看看 HBase 和关系数据库之间的区别。

    Apache Spark 面试问题

    46.什么是Apache Spark?

    这个问题的答案是,Apache Spark 是一个在分布式计算环境中进行实时数据分析的框架。它执行内存计算以提高数据处理速度。

    通过利用内存计算和其他优化进行大规模数据处理,它比 MapReduce 快 100 倍。

    47. 你能用任何特定的 Hadoop 版本构建“Spark”吗?

    是的,可以为特定的 Hadoop 版本构建“Spark”。

    48. 定义 RDD。

    RDD 是弹性分布数据集的首字母缩写词 - 并行运行的操作元素的容错集合。RDD 中的分区数据是不可变的和分布式的,这是 Apache Spark 的一个关键组件。

    Oozie 和 ZooKeeper 面试问题

    49. Apache ZooKeeper 和 Apache Oozie 是什么?

    Apache ZooKeeper 协调分布式环境中的各种服务。它通过执行同步、配置维护、分组和命名节省了大量时间。

    Apache Oozie 是一个调度程序,它调度 Hadoop 作业并将它们作为一个逻辑工作绑定在一起。有两种 Oozie 作业:

    • Oozie 工作流:这些是要执行的顺序操作集。您可以将其视为接力赛。每个运动员都在等待最后一名运动员完成他的部分。
    • Oozie Coordinator:这些是在数据可用时触发的 Oozie 作业。将此视为我们体内的反应刺激系统。以同样的方式,当我们对外部刺激做出反应时,Oozie 协调器会对数据的可用性做出反应,否则就会休息。

    50. 如何在 Hadoop 中配置“Oozie”作业?

    “Oozie”与 Hadoop 堆栈的其余部分集成,支持多种类型的 Hadoop 作业,例如“Java MapReduce”、“Streaming MapReduce”、“Pig”、“Hive”和“Sqoop”。

     

    点击关注,第一时间了解华为云新鲜技术~

  • 相关阅读:
    .NET设计模式观察者模式(Observer Pattern)
    .NET设计模式建造者模式(Builder Pattern)
    .NET设计模式结构型模式专题总结
    MFC深入浅出MFC的进程和线程
    .NET设计模式享元模式(Flyweight Pattern)
    MFC深入浅出CObject类
    不足80行,一种清晰而又简单通用的分页算法,你有这么想过吗?C#版
    .net生成静态页方法总结
    仅IE9/10/(Opera)同时支持script元素的onload和onreadystatechange事件
    结果分类Ajax之三
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/15423812.html
Copyright © 2011-2022 走看看