位置:首页 » 文章/教程分享 » Hadoop 面试中 6 个常见的问题及答案(一)

Q1.什么是Hadoop?

Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,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)和实时处理。

Q2.为什么组织从传统的数据仓库工具转移到基于Hadoop生态系统的智能数据中心?

Hadoop组织正在从以下几个方面提高自己的能力:

现有数据基础设施:

  • 主要使用存储在高端和昂贵硬件中的“structured data,结构化数据”
  • 主要处理为ETL批处理作业,用于将数据提取到RDBMS和数据仓库系统中进行数据挖掘,分析和报告,以进行关键业务决策。
  • 主要处理以千兆字节到兆字节为单位的数据量

基于Hadoop的更智能的数据基础设施,其中

  • 结构化(例如RDBMS),非结构化(例如images,PDF,docs )和半结构化(例如logs,XMLs)的数据可以以可扩展和容错的方式存储在较便宜的商品机器中。
  • 可以通过批处理作业和近实时(即,NRT,200毫秒至2秒)流(例如Flume和Kafka)来摄取数据。
  • 数据可以使用诸如Spark和Impala之类的工具以低延迟(即低于100毫秒)的能力查询。
  • 可以存储以兆兆字节到千兆字节为单位的较大数据量。

这使得组织能够使用更强大的工具来做出更好的业务决策,这些更强大的工具用于获取数据,转移存储的数据(例如聚合,丰富,变换等),以及使用低延迟的报告功能和商业智能。

Q3.更智能&更大的数据中心架构与传统的数据仓库架构有何不同?

传统的企业数据仓库架构

基于Hadoop的数据中心架构