Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-10889 [Umbrella] Queue Creation in Capacity Scheduler - Tech debts
  3. YARN-10908

Investigate: Why AbstractCSQueue#authorizer is constructed for each queue

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Minor
    • Resolution: Invalid
    • None
    • None
    • None
    • None

    Description

      AbstractCSQueue#hasAccess checks if a certain user with an ACL has permission to submit an app to the queue.
      Checking the permission itself is performed by calling ConfiguredYarnAuthorizer#checkPermission.
      Interestingly, all queue objects have a reference to a YarnAuthorizationProvider instance.
      What looks weird is how the authorizer is initialized: https://github.com/apache/hadoop/blob/ac0a4e7f589e7280268013c56339b3b257d332a0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AbstractCSQueue.java#L428
      It just calls YarnAuthorizationProvider.getInstance with the Configuration object as an argument so actually, all queue objects have an instance constructed with the same configuration, and the getInstance method does not gather any queue-specific configuration value from the object so this is a waste of memory.

      Attachments

        Activity

          People

            snemeth Szilard Nemeth
            snemeth Szilard Nemeth
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: