转载:http://www.aboutyun.com/thread-7088-1-1.html
http://www.cnblogs.com/sky-sql/p/6881757.html
1.job的本质是什么?
在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”
2.任务的本质是什么?
从一个作业划分出 得、运行于各个计算节点的工作单元称为“任务(task)”
3.文件系统的Namespace由谁来管理,Namespace的作用是什么?
Namenode 管理者文件系统的Namespace
4.Namespace 镜像文件(Namespace image)和操作日志文件(edit log)文件的作用是什么?
Namenode 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log)
5.Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,为什么?
因为这些信息会在系统启动因为这些信息会在系统启动时从数据节点重建。
6.客户端读写某个数据时,是否通过NameNode?
当需要通过客户端读/写某个 数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通信,并且对相关的数据块进行读/写操作。
8.一旦某个task失败了,JobTracker如何处理?
一旦某个task失败了,JobTracker就会自动重新开启这个task.
9.JobClient JobClient在获取了JobTracker为Job分配的id之后,会在JobTracker的系统目录(HDFS)下为该Job创建一个单独的目录,目录的名字即是Job的id,该目录下会包含文件job.xml、job.jar等文件,这两个文件的作用是什么?
10.JobTracker根据什么就能得到这个Job目录?
JobTracker只要根据JobId就能得到这个Job目录。
1.JobTracker提交作业之前,为什么要检查内存?
客户端提交作业之前,会根据实际的应用情况配置作业任务的内存需求,同时JobTracker为了提高作业的吞吐量会限制作业任务的内存需求,所以在Job的提交时,JobTracker需要检查Job的内存需求是否满足JobTracker的设置。
12.每个TaskTracker产生多个java 虚拟机(JVM)的原因是什么?
每个TaskTracker可以产生多个java 虚拟机(JVM),用于并行处理多个map以及reduce任务。