Hadoop Application Architectures: Designing Real-World Big Data Applications