当前位置: 首页>>hadoop 2.0之YARN>> 阅读正文

Hadoop 2.0中用户安全伪装/模仿机制实现原理

Category: hadoop 2.0之YARN View: 8,518 Author: Dong
,

  • 评论 (4)
  • 引用通告 (2)
发表评论 发起引用

  • 1楼JJZHK 回复

    Post: 2014-03-20 04:54

    你好,能问你个问题么?
    Spill阶段会按照分区编号从小到大将每个分区中的数据写入任务工作目录下的临时文件output/SpillN.out中,N表示溢写次数。在写入之前,会调用用户设置的Combiner方法(如果设置了的话),对每个分区进行一次聚集操作。
    1.每个spill*.out文件内部,是否可以跨分区呢。比如里面有200条记录,我前100条发送到reducer 0处理,后100条发送到reducer 1处理?
    2. spill0.out根spill1.out是否可以是一个分区的?比如我的数据量很大,一共200条记录,100条的时候,就打到了阀值的80%,我需要spill,这100条发送到reducer 0的。后100条完了也spill,也是发送到reducer 0的?
    3.如果上述两个问题都是肯定的,那么我就想问一下,那combine的时候怎么做呢。因为可能3个spill是一个分区的,另外两个是另外一个分区的。那么他怎么combine呢?
    4.每个Map任务最后得到的是一个大文件,那么这个大文件里面可能分区编号不一样,怎么交给不同的reducer去处理呢?
    5.Reduce肯定是存在多个的,那最后怎么合并成一个文件输出给用户呢?或者还有别的方案?
    谢谢。

    [回复]

    Dong 回复:

    每生成一个spill文件之前,会进行sort和combine(先sort再combine),sort是按照parition编号和key排序的,这样,parition编号是从小到大的,这里的parition编号就是reduce 编号。生成spill文件时,会产生两个文件,一个是数据文件,一个是索引文件,所以文件记录了每个parition在spill文件中的偏移量。 spill文件是写到本地磁盘的,不会直接传给reduce。map task运行完成后,会将所有的spill文件合并成一个大的spill文件,合并方法是sort+combine,其中sort是merge sort,就是外部排序。最后的大spill文件也是由数据文件索引文件两部分组成的。reduce task会向各个map task拉取数据,每个节点上有个shuffle server,负责数据传输。

    [回复]

  • 2楼zhanggl 回复

    Post: 2014-03-28 03:42

    我想在eclispe下写一些mapreducer但是在我编译好的hadoop2.2下面怎么都找不到core的核心包(我hadoop环境是2.x 服务器是64bit linux)。请问hadoop2.x的core核心包放在哪里

    [回复]

  • 3楼dfadsfnnx 回复

    Post: 2015-05-23 04:53

    你好,请问下,如果设置为simple,是不是就是说随便复制一份hadoop部署好的客户端上的hadoop目录到自己的机器,然后就可以伪造为管理员账户,随意操纵hdfs的文件了

    [回复]

  • 4楼dfadsfnnx 回复

    Post: 2015-05-23 04:57

    能不能限制只允许某些服务器(集群外的)提交作业、执行hdfs命令,其他人即使把hadoop的目录复制一份也无法提交作业?

    [回复]

发表评论