## 2 Related Works  
A system is scalable if it can be adapted to handle the increasing load when new hardware is added [4; 16]. The computing scalability of a system is thus defined as the capability of the system to accommodate such growth of the workflow. Auto-scaling mechanisms are accordingly brought into concern of industrial cloud suppliers with their open supply cloud platforms, such as Eucalyptus, Aneka, Flexiscale, GoGrid, Engine, Google App, Windows and Amazon. These cloud platforms provide several benefits to the cloud computing scalability, cloud security, implementation and management. However, there exist some drawbacks at most of the third parties where the lack of good and consistent Internet connectivity causes a fluctuating cost increase in the hardware configuration every month. Dealing with a large volume of data, several studies revealed the use of Hadoop for processing big data. It is vital that such large number of datasets should be adjusted to handle the dynamic process of workload through the existing computer resources [12; 14; 15]. A Hadoop cluster with a fixed size is shown to have problems when processing the streaming data and it is also not cost-effective for the cloud resources since it does not use fully its resources when the data load on the cluster is low. In [13], [PERSON] and [PERSON] introduced a method to scale down the cluster to improve the resource use and energy consumption for cost efficiency. In the proposed method, the removal of the cluster nodes was investigated, but the operation related to the scaling process was hardly considered. Also, when the workload exceeds, the capacity of computing resources will be degraded. Aiming to optimise the Hadoop cluster, [PERSON] et al. proposed in [17] a Hadoop cluster reconfiguration and data replacement to either shut or open the instances by checking the resource use rate. However, before removing the node, the stored data on one instance has to be transferred to another node, which may take a long time for extensive data. The scaling issue was also not fully managed when adding machines would even cause a higher cost given limited physical machines and infrastructure. Cloud computing has emerged as a solution for scaling instances by using clusters as web services [1; 3; 4]. In [18], a customised load balancing and a distributed dynamic algorithm were proposed for auto-scaling of virtual clusters with a load balancer which can handle the requests sent from users for the EC2 instances in a dynamic manner. The EC2 virtual instances can be either increased or decreased as per-the-CPU use and with respect to incoming user requests on the virtual nodes, whereas the load balancer can distribute the incoming data traffic automatically on the EC2 instances, containers and network IP addresses. Although the proposed load balancer offers automatic scaling, robust security and high availability for fault-tolerant applications, it does not support Hadoop for processing large volume of data. In [12], MapReduce was proposed as a solution for big data analysis with Apache Hadoop over Hadoop Distributed File System (HDFS). Specifically, minimisation technique was applied for indexing along with shuffling, sorting, mapping and reducing the files. The MapReduce supports distributed and parallel input/output scheduling which is tolerant to failures and thus promote the scalability of cloud with large dataset, especially when considering dynamic processing workload. Integrated with MapReduce, Apache Hadoop has been designed to be able to scale up from a single system to multiple systems [12], in which MapReduce is employed as a programming model for processing and distributing java based computing. Basically, MapReduce contains two major tasks including [9; 10]: (i) _Map stage_: converting a data set into some other data sets where individual elements are referred as keys or value pairs; and (ii) _Reduce stage_: Fetch the results from the Map stage, which are then transformed into smaller sets.