您的位置:首页 > 运维架构

[置顶] Hadoop 常见问题分析

2017-04-11 11:51 155 查看
1.job的本质是什么?

在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”

2.任务的本质是什么?

从一个作业划分出的运行于各个计算节点的工作单元称为“任务(task)”

3.文件系统的Namespace由谁来管理,Namespace的作用是什么?

Namenode管理着文件系统的Namespace,Namenode中保存有两种信息:文件和block的映射、block和DataNode的映射。文件和block的映射,固化在磁盘上。而block和DataNode的映射在DataNode启动时上报给NameNode。

4.Namespace 镜像文件(Namespace image)和操作日志文件(edit log)文件的作用是什么?

Namenode 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及

文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分

别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log)

5.Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,为什么?

[b因为这些信息会在系统启动时从数据节点重建。在DataNode启动时上报给NameNode。[/b]

6.客户端读写某个数据时,是否通过NameNode?

当需要通过客户端读/写某个数据时,先由NameNode告诉客户端去哪个DataNode进行

具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通信,并且对相关的数据块进行读/写操作。

8.一旦某个task失败了,JobTracker如何处理?

一旦某个task失败了,JobTracker就会自动重新开启这个task

9.JobClient在获取了JobTracker为Job分配的id之后,会在JobTracker的系统目录(HDFS)下为该Job创建一个单独的目录,目录的名字即是Job的id,该目录下会包含文件job.xml、job.jar等文件,这两个文件的作用是什么?

job.jar是运行的jar包文件 job.xml则存放JobClient的配置信息

10.JobTracker根据什么就能得到这个Job目录?

JobTracker只要根据JobId就能得到这个Job目录。

11.JobTracker提交作业之前,为什么要检查内存?

客户端提交作业之前,会根据实际的应用情况配置作业任务的内存需求,同时

JobTracker为了提高作业的吞吐量会限制作业任务的内存需求,所以在Job的提交时,

JobTracker需要检查Job的内存需求是否满足JobTracker的设置。

12.每个TaskTracker产生多个java 虚拟机(JVM)的原因是什么?

每个TaskTracker可以产生多个java 虚拟机(JVM),用于并行处理多个map以及reduce任务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: