Job Service

Slack Docker Pulls GitHub edit source

Architecture Overview

The Alluxio Job Service is a task scheduling framework responsible for assigning a number of different types of operations to Job Workers.

The Master is responsible for distributing a job into smaller tasks for the Job Workers to execute and managing the status of the job’s completion.

The Job Workers queues tasks from the Job Master and manages a configurable fixed threadpool (alluxio.job.worker.threadpool.size) to complete these tasks.

Different Types of Jobs

Load

Load Job is used as part of the fs distributedLoad CLI command and loads a single file to Alluxio with specified amount of replication

Migrate

Migrate Job is used as part of the fs distributedCp and fs distributedMv CLI command and is responsible for copying/moving with a specified WriteType.

Persist

Persist Job is used both indirectly as part of the fs persist CLI command and background persisting when writing to Alluxio with ASYNC_THROUGH WriteType.

The job is responsible for persisting a file in Alluxio to a particular ufs path.

Evict

Evict Job is indirectly used by fs free CLI command and replication background process.

The job is responsible for evicting a specified number of replicated blocks from Alluxio.

Move

Move Job is used by the replication background process to move blocks from one worker to another.

Replicate

Replicate job is used by the replication background process to replicate blocks from a worker to a specified number of other workers.

Data Transformation

The job service also supports data transformation. More details can be found at Data Transformations

Inspection Commands

The job service provides a number of inspection commands.

fsadmin report jobservice

fsadmin report jobservice will report a summary of the job service.

  1. $ ./bin/alluxio fsadmin report jobservice
  2. Worker: MigrationTest-workers-2 Task Pool Size: 10 Unfinished Tasks: 1303 Active Tasks: 10 Load Avg: 1.08, 0.64, 0.27
  3. Worker: MigrationTest-workers-3 Task Pool Size: 10 Unfinished Tasks: 1766 Active Tasks: 10 Load Avg: 1.02, 0.48, 0.21
  4. Worker: MigrationTest-workers-1 Task Pool Size: 10 Unfinished Tasks: 1808 Active Tasks: 10 Load Avg: 0.73, 0.5, 0.23
  5. Status: CREATED Count: 4877
  6. Status: CANCELED Count: 0
  7. Status: FAILED Count: 1
  8. Status: RUNNING Count: 0
  9. Status: COMPLETED Count: 8124
  10. 10 Most Recently Modified Jobs:
  11. Timestamp: 10-28-2020 22:02:34:001 Id: 1603922371976 Name: Persist Status: COMPLETED
  12. Timestamp: 10-28-2020 22:02:34:001 Id: 1603922371982 Name: Persist Status: COMPLETED
  13. (only a subset of the results is shown)
  14. 10 Most Recently Failed Jobs:
  15. Timestamp: 10-24-2019 17:15:22:946 Id: 1603922372008 Name: Persist Status: FAILED
  16. 10 Longest Running Jobs:

job ls

job ls will list jobs that are running or have run on the job service.

  1. $ ./bin/alluxio job ls
  2. 1613673433925 Persist COMPLETED
  3. 1613673433926 Persist COMPLETED
  4. 1613673433927 Persist COMPLETED
  5. 1613673433928 Persist COMPLETED
  6. 1613673433929 Persist COMPLETED

job stat -v

job stat -v <job_id> will list detailed information about a job. (Adding -v includes information about the individual tasks on the workers)

  1. bin/alluxio job stat -v 1613673433929
  2. ID: 1613673433929
  3. Name: Persist
  4. Description: PersistConfig{filePath=/test5/lib/alluxio-underfs-cosn-2.5.0-SNAPSHOT.jar, mountId=1, overwrite=false, ufsPath=...
  5. Status: COMPLETED
  6. Task 0
  7. Worker: 192.168.42.71
  8. Status: COMPLETED