#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

# ResourceBundle properties file for Map-Reduce counters

CounterGroupName=              Map-Reduce Framework

MAP_INPUT_RECORDS.name=        Map input records
MAP_OUTPUT_RECORDS.name=       Map output records
MAP_OUTPUT_BYTES.name=         Map output bytes
MAP_SKIPPED_RECORDS.name=      Map skipped records
COMBINE_INPUT_RECORDS.name=    Combine input records
COMBINE_OUTPUT_RECORDS.name=   Combine output records
REDUCE_INPUT_GROUPS.name=      Reduce input groups
REDUCE_SHUFFLE_BYTES.name=     Reduce shuffle bytes
REDUCE_INPUT_RECORDS.name=     Reduce input records
REDUCE_OUTPUT_RECORDS.name=    Reduce output records
REDUCE_SKIPPED_RECORDS.name=   Reduce skipped records
REDUCE_SKIPPED_GROUPS.name=    Reduce skipped groups
SPILLED_RECORDS.name=          Spilled Records
SHUFFLED_MAPS.name=            Shuffled Maps 
FAILED_SHUFFLE.name=           Failed Shuffles
MERGED_MAP_OUTPUTS.name=       Merged Map outputs
GC_TIME_MILLIS.name=           GC time elapsed (ms)
COMMITTED_HEAP_BYTES.name=     Total committed heap usage (bytes)
