How does an Hadoop application look like or their basic components?

Minimally an Hadoop application would have following components.
=> Input location of data
=> Output location of processed data.
=> A map task.
=> A reduced task.
=> Job configuration
The Hadoop job client then submits the job (jar/executable etc.) and configuration to the JobTracker which then assumes the responsibility of distributing the software/configuration to the slaves, scheduling tasks and monitoring them, providing status and diagnostic information to the job-client.