Hadoop面试题之HDFS


Hadoop不是数据库,它是一种具有称为 HDFS 的文件系统的架构。数据存储在没有任何预定义容器的 HDFS 中。
关系数据库将数据存储在预定义的容器中。
 
什么是大数据?
大数据只不过是如此庞大而复杂的数据的分类,在现有数据库管理工具或传统数据处理技术的帮助下捕获、存储、处理、检索和分析它变得非常繁琐。
 
你能举一些大数据的例子吗?
现实生活中有很多大数据的例子!Facebook 每天产生 500 多 TB 的数据,纽约证券交易所(纽约证券交易所)每天产生大约 1 TB 的新交易数据,一家喷气航空公司每 30 分钟的飞行时间收集 10 TB 的审查数据。所有这些都是大数据的日常示例!
 
您能否详细介绍一下 Facebook 生成的大数据?
截至 2012 年 12 月 31 日,Facebook 月活跃用户为 10.6 亿,移动用户为 6.8 亿。平均而言,每天在 Facebook 上发布 32 亿个赞和评论。72% 的网络受众在 Facebook 上。那么为何不!facebook 上有很多活动,从墙贴、分享图片、视频、写评论和点赞帖子等等。事实上,Facebook 于 2009 年年中开始使用 Hadoop,并且是 Hadoop 的最初用户之一。
 
IBM 认为大数据的三个特征是什么?
IBM认为,大数据的三个特征是:
容量:Facebook 每天产生 500 多 TB 的数据。
速度:每天分析 200 万条记录,以确定丢失的原因。
种类:图像、音频、视频、传感器数据、日志文件等。
 
“大数据”有多大?
随着时间的推移,数据量呈指数级增长。早些时候我们曾经谈论过兆字节或千兆字节。但是,当我们谈论以 TB、PB 和 Zettabytes 表示的数据量时,时间已经到了!2011年全球数据量在1.8ZB左右,预计2015年将达到7.9ZB。众所周知,全球信息量每两年翻一番!
 
大数据分析对组织有何用处?
大数据的有效分析提供了很多业务优势,因为组织将了解哪些领域需要关注,哪些领域不太重要。大数据分析提供了一些早期的关键指标,可以防止公司遭受巨额亏损,或者帮助我们张开双手抓住大好机会!对大数据的精确分析有助于决策!例如,现在人们在购买任何产品或服务之前非常依赖 Facebook 和 Twitter。这一切都归功于大数据爆炸。
 
“数据科学家”是谁?
数据科学家很快就会取代业务分析师或数据分析师。数据科学家是寻找解决方案来分析数据的专家。就像网络分析一样,我们有数据科学家,他们对如何处理业务挑战具有良好的业务洞察力。敏锐的数据科学家不仅会参与处理业务问题,还会选择可以为组织带来增值的相关问题。
 
什么是Hadoop?
Hadoop 是一个框架,它允许使用简单的编程模型跨商用计算机集群对大型数据集进行分布式处理。
 
为什么叫“Hadoop”?
Hadoop 没有像“oops”这样的扩展版本。你看到的那头迷人的黄色大象,基本上都是以道格儿子的玩具大象命名的!
 
为什么我们需要Hadoop?
每天都有大量非结构化数据被转储到我们的机器中。主要的挑战不是在我们的系统中存储大数据集,而是检索和分析组织中的大数据,这些数据也存在于不同位置的不同机器中。在这种情况下,就需要使用 Hadoop。Hadoop 能够以非常快速且具有成本效益的方式分析不同位置不同机器中存在的数据。它使用 MapReduce 的概念,使其能够将查询分成小部分并并行处理它们。这也称为并行计算。
 
Hadoop框架有哪些特点?
Hadoop 框架是用 Java 编写的。它旨在解决涉及分析大数据(例如 PB)的问题。编程模型基于 Google 的 MapReduce。该基础架构基于 Google 的大数据和分布式文件系统。Hadoop 处理大文件/数据吞吐量并支持数据密集型分布式应用程序。Hadoop 是可扩展的,因为可以轻松地向其中添加更多节点。
 
简要概述 Hadoop 的历史。
2002 年,Doug Cutting 创建了一个开源的网络爬虫项目。
2004年,谷歌发表了MapReduce、GFS论文。
2006 年,Doug Cutting 开发了开源、Mapreduce 和 HDFS 项目。
2008 年,雅虎运行了 4000 个节点的 Hadoop 集群,Hadoop 赢得了 TB 级排序基准。
2009 年,Facebook 推出了对 Hadoop 的 SQL 支持。
 
举一些使用Hadoop结构的公司的例子?
很多公司都在使用 Hadoop 结构,例如 Cloudera、EMC、MapR、Hortonworks、Amazon、Facebook、eBay、Twitter、Google 等。
 
传统 RDBMS 和 Hadoop 的基本区别是什么?
传统的 RDBMS 用于事务系统来报告和归档数据,而 Hadoop 是一种将大量数据存储在分布式文件系统中并对其进行处理的方法。当您想从大数据中查找一条记录时,RDBMS 会很有用,而当您想一次性获取大数据并稍后对其进行分析时,Hadoop 会很有用。
 
什么是结构化和非结构化数据?
结构化数据是易于识别的数据,因为它以结构形式进行组织。结构化数据最常见的形式是数据库,其中特定信息存储在表中,即行和列。非结构化数据是指任何无法轻易识别的数据。它可以是图像、视频、文档、电子邮件、日志和随机文本的形式。它不是行和列的形式。
 
Hadoop的核心组件是什么?
Hadoop 的核心组件是 HDFS 和 MapReduce。HDFS 基本上是用来存储大数据集的,MapReduce 是用来处理这样大的数据集的。
 
什么是 HDFS?
HDFS 是一种文件系统,旨在存储具有流数据访问模式的超大文件,在商品硬件上运行集群。
 
HDFS 的主要特性是什么?
HDFS 具有高度容错性和高吞吐量,适用于具有大数据集的应用程序,可以流式访问文件系统数据,并且可以构建在商用硬件之外。
 
什么是容错?
假设您在系统中存储了一个文件,并且由于某些技术问题该文件被破坏了。那么就没有机会在该文件中恢复数据。为了避免这种情况,Hadoop 在 HDFS 中引入了容错特性。在 Hadoop 中,当我们存储文件时,它也会自动在其他两个位置进行复制。因此,即使其中一两个系统崩溃,该文件在第三个系统上仍然可用。
 
复制导致数据冗余那为什么在HDFS中追求呢?
HDFS 与商品硬件(具有平均配置的系统)一起使用,这些硬件随时都有可能崩溃。因此,为了使整个系统具有高容错性,HDFS 将数据复制并存储在不同的地方。HDFS 上的任何数据都至少存储在 3 个不同的位置。因此,即使其中一个已损坏并且另一个由于某种原因在一段时间内不可用,也可以从第三个访问数据。因此,没有丢失数据的机会。这个复制因子帮助我们获得了被称为容错的 Hadoop 特性。
由于数据在 HDFS 中复制三次,是否意味着在一个节点上完成的任何计算也会在其他两个节点上复制?
由于有3个节点,当我们发送MapReduce程序时,只会对原始数据进行计算。主节点将知道哪个节点确切具有该特定数据。如果节点之一没有响应,则假定它发生故障。只有这样,所需的计算才会在第二个副本上完成。
 
什么是吞吐量?HDFS 如何获得良好的吞吐量?
吞吐量是单位时间内完成的工作量。它描述了从系统访问数据的速度,通常用于衡量系统的性能。在 HDFS 中,当我们想要执行一个任务或一个动作时,那么工作就会在不同的系统之间进行划分和共享。因此,所有系统都将独立并行地执行分配给它们的任务。所以这项工作将在很短的时间内完成。通过这种方式,HDFS 提供了良好的吞吐量。通过并行读取数据,我们大大减少了读取数据的实际时间。
 
什么是流媒体访问?
由于 HDFS 的工作原理是“一次写入,多次读取”,因此流式访问功能在 HDFS 中极为重要。HDFS 的重点不是存储数据,而是如何以尽可能快的速度检索数据,尤其是在分析日志时。在 HDFS 中,读取完整数据比从数据中获取单个记录所花费的时间更重要。
 
什么是商品硬件?商品硬件是否包括 RAM?
商品硬件是一种不昂贵的系统,不具有高质量或高可用​​性。Hadoop 可以安装在任何普通的商品硬件中。我们不需要超级计算机或高端硬件来在 Hadoop 上工作。是的,商品硬件包括 RAM,因为会有一些服务将在 RAM 上运行。
 
什么是名称节点?
Namenode 是作业跟踪器运行的主节点,由元数据组成。它维护和管理存在于数据节点上的块。它是 HDFS 中的高可用性机器和单点故障。
 
Namenode也是商品吗?
不。Namenode 永远不可能成为商品硬件,因为整个 HDFS 都依赖于它。它是 HDFS 中的单点故障。Namenode 必须是高可用性机器。
 
什么是元数据?
元数据是关于存储在数据节点中的数据的信息,例如文件的位置、文件的大小等。
 
什么是数据节点?
数据节点是部署在每台机器上并提供实际存储的从节点。它们负责为客户端提供读取和写入请求。
 
为什么我们将 HDFS 用于具有大数据集的应用程序,而不是当有很多小文件时?
与分布在多个文件中的少量数据相比,HDFS 更适合单个文件中的大量数据集。这是因为 Namenode 是一个非常昂贵的高性能系统,因此为多个小文件生成的不必要的元数据量占用 Namenode 中的空间是不明智的。因此,当单个文件中有大量数据时,名称节点将占用较少的空间。因此,为了获得优化的性能,HDFS 支持大数据集而不是多个小文件。
 
什么是守护进程?
守护进程是在后台运行的进程或服务。一般来说,我们在 UNIX 环境中使用这个词。Windows 中 Daemon 的等价物是“services”,而 Dos 中的等价物是“TSR”。
 
什么是工作跟踪器?
作业跟踪器是一个运行在名称节点上的守护进程,用于在 Hadoop 中提交和跟踪 MapReduce 作业。它将任务分配给不同的任务跟踪器。在 Hadoop 集群中,将只有一个作业跟踪器,但有许多任务跟踪器。它是 Hadoop 和 MapReduce 服务的单点故障。如果作业跟踪器出现故障,则所有正在运行的作业都会停止。它从任务跟踪器接收心跳,基于哪个作业跟踪器决定分配的任务是否完成。
 
什么是任务跟踪器?
任务跟踪器也是一个运行在数据节点上的守护进程。任务跟踪器管理从节点上单个任务的执行。当客户端提交作业时,作业跟踪器将初始化作业并划分工作并将它们分配给不同的任务跟踪器执行 MapReduce 任务。在执行此操作时,任务跟踪器将通过发送心跳同时与作业跟踪器通信。如果作业跟踪器在指定时间内没有收到任务跟踪器的心跳,则它会假设任务跟踪器已崩溃并将该任务分配给集群中的另一个任务跟踪器。
 
Namenode机器和datanode机器在硬件方面一样吗?
这取决于您尝试创建的集群。Hadoop VM 可以在同一台机器上,也可以在另一台机器上。比如在单节点集群中,只有一台机器,而在开发或测试环境中,Namenode和datanode在不同的机器上。
 
HDFS 中的心跳是什么?
心跳是一个信号,表明它是活着的。数据节点向 Namenode 发送心跳,任务跟踪器将其心跳发送到作业跟踪器。如果 Namenode 或 job tracker 没有收到心跳,那么他们将确定 datanode 或任务跟踪器存在问题,无法执行分配的任务。