大数据面试题集锦-Hadoop面试题(一)

这篇具有很好参考价值的文章主要介绍了大数据面试题集锦-Hadoop面试题(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 1、集群的最主要瓶颈
  • 2、Hadoop运行模式
  • 3、Hadoop生态圈的组件并做简要描述
  • 4、解释“hadoop”和“hadoop 生态系统”两个概念
  • 5、请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?
  • 6、基于 Hadoop 生态系统对比传统数据仓库有何优势?
  • 7、如何选择不同的文件格式存储和处理数据
      • CSV 文件
      • JSON 文件
      • Avro 文件
      • Columnar 格式,例如 RCFile,ORC
      • Parquet 文件

你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案。

1、集群的最主要瓶颈

磁盘IO

2、Hadoop运行模式

单机版、伪分布式模式、完全分布式模式

3、Hadoop生态圈的组件并做简要描述

  • Zookeeper:是一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护,命名服务。
  • Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。   Hbase:是一个分布式的、面向列的开源数据库,利用Hadoop HDFS作为其存储系统。
  • Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据档映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
  • Sqoop:将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

4、解释“hadoop”和“hadoop 生态系统”两个概念

Hadoop是指Hadoop框架本身;hadoop生态系统,不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop等辅助框架。

Hadoop 包括以下内容:

  • HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统):HDFS 允许你以一种分布式和冗余的方式存储大量数据。例如,1 GB(即 1024 MB)文本文件可以拆分为 16 * 128MB 文件,并存储在 Hadoop 集群中的 8 个不同节点上。每个分裂可以复制 3 次,以实现容错,以便如果 1 个节点故障的话,也有备份。HDFS 适用于顺序的“一次写入、多次读取”的类型访问。
  • MapReduce:一个计算框架。它以分布式和并行的方式处理大量的数据。当你对所有年龄> 18 的用户在上述 1 GB 文件上执行查询时,将会有“8 个映射”函数并行运行,以在其 128 MB 拆分文件中提取年龄> 18 的用户,然后“reduce”函数将运行以将所有单独的输出组合成单个最终结果。
  • YARN(Yet Another Resource Nagotiator,又一资源定位器):用于作业调度和集群资源管理的框架。

Hadoop 生态系统,拥有 15 多种框架和工具,如 Sqoop,Flume,Kafka,Pig,Hive,Spark,Impala 等,以便将数据摄入 HDFS,在 HDFS 中转移数据(即变换,丰富,聚合等),并查询来自 HDFS 的数据用于商业智能和分析。某些工具(如 Pig 和 Hive)是 MapReduce 上的抽象层,而 Spark 和 Impala 等其他工具则是来自 MapReduce 的改进架构/设计,用于显著提高的延迟以支持近实时(即 NRT)和实时处理。

5、请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?

  • NameNode:它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。
  • SecondaryNameNode:它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
  • DataNode:它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。
  • ResourceManager(JobTracker):JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
  • NodeManager:(TaskTracker)执行任务。
  • DFSZKFailoverController:高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
  • JournalNode:高可用情况下存放namenode的editlog文件。

6、基于 Hadoop 生态系统对比传统数据仓库有何优势?

传统数据基础设施:主要使用存储在高端和昂贵硬件中的“structured data,结构化数据”主要处理为 ETL 批处理作业,用于将数据提取到 RDBMS 和数据仓库系统中进行数据挖掘,分析和报告,以进行关键业务决策。主要处理以千兆字节到兆字节为单位的数据量。
基于 Hadoop 的数据基础设施:其中结构化(例如 RDBMS),非结构化(例如 images,PDF,docs )和半结构化(例如 logs,XMLs)的数据可以以可扩展和容错的方式存储在较便宜的商品机器中。可以通过批处理作业和近实时(即,NRT,200 毫秒至 2 秒)流(例如 Flume 和 Kafka)来摄取数据。数据可以使用诸如 Spark 和 Impala 之类的工具以低延迟(即低于 100 毫秒)的能力查询。可以存储以兆兆字节到千兆字节为单位的较大数据量。这使得能够使用更强大的工具来做出更好的业务决策,这些更强大的工具用于获取数据,转移存储的数据(例如聚合,丰富,变换等),以及使用低延迟的报告功能和商业智能。

所以有下面几个优点

  1. 扩展更便宜,更高效地并行处理大数据。随着数据量和复杂性的增加,提高了整体 SLA(即服务水平协议)。例如,“Shared Nothing”架构,并行处理,内存密集型处理框架,如 Spark 和 Impala,以及 YARN 容量调度程序中的资源抢占。添加额外的高端硬件容量以及获取数据仓库工具的许可证可能会显著增加成本。基于 Hadoop生态系统不仅在商品硬件节点和开源工具方面更便宜,而且还可以通过将数据转换卸载到 Hadoop 工具(如 Spark 和 Impala)来补足数据仓库解决方案,从而更高效地并行处理大数据。这也将释放数据仓库资源。
  2. 探索新的渠道和线索。Hadoop 可以为数据科学家提供探索性的沙盒,以从社交媒体,日志文件,电子邮件等地方发现潜在的有价值的数据,这些数据通常在传统数据仓库中不可得。
  3. 更好的灵活性。通常业务需求的改变,也需要对架构和报告进行更改。基于 Hadoop 的解决方案不仅可以灵活地处理不断发展的模式,还可以处理来自不同来源,如社交媒体,应用程序日志文件,image,PDF 和文档文件的半结构化和非结构化数据。

7、如何选择不同的文件格式存储和处理数据

选择何种文件格式的关键之一是基于以下方面:

  1. 使用模式,例如访问 50 列中的 5 列,而不是访问大多数列
  2. 可并行处理的可分裂性
  3. 块压缩节省存储空间 vs 读/写/传输性能模式演化以添加字段
  4. 修改字段和重命名字段

CSV 文件

CSV 文件通常用于在 Hadoop 和外部系统之间交换数据。CSV 是可读和可解析的。 CSV 可以方便地用于从数据库到 Hadoop 或到分析数据库的批量加载。在 Hadoop 中使用 CSV 文件时,不包括页眉或页脚行。文件的每一行都应包含记录。CSV 文件对模式评估的支持是有限的,因为新字段只能附加到记录的结尾,并且现有字段不能受到限制。CSV 文件不支持块压缩,因此压缩 CSV 文件会有明显的读取性能成本。

JSON 文件

JSON 记录与 JSON 文件不同;每一行都是其 JSON 记录。由于 JSON 将模式和数据一起存储在每个记录中,因此它能够实现完整的模式演进和可拆分性。此外,JSON 文件不支持块级压缩。
序列文件
序列文件以与 CSV 文件类似的结构用二进制格式存储数据。像 CSV 一样,序列文件不存储元数据,因此只有模式进化才将新字段附加到记录的末尾。与 CSV 文件不同,序列文件确实支持块压缩。序列文件也是可拆分的。序列文件可以用于解决“小文件问题”,方式是通过组合较小的通过存储文件名作为键和文件内容作为值的 XML 文件。由于读取序列文件的复杂性,它们更适合用于在飞行中的(即中间的)数据存储。
注意:序列文件是以 Java 为中心的,不能跨平台使用。

Avro 文件

适合于有模式的长期存储。Avro 文件存储具有数据的元数据,但也允许指定用于读取文件的独立模式。启用完全的模式进化支持,允许你通过定义新的独立模式重命名、添加和删除字段以及更改字段的数据类型。Avro 文件以 JSON 格式定义模式,数据将采用二进制 JSON 格式。Avro 文件也是可拆分的,并支持块压缩。更适合需要行级访问的使用模式。这意味着查询该行中的所有列。不适用于行有 50+ 列,但使用模式只需要访问 10 个或更少的列。Parquet 文件格式更适合这个列访问使用模式。

Columnar 格式,例如 RCFile,ORC

RDBM 以面向行的方式存储记录,因为这对于需要在获取许多列的记录的情况下是高效的。如果在向磁盘写入记录时已知所有列值,则面向行的写也是有效的。但是这种方法不能有效地获取行中的仅 10% 的列或者在写入时所有列值都不知道的情况。这是 Columnar 文件更有意义的地方。所以Columnar 格式在以下情况下工作良好:

  1. 在不属于查询的列上跳过 I / O 和解压缩
  2. 用于仅访问列的一小部分的查询。
  3. 用于数据仓库型应用程序,其中用户想要在大量记录上聚合某些列。
  4. RC 和 ORC 格式是专门用 Hive 写的而不是通用作为 Parquet。

Parquet 文件

Parquet 文件是一个 columnar 文件,如 RC 和 ORC。Parquet 文件支持块压缩并针对查询性能进行了优化,可以从 50 多个列记录中选择 10 个或更少的列。Parquet 文件写入性能比非 columnar 文件格式慢。Parquet 通过允许在最后添加新列,还支持有限的模式演变。Parquet 可以使用 Avro API 和 Avro 架构进行读写。

总之,相对于其他,你应该会更喜欢序列,Avro 和 Parquet 文件格式;序列文件用于原始和中间存储,Avro 和 Parquet 文件用于处理。文章来源地址https://www.toymoban.com/news/detail-408676.html

到了这里,关于大数据面试题集锦-Hadoop面试题(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spark面试题集锦

    1、什么是Apache Spark?Spark是什么? 是基于内存的分布式的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。包含Spark core、Spark sql、Spark streaming 、Spark MLlib 、spark GraphX五个核心组件。 2、Spark的核心组件是什么? Spark Core:是其它组件的基础,spark的内核

    2024年02月04日
    浏览(45)
  • vue面试题集锦

    1. 谈一谈对 MVVM 的理解? MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。 Model 层代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑; View 代表 UI 组件,它负责将数据模型转化成 UI 展现出来,View 是一个同步 View 和 Model 的对象 在 MVVM 架构下,View 和 Model 之

    2024年01月21日
    浏览(47)
  • 音视频开发面试题集锦

    下面是 2022.06 月音视频面试题集锦内容的节选: 媒体封装层是表示媒体数据是什么封装格式的,比如 MP4、FLV。在这层信息里,通常会携带码流编码格式的信息。 拿 MP4 来说,我们可以根据 Sample Description Box(moov/trak/mdia/minf/stbl/stsd) 中的信息来确定其封装的码流的编码格式。

    2023年04月13日
    浏览(59)
  • 500道网络安全面试题集锦(附答案)

    本篇文章内容为网络安全各个方向涉及的面试题,但是无论如何都无法覆盖所有的面试问题,更多的还是希望由点达面,查漏补缺,然后祝各位前程似锦,都能找到自己满意的工作!   攻击者通过在web界面中嵌入恶意脚本(通常为js代码),造成用户在浏览网页时,控制用户

    2024年02月15日
    浏览(56)
  • Java大厂常见1000道面试题集锦(一)

    本系列为Java常见面试题集锦,持续更新中,包括笔试题和面试题, 建议收藏慢慢看 while(true){} 是一个无限循环的语句,它的作用是让程序在执行到该语句时不停地循环下去,直到程序被终止或者遇到 break、return 等跳出循环的语句。 无限循环的使用场景比较多,例如: 实现

    2024年02月06日
    浏览(54)
  • 找工作吗?50道Python面试题集锦【附答案】

    嗨害大家好鸭!我是爱摸鱼的芝士~ 希望能够帮助你在今年的求职面试中脱颖而出, 找到一份高薪工作~ 这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。 提前预祝给这篇文章点赞收藏的友友们~ 拿到心中最满意的那一份OFFER~ Q1、Python中的列表

    2023年04月18日
    浏览(42)
  • Hadoop HA集群两个NameNode都是standby或者主NameNode是standby,从NameNode是active的情况集锦

    这里说一下配置Hadoop HA集群可能出现的两种情况,第一种就是两个NameNode都是standby,第二种就是主Master是standby,从Master是active。 针对Hadoop 1.x中可能出现的NameNode单点故障(SPOF)或者短时间无法使用的情况,Hadoop 2.x 通过增加一个NameNode的方式进行了改善,而增加一个NameNode后

    2024年02月12日
    浏览(43)
  • 开源大数据集群部署(十一)Ranger 集成Hadoop集群

    作者:櫰木 1、节点选择 部署在两个namenode节点 cd /opt/bigdata tar -xzvf ranger-2.3.0-hdfs-plugin.tar.gz -C /opt/ cd /opt/ranger-2.3.0-hdfs-plugin vim install.properties ranger hdfs初始化 初始化完成后会在/opt/hadoop/etc/hadoop目录下生成3个文件 在rangeradmin页面上进行配置 servicename必须和install.properties中的R

    2024年02月22日
    浏览(54)
  • 【大数据】Hadoop高可用集群搭建

    大家好!这篇文章是我在搭建Hdfs的HA(高可用)时写下的详细笔记与感想,希望能帮助到大家!本篇文章收录于 初心 的 大数据 专栏。 🏠 个人主页:初心%个人主页 🧑 个人简介:大家好,我是初心,和大家共同努力 💕 座右铭:理想主义的花,终究会盛开在浪漫主义的土壤里

    2024年02月06日
    浏览(41)
  • 【大数据】Hadoop运行模式(集群搭建)

    Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。 本地模式(Local/Standalone Mode):单台服务器,数据存储在Linux本地。生产环境几乎不会采用该模式 伪分布式模式(Pseudo-Distributed Mode):单台服务器,数据存储在HDFS上。有较少的小型公司采用该模式。 完全

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包