# A Comparative Analysis of Big Data Frameworks:
## 7 Conclusions  
In the presence of a number of available big data processing frameworks selecting most appropriate framework according to application context is non-trivial. To choose the appropriate framework for an application, one must consider a number of features and characteristics of the system. In the literature, several studies have performed comparisons of big data frameworks but these lack detailed comparison of architecture with respect to the core functionality of its components. No specific guidance is provided to help developers and practitioners in the selection of a suitable framework for their application. Furthermore, the classification of features that are used for comparative analysis is lacking. To fill this research gap, our work aims to provide a comprehensive review of most popular big data frameworks in an attempt to highlight the strengths and weaknesses of each framework. The features used for comparative analysis are logically classified the into seven feature vectors. The frameworks are thoroughly compared with respect to identified feature vectors. Furthermore, we pointed out the application use cases where each of the frameworks ideally fit in and a detailed discussion is presented that can serve as a decision making guide to select the appropriate framework for an application. This work differs from existing studies in number of ways. First, a detailed-oriented review of big data frameworks is presented with respect to four significant aspects: architecture, fault tolerance, data processing model and scheduling. Second, this paper presents a purposeful discussion related to the core characteristics of big data frameworks. The \begin{table}
\begin{tabular}{c c} \hline \hline
**Big Data Frameworks** & **Best Fit Application Use-Cases** \\ \hline \hline Hadoop & Applications that require batch processing of very large datasets where execution time is not a hard constraint \\ Spark & Applications with batch or streaming workloads where high throughput is more desired than latency \\ Storm & Streaming applications where extremely low latency is desired with at least once processing guarantees \\ Samza & Streaming applications that require multiple teams to access same data streams at different stages of processing \\ Flink & Applications with batch or streaming workloads where extremely low latency is desired with exactly once processing guarantees \\ Spark & Applications with batch or streaming workloads where high throughput is more desired than latency \\ Storm & Streaming applications where extremely low latency is desired with at least once processing guarantees \\ \hline \hline \end{tabular}
\end{table} 
Table 10: Application use cases where each of the frameworks ideally fits in. findings can help in selecting the most competent and preferable system according to particular scenario or application requirement. We believe that our work will benefit the researchers and practitioners in the following ways:  
* In the literature, the qualitative comparisons were performed in bits and pieces and architecture of the frameworks were discussed and analyzed briefly. Furthermore, the classification of features that are used for comparative analysis is lacking. In this paper, we have logically classified the features into seven feature vectors. We thoroughly compared the frameworks in terms of identified feature vectors. * Although, the official documentation of the frameworks contains information about the architecture of the framework, but this information cannot be used to compare the frameworks because there is no consistent view under which the information is presented for each framework. The documentation varies from framework to framework on the basis of the format on which the information is presented and the characteristics are considered. Hence, there is no consistent view available through which one can compare these frameworks and conclude some frameworks selection guidelines. We have analyzed the popular big data frameworks in detail under a consistent view of feature vectors.