Perfect Balance has these components:
Job Analyzer: Gathers and reports statistics about the MapReduce job so that you can determine whether to use Perfect Balance.
Counting Reducer: Provides additional statistics to the Job Analyzer to help gauge the effectiveness of Perfect Balance.
Load Balancer: Runs before the MapReduce job to generate a static partition plan, and reconfigures the job to use the plan. The balancer includes a user-configurable, progressive sampler that stops sampling the data as soon as it can generate a good partitioning plan.