I/O tuning
I/O is critical when you are reading data to/from disk. The major things that you need to consider are:
Data locality
The closer your computer is to your data, the better the performance for your jobs. Moving compute to your data is more optimal compared to moving data to your compute, and therein lies the concept of data locality. Process and data can be quite close to each other, or in some cases on entirely different nodes. The locality levels are defined as follows:
PROCESS_LOCAL
: This is the best possible option where data resides in the same JVM as the process, and hence is called local to the process.NODE_LOCAL
: This indicates that the data is not in the same JVM, but is on the same node. This provides a fast way to access the data, despite it being slower thanPROCESS_LOCAL
, since the data has to be transferred from either the disk or another process.RACK_LOCAL
: There can be multiple servers in the RACK. This option indicates that the data is on the same rack as the current...