加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

大数据干货:Hadoop 面试中 7个必问问题及答案

发布时间:2019-11-04 19:23:20 所属栏目:教程 来源:大数据三十四号
导读:1.什么是Hadoop? Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容: HDFS(Hadoop Distributed File System,Hadoop分布式文件系统):HDFS允许你以一种分布

Hadoop的处理框架使用HDFS。它使用“Shared Nothing”架构,在分布式系统中,每个节点完全独立于系统中的其他节点。没有共享资源,如CPU,内存以及会成为瓶颈的磁盘存储。Hadoop的处理框架(如Spark,Pig,Hive,Impala等)处理数据的不同子集,并且不需要管理对共享数据的访问。 “Shared Nothing”架构是非常可扩展的,因为更多的节点可以被添加而没有更进一步的争用和容错,因为每个节点是独立的,并且没有单点故障,系统可以从单个节点的故障快速恢复。

6.你会如何选择不同的文件格式存储和处理数据?

设计决策的关键之一是基于以下方面关注文件格式:

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

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格式在以下情况下工作良好

  • 在不属于查询的列上跳过I / O和解压缩
  • 用于仅访问列的一小部分的查询。
  • 用于数据仓库型应用程序,其中用户想要在大量记录上聚合某些列。

RC和ORC格式是专门用Hive写的而不是通用作为Parquet。

Parquet文件

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

所以,总而言之,相对于其他,你应该会更喜欢序列,Avro和Parquet文件格式;序列文件用于原始和中间存储,Avro和Parquet文件用于处理。

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读