Computers, Environment and Urban Systems xxx (2015) xxx–xxx Contents lists available at ScienceDirect Computers, Environment and Urban Systems journal homepage: www.elsevier.com/locate/compenvurbsys An efficient data processing framework for mining the massive trajectory of moving objects Yuanchun Zhou a,1, Yang Zhang a,1, Yong Ge b, Zhenghua Xue a, Yanjie Fu c, Danhuai Guo a, Jing Shao a, Tiangang Zhu a, Xuezhi Wang a, Jianhui Li a,⇑ a b c Computer Network Information Center, Chinese Academy of Sciences, Beijing, China Department of Computer Science, University of North Carolina at Charlotte, NC, USA MSIS Department, Rutgers, The State University of New Jersey, NJ, USA a r t i c l e i n f o Article history: Available online xxxx Keywords: Big data Trajectory of moving object Compression contribution model Parallel linear referencing Two step consistent hashing a b s t r a c t Recently, there has been increasing development of positioning technology, which enables us to collect large scale trajectory data for moving objects. Efficient processing and analysis of massive trajectory data has thus become an emerging and challenging task for both researchers and practitioners. Therefore, in this paper, we propose an efficient data processing framework for mining massive trajectory data. This framework includes three modules: (1) a data distribution module, (2) a data transformation module, and (3) a high performance I/O module. Specifically, we first design a two-step consistent hashing algorithm, which takes into account load balancing, data locality, and scalability, for a data distribution module. In the data transformation module, we present a parallel strategy of a linear referencing algorithm with reduced subtask coupling, easy-implemented parallelization, and low communication cost. Moreover, we propose a compression-aware I/O module to improve the processing efficiency. Finally, we conduct a comprehensive performance evaluation on a synthetic dataset (1.114 TB) and a real world taxi GPS dataset (578 GB). The experimental results demonstrate the advantages of our proposed framework. Ó 2015 Elsevier Ltd. All rights reserved. 1. Introduction With the increasing development of sensor networks, global positioning systems, and wireless communication, people have collected more and more location traces of various moving objects, such as human beings and cars. These data have also been transmitted in a timely manner through world-wide information networks, which enable people to monitor and track moving objects in a real-time fashion (Guido & Waldo, 1983). Considerable amounts of useful and interesting information is hidden in such large scale spatio-temporal data (LaValle, Lesser, Shockley, Hopkins, & Kruschwitz, 2011; Yang et al., 2013), which have attracted much attention from both researchers and industry. The movement of many objects is restricted to specific routes. For instance, the movement of trains is restricted to rail, and most cars can only move along road networks. Such moving objects produce restricted trajectories, among which various moving patterns ⇑ Corresponding author at: Computer Network Information Center, Chinese Academy of Sciences (CNIC, CAS), 4,4th South Street, Zhongguancun, P.O. Box 349, Haidian District, Beijing 100190, China. Tel.: +86 010 5881 2518. E-mail address: [email protected] (J. Li). 1 These authors contributed equally to this work. of objects are embedded. For example, there are some speed patterns and traffic jam patterns in the trajectories of vehicles. There are some periodic patterns and association patterns in the trajectories of people. A large number of data mining works have been conducted to discover these patterns in a real-time or offline fashion (Han, Liu, & Omiecinski, 2012; Li, Ding, Han, & Kays, 2010; Li, Ji, et al., 2010; Nanni & Pedreschi, 2006; Ossama, Mokhtar, & ElSharkawi, 2011; Pelekis, Kopanakis, Kotsifakos, Frentzos, & Theodoridis, 2009). However, most data mining tasks with such large scale restricted trajectories usually face common challenges such as (1) data storage and processing intensity, (2) time demand, and (3) coordinate system transformation. To address these challenges, in this paper, we propose an efficient data processing framework for mining the massive trajectory data of restricted moving objects. Our framework consists of three modules: (1) a data distribution module, (2) a data transformation module, and (3) an I/O performance improvement module. Specifically we first propose a two-stage consistent hashing algorithm for the data distribution module. The main ideas include: (1) all data are first distributed to multiple nodes; (2) the data of each node are distributed to multiple disks. Unlike traditional consistent hashing algorithms, we add a load readjusting step to optimize load balancing. Parallelizing serial algorithms is a popular choice for enhancing http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 0198-9715/Ó 2015 Elsevier Ltd. All rights reserved. Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 2 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx data processing efficiency. For instance, cloud computing infrastructures (Agrawal, Das, & Abbadi, 2011; Armbrust et al., 2009; Yang, Wu, Huang, Li, & Li, 2011) partition computation into many subtasks, and then concurrently run those subtasks on multiple servers. Hence, we propose a parallel linear referencing strategy and establish a data transformation module based on the MPI parallel programming framework. Our parallelization strategy reduces the coupled interactions among subtasks, reduces interaction overhead and thus significantly improves the performance. Moreover, because frequent system I/Os also jeopardize the performance of processing big data, we design a compression-aware method to improve system I/O performance. Our method quantitatively analyzes the I/O performance contribution of data compression, automatically decides when to compress data, and intelligently balances compression rate and ratio. In this experiment, we perform detailed measurements and analysis, especially for the data distribution module and I/O performance improvement module. To measure the effectiveness on load balancing by the number of virtual nodes, we execute the proposed two-stage consistent hashing algorithm for 3000, 5000, 7000, and 9000 files. To meet appropriate load balancing and reduce system overhead, we set the number of virtual nodes as 400. In addition, we also compare the difference between the inclusion and exclusion of the load readjusting step (see Step 1.5 in Section 4). Experimental results show that the load readjusting step can greatly improve the performance of load balancing. To test the I/O performance improvement module, we take parallel K-means (Apache, 2014; Jain, Murty, & Flynn, 1999) clustering as the processing task and measure the performance of our proposed framework with 1.114 TB synthetic data and 578 GB taxi GPS data sets on a 14-server cluster machine. Table 1 presents the results of three data storage strategies for each iteration: (1) uniform distribution of data on the servers; (2) uniform distribution of data on high performance storage (Panasas) with a 1 Gb/s network; and (3) uniform distribution of data on a hadoop distributed file system (HDFS in short, see Section 7 for configuration details). We have two observations from Table 1: (1) data locality may result in higher efficiency than other storage strategies; (2) all three methods mentioned above perform very poorly in I/O performance because data reading occupies most of the computational time and thus makes CPUs always idle. Therefore, it is desirable to introduce an I/O performance improvement module (Xue et al., 2012) and relieve dramatic I/O latency. We quantitatively analyze the impact of a variety of factors of compression, such as compression ratio, compression rate, and compression algorithm. The performance improvement model can also effectively determine when and how to use compression to improve the performance. The remainder of this paper is organized as follows. In Section 2, we introduce the modules of our proposed framework. In Section 3, we provide a survey on the work regarding linear referencing, I/O performance improvement methods, the K-means clustering algorithm, and the clustering of trajectories of moving objects. Section 4 introduces a two-step consistent hash algorithm to allocate data on a server cluster with multiple disks for improving I/O performance. In Section 5, we design a parallel linear referencing strategy. In Section 6, we establish a mathematical model and analyze the I/O performance improvement aspect of data compression. Section 7 shows the experimental results of two large scale data sets. Finally we conclude our work in Section 8. 2. Data processing framework In this section, we describe the data processing framework. The proposed framework mainly includes three parts: a data distribution module, a data transformation module, and a Table 1 Comparison of three data storage strategies. Methods Reading duration (s) Iteration duration (s) Local Disk Panasas HDFS 1162 6540 12,426 1516 6854 26,132 compression-aware I/O performance improvement module. We present the data flow of our proposed framework in Fig. 1 As shown in Fig. 1, arrows stand for data flows between different processes. First, we distribute raw data to different disks of multiple computing nodes by the two-step consistent hashing algorithm (refer to Section 4). Then, a linear referencing transformation module converts these data trunks into projected data in parallel (see Section 5). Later, an I/O performance improvement module uses compression-aware strategy to perform proper compression. Finally, we conduct a K-means clustering algorithm in parallel. Data allocation plays a role in processing and analyzing large scale trajectory data. To this end, we propose a two-step consistent hashing strategy based on an existing consistent hashing algorithm. This strategy considers factors related to compression, such as data locality, load balancing, parallel, and remaining monotonic. More details are included in Section 4. Coordinate system transformation is a critical pretreatment process in mining the trajectory of moving objects. Linear referencing is a classic mechanism of coordinate system transformation, we therefore design a parallel strategy for linear referencing in a data transformation module. The proposed parallel algorithm has low coupling between subtasks, is easy to implement, and leads to low communication cost. We detail this component in Section 5. I/O is the main bottleneck of all big data processing tasks. Using a compression mechanism can effectively reduce the I/O cost of data processing. In this paper, we exploit the K-means clustering algorithm to cluster the trajectories of moving objects. Because the K-means algorithm reads all the data in each iteration, and often requires multiple iterations before converging, we quantitatively analyze the impact of compression ratio, compression rate, compression algorithm, and other factors related to compression on the processing performance. We also quantitatively analyze when and how to use compression and improve the processing performance. We will introduce more details in Section 6. Unlike existing works, the key modules of our data processing framework are specifically optimized for performance enhancement at all levels. Additionally, the modules of the framework are loosely coupled and can be independently applied to other big data analysis scenarios. In addition, this framework has no dependency on the data to be processed and can be applied to other similar big data processing applications. 3. Related work 3.1. K-means algorithm Extensive research on K-means clustering has been conducted in data mining research (Agarwal & Mustafa, 2004; Aggarwal, Wolf, Yu, Procopiuc, & Park, 1999; Aggarwal & Yu, 2002; Tung, Xu, & Ooi, 2005). However, when clustering large scale data larger than Terabytes in size, a serial K-means algorithm often fails. In contrast, parallel schemes show their advantages. For big data clustering, the research community has published several parallel K-means algorithms. Dhillon and Modha (2000) proposed a parallel implementation of the K-means algorithm based on message passing model and analyzed the algorithm’s scalability and speedup. Li Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx Fig. 1. Data processing framework. and Chung (2007) proposed a bisecting parallel K-means algorithm, which balanced the load among multiprocessors with a prediction measure. Based on the most popular parallel programming framework, MapReduce, (Lee, Lee, Choi, Chung, & Moon, 2012; Zhao, Ma, & He, 2009) proposed a parallel K-means algorithm and assessed the performance by speed-up, scale-up, and size-up. In this paper, we exploit the parallel K-means algorithm proposed by Dhillon, which has high scalability and efficiency (Dhillon & Modha, 2001). 3.2. Linear referencing algorithm Linear Referencing (LR) (Noronha & Church, 2002) is the specification of a location by means of a distance measurement along a sequence of road sections from a known reference point. Linear referencing is mainly used to manage data related to linear features such as railways, rivers, roads, oil and gas transmission pipelines, and power transmission lines. It is known that linear referencing is supported by multiple famous Geographic Information System software, such as ArcGIS (ESRI, 2014), GRASS GIS (Blazek, 2004), PostGIS (PostGIS, 2014), and GE Global Transmission Office (Energy, 2014). Because there is almost no suitable MPI based parallel linear referencing algorithm, we propose an innovative parallel implementation of Linear Referencing based on the MPI parallel programming model. 3.3. Clustering trajectory of moving objects Due to the challenge of fast clustering the large scale of moving objects, many successful and scalable methods on the clustering of moving objects have been proposed. Li, Han, and Yang (2004) proposed the concept a of moving micro-cluster to catch some regularities of moving objects and handle large datasets. This algorithm can maintain high quality moving micro-clusters and leads to fast competitive clustering results at any given time. Ossama et al. (2011) proposed a pattern-based clustering algorithm which adapts the K-means algorithm for trajectory data and overcomes the known drawbacks of the K-means algorithm. Li, Ding, et al. (2010) proposed the concepts of swarm and closed swarm, which enable the discovery of interesting moving object clusters with relaxed temporal constraints. The effectiveness and efficiency are respectively tested using real data and synthetic data. Han et al. (2012) proposed a road network aware approach, NEAT, for fast and effective clustering of spatial trajectories of 3 moving objects. Experimental results show that the NEAT approach runs orders of magnitude faster than existing densitybased trajectory clustering approaches. Nanni and Pedreschi (2006) proposed a density-based clustering method for moving object trajectories to discover interesting time intervals, where (when) the quality of the achieved clustering is optimal. Jensen, Lin, and Ooi (2007) proposed a fast and effective scheme for the continuous clustering of moving objects and used the dissimilarity notion to improve clustering quality and runtime performance. Then, they proposed a dynamic summary data structure and used an average-radius function to detect cluster split events. Pelekis et al. (2009) studied the uncertainty in the trajectory database and devised the CenTR-I-FCM algorithm for clustering trajectories under uncertainty. Li, Ji, et al. (2010) designed a system, MoveMine, for sophisticated moving object data mining. MoveMine provides a user-friendly interface and flexible tuning of the underlying methods. It benefits researchers targeting future studies in moving object data mining. Each of the existing clustering methods has its own advantages and disadvantages. For the purpose of generality and parallel performance, we implement the MPI based parallel K-means clustering method in our experiment. Genolini and Falissard (Christophe & Bruno, 2010) proposed a new implementation of K-means, named KmL, which is specifically designed for longitudinal data. It provides scope for dealing with missing values and runs the algorithm several times, varying the starting conditions and/or the number of clusters sought; its graphical interface helps the user choose the appropriate number of clusters when the classic criterion is not efficient. KmL gives much better results on non-polynomial trajectories. 3.4. Compression based I/O optimization More and more researchers are using data compression to improve I/O performance. Chen, Ganapathi, and Katz (2010) developed a decision-making algorithm that helps MapReduce users identify when and where to use compression and improve energy efficiency. However, Chen’s algorithm only considered the compression ratio and the frequency of reading. Abadi, Madden, and Ferreira (2006) extended C-Store (a column-oriented DBMS) with a compression sub-system and evaluated a set of compression schemes. Zukowski, Heman, Nes, and Boncz (2006) compared a set of super-scalar compression algorithms proposed with compression techniques used in commercial databases and showed that they significantly alleviate the I/O bottleneck. Lee, Winslett, Ma, and Yu (2002) proposed three methods for parallel compression of scientific data to reduce the data migration cost and analyzed eight scientific data sets. Welton et al. (2011) harnessed idle CPU resources to compress network data, to reduce the amount of data transferred over the network and increase effective network bandwidth. Different from the above methods, we integrate the compression mechanism into an MPI based clustering computing and quantitatively analyze the impact of multiple factors related to compression on the framework performance. 4. Data distribution algorithm Data distribution is significant in big data processing. To properly allocate large scale trajectory data, we argue that the following design goals (Karger et al., 1997, 1999) are desirable: Locality: Because networks are precious resource and usually a bottleneck especially for large scale data, all data blocks of a data file should be allocated on a single server as much as possible. It will effectively reduce network traffic when reading a big data file. Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 4 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx Load Balancing: Data files should be uniformly distributed among all servers for load balancing. Otherwise, processing duration will be delayed by the node associated with the largest data. Parallel: Other than uniformly distributing all files among all servers for simultaneous data processing, it is an effective way to stripe a big data file among all disks of a server for reading it in parallel. It makes use of aggregated disk I/O when reading a big data file. Monotonic: When some servers fail or more servers are added, system rebalancing should incur the least data moving. Along this line, we propose a two-step consistent hashing algorithm for big data distribution (see Fig. 2). CHA (Consistent Hashing Algorithm) (Karger et al., 1997, 1999) is widely used in parallel and distributed systems. The underlying idea is to hash both data objects and storage servers using the same hash function. It maps storage servers to an interval which contains multiple data object hashes. CHA enables load balancing by assigning data objects on different servers. However, it’s possible to have a non-uniform distribution of data objects among servers if servers are not enough. It introduces ‘‘virtual nodes’’ to virtually expand servers. By introducing virtual nodes, it achieves more balanced data distribution and meets our goals on load balancing. If a server is removed, its interval is taken over by a server with an adjacent interval; if a new server joins, data objects from their adjacent server will move into it. It guarantees the least data moving when server scale changes and meets our design goal on remaining monotonic. The two-step consistent hash algorithm (using the well-known FNV-1 hash function) is described as follows: Step 1: Assigning data files among servers according to a specified hash function. Step 1.1: Creating virtual nodes: create multiple virtual nodes names for each server by simply adding an index to server’s name. Step 1.2: Mapping virtual nodes: Take a virtual nodes’ name as the input of the hash function and map all virtual nodes into hash space which is a 1232-1 range circle. Step 1.3: Mapping data files: Take the names of data files as the input of the same hash function and map all data files into the same hash space circle. Step 1.4: Determining data files into virtual nodes: Start from where a data file is located and head clockwise on the ring until finding a virtual node. The data file is assigned to this virtual node. Step 1.5: Adjusting load: Sort virtual nodes by data amount. Move data files from the heavy nodes to the lightest node to make the lightest approach the average load. Repeat the step in the remaining nodes until the last node. Step 2: Stripping data files of each server into its multi-disks. Step 2.1: Creating virtual nodes: create multiple virtual node names for each disk by simply adding an index to disk’s name. Step 2.2: Mapping virtual nodes: Take a virtual nodes’ name as the input of hash function and map all virtual nodes into hash space which is a 1232-1 range circle. Step 2.3: Mapping data blocks: Split data files into a number of fixed size blocks. Take the names of data blocks as the input of the same hash function, then map all data blocks into the same hash space circle. Step 2.4: Determining data blocks into virtual nodes: Start from where a data block is and head clockwise on the ring until finding a virtual node. The data block is assigned to this virtual node. Here, Step 1 assigns data files to servers without splitting files. This enables reading a file without any network traffic, and it satisfies our design goal of locality. Step 1.5 is an additional step for a CHA. A CHA can guarantee that each server holds approximately the same number of files, but that’s not enough. Because data file sizes vary, each server actually has a different amount of data, especially in the case that file size varies to a great extent. Step 1.5 adjusts the data amount to make each server approach the average. Step 2 stripes a file into data blocks and then uniformly distributes blocks into multiple disks of a server according to a CHA. Each file is simultaneously read from multi-disks of a server, which provides parallelism within the scope of a server. Unlike conventional data distribution mechanisms, such as the Lustre file system, the proposed algorithm has the following advantages: (1) there is no need to store metadata, which avoids the single point of failure and reduces the system overhead; (2) this method assigns data files to servers without splitting files in Step 1, which greatly reduces network overhead when reading or writing data; (3) it makes full use of multi-disk aggregated I/O bandwidth to improve the performance; (4) step 1.5 can make appropriate readjustments for the hashed files among multiple servers, which achieves the approximate balance among servers; (5) the proposed algorithm is suitable for both large files and small files. In summary, the proposed two-step consistent hashing algorithm is superior to other traditional algorithms. 5. Parallel linear referencing strategy To improve the projection performance, we parallelize the linear referencing algorithm based on the MPI parallel programming framework. The parallel scheme is shown in Fig. 3. From Fig. 3, we can see that parallel strategy has low coupling among subtasks, which contributes to low communication costs among subtasks and easy implementation. The three circled digits in this figure indicate a specified order: (1) digit 1 denotes reading the road network data from local disks; (2) digit 2 denotes building the R-Tree index system using the road network data; and (3) digit 3 denotes reading trajectory records then performing a linear referencing operation. 6. Compression-aware I/O improvement module Fig. 2. Data distribution strategy. In the compression mechanism, an application does not directly read the raw data on a local disk. Instead, it first uses a Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx 5 compression algorithm with a high compression ratio and high compression and decompression speeds to read the compressed data into memory and then decompresses and calculates. Considering a K-means algorithm often iterates many times for the same data set before convergence, the larger the number of iterations is, the greater a performance improvement that compression will yield. Although using compression reduces I/O overhead, it introduces CPU overhead for compression and decompression. The improvement of clustering performance by using compression technology is related to multiple factors, such as data size, compression and decompression efficiency, and number of iterations. It’s desirable to design a mathematical model to quantitatively analyze the trade-off. Table 2 lists the used parameters. The parameters are determined by the properties of the dataset and hardware configuration (see Section 7). Fig. 3. Parallel linear referencing strategy. 6.1. Task decomposition In the process of K-means computation, we assign two types of processes: compression processes and computation processes. Compression processes entail reading the raw data from local disks, then compressing the raw data and writing compressed data back to disks. Computation processes involve reading the compressed data from local disks, and decompressing and calculating it. All processing of the data is performed in a block by block manner, as shown in Fig. 4: Under parallel conditions, we assume that each compression process takes Tcomp seconds to address a raw data block with the size of K. Tcomp consists of three parts: (1) Tcomp_read: duration of reading a data block with size K. (2) Tcomp_comp: duration of compressing the data block from the size of K to the size of K/l. (3) Tcomp_write: duration of writing compressed data with the size of K/l back to disks. Therefore, we can conclude Tcomp = Tcomp_read + Tcomp_comp + Tcomp_write Under parallel conditions, each computation process takes Tcalc to address a compressed data block with the size of K/l. Tcalc consists of three parts: (1) Tcalc_read: duration of reading a compressed data block with the size of K/l. (2) Tcalc_uncom: duration of decompressing the compressed data block from the size of K/l to the size of K. (3) Tcalc_calc: duration of calculating the uncompressed data with the size of K. Therefore, it concludes Tcalc = Tcalc_read + Tcalc_uncom + Tcalc_calc. In general, the K-means algorithm needs to iterate many times before convergence. Therefore, only in the first iteration is the data compression part necessary. In the subsequent iterations, it just uses the compressed data generated in the first iteration. We will analyze the first iteration and subsequent iterations. 6.2. Analysis for the first iteration To facilitate our analysis, we draw the timing diagram for compression processes and computation processes according to three different situations as shown in Fig. 5: In Fig. 5, Comp, Calc and Idle denote compression, computation and idle times, respectively. The green, blue and red boxes indicate the time taken by each compression process to address a raw data block, the time taken by each computation process to address a Table 2 Data and environmental parameters. Parameters Definitions d A d-dimensional dataset Dimensionality of dataset dS, 10 default Number of samples for dS, 15 billion default Ratio of the size of uncompressed data to the size of compressed data Size of a raw data block, 0.1123 default Size of a compressed data block Size of dataset dS, 1114.875 default Number of total processes, 336 default Number of compression processes Disk reading rate in GB/s, 0.08969 default S D g l K (GB) K/l (GB) D (GB) N M avai_band compressed data block and the idle time of compression/computation processes, respectively. We assume that there is a constant C, such that Tcomp = C ⁄ Tcalc. If and only if this constant satisfies C = M/(N M), namely Tcomp/Tcalc = M/(N M), N M computational processes need M compression processes to supply the compressed data. At this point, the processing rates of the compression process and the computation process are consistent. Only in this situation, the compression process resources and computation process resources can be fully utilized. When C > M/(N M), as shown in Fig. 5(a), the computation process is faster than the compression process. Computation waits for compression, and the value of M is smaller than that in the optimal situation. When C < M/(N M), as shown in Fig. 5(b), the compression process is faster than the computation process. Compression waits for calculation, and M is larger than in the optimal situation. When compression processes and calculation processes coexist, we design a synchronization mechanism between compression processes and calculation processes. When compression processes write compressed data onto disk, the file is named as ‘‘file.lzo.swp’’ until all compressed data writing is finished. Then, compression processes change the file name from ‘‘file.lzo.swp’’ to ‘‘file.lzo’’. The calculation processes continuously check whether the file ‘‘file.lzo’’ exists. If file ‘‘file.lzo’’ does not exist, calculation processes continue to check. When file ‘‘file.lzo’’ exists, the calculation processes read ‘‘file.lzo’’ from disk to memory and then perform calculation. When first C = N:0 (M = N), as shown in Fig. 5(c), there are no computation processes and all of the N processes work as compression processes to address all the raw data. Then, C = 0:N (M = 0), there are no compression processes and all of the N processes work as computation processes. Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 6 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx Fig. 4. Data flow chart. Fig. 5. Diagram for three situations. Based on the above analysis, we can obtain the formula of time T1(M) for the first iteration. 8 D C f ðD%ðK MÞÞ T calc 1 6 M 6 Cþ1 N > > K M lT comp þ m < D C T 1 ðMÞ ¼ T comp þ K ðNMÞ T calc N 6M 6N1 Cþ1 > > : D M¼N ðT comp þ T calc Þ K M ð1Þ where the function f(x) is: (l f ðxÞ ¼ x ðNMÞ K 1 m x–0 ð2Þ x¼0 T1(M) corresponds to three different situations in Fig. 5(a)–(c). Tcomp and Tcalc are related to the value of M, and they follow a non-linear relationship. We perform a polynomial fitting Tcomp and Tcalc versus M. To avoid overfitting, the order of the fitted function is set to three. Therefore, we can draw the curve of function T1(M) as shown in Fig. 6: In Fig. 6, the parameter D is set as 1141.875; Tcomp and Tcalc are substituted by the fitted functions Tcomp(M) and Tcalc(M); the parameter C is set as Tcomp/Tcalc; the number of processes N is set as 336. The figure illustrates that: (1) When a computation process is faster than compression, the trend of the red curve is relatively flat. The number of compression processes M has little effect on the time T1(M). (2) When compression is faster than the computation process, the green curve shows a slowly increasing trend with the increasing number of compression processes. When M is close to 280, the curve shows a sharp increasing trend. The number of compression processes M has a positive effect on the time T1(M). (3) When the compression is conducted before the computation, T1(M) will be a constant and is a little larger than the other two cases. Based on this analysis, we conclude that the appropriate choice of M can effectively improve the performance of parallel K-means application. 6.3. Analysis for all iterations 6.3.1. Analysis with compression In the second and subsequent iterations, execution processes are similar, and it is unnecessary to compress raw data. All N processes work as the computation processes. Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx 7 Therefore, it concludes T calc = Tcalc_read + Tcalc_calc. Based on the above analysis for various iterations, the total time Ttotal(S), without compression, taken by the program throughout the whole execution process can be formulated as: T total ðSÞ ¼ S X i¼1 D K N T calc ð6Þ 6.4. Compression contribution model To determine the circumstances under which the compression can improve the performance of the application, we perform subtraction between Ttotal(S) and Ttotal_com(S) as below: T total ðSÞ T total Fig. 6. Time for the first iteration versus the number of compression processes. Under parallel condition, each computation process takes Tcalc seconds to address a compressed data block with the size of K/l. Tcalc consists of three parts: (1) Tcalc_read: duration of reading a compressed data block with the size of K/l. (2) Tcalc_uncom: duration of decompressing the compressed data block from K/l to K. (3) Tcalc_calc: duration of calculating the uncompressed data block with the size of K. 2 3 D=l 7 Ti ¼ 6 7 T calc 6K 6 l N7 ð3Þ where S indicates the total number of iterations of parallel K-means application. Based on the above analysis, the total time Ttotal_com(S) taken by the application throughout the whole execution process can be formulated as: T total 2 3 S X D= l 6 7 T calc com ðSÞ ¼ T 1 þ 6 K 7 N7 i¼2 6 l ð4Þ Under a certain number of compression processes, T 1 indicates the minimum time taken by the first iteration and can be expressed as: T 1 ¼ max16M6N ðT 1 ðMÞÞ ð5Þ 6.3.2. Analysis without compression When compression is not adopted, each of the iterations of application has a similar execution process, and all N processes work as computation processes. Under parallel conditions, each computation process takes T calc seconds to address a raw data block with size K. To avoid ambiguity between formulas with compression and without compression, we use T calc here instead of Tcalc. ð7Þ If the compression mechanism is able to improve the performance of the program, the difference between Ttotal(S) and Ttotal_com(S) must satisfy: T total ðSÞ T total com ðSÞ >0 ð8Þ Therefore, the condition that the compression mechanism can improve the performance is that the number of iterations S must satisfies the following formula. SP T 1 D K N Therefore, we conclude Tcalc = Tcalc_read + Tcalc_uncom + Tcalc_calc and the time taken by the ith ð2 6 i 6 SÞ iteration is: D ðT ðSÞ ¼ S T Þ com calc calc K N D T calc T 1 þ K N D KN T calc ðT calc T calc Þ ð9Þ To facilitate the comparison, we draw the curve of Ttotal(S), as well as the curve of Ttotal_com versus the number of iterations, S: Fig. 7 shows that the application with compression takes more time for the first iteration. With an increasing number of iterations, the application with compression starts to takes less time than that without compression, and the gap between two curves will be larger. We can conclude that the larger the number of iterations, the higher the performance improvement the compression will yield. Especially for those applications with high real-time requirements, using compression can effectively improve the performance when dealing with large-scale data and many rounds of iterations. 7. Experiments and analysis In this section, we provide an empirical evaluation of the proposed data processing framework on real-world data. Specifically, we first establish an MPI cluster and conduct experiments to evaluate the three modules of the framework. The MPI cluster consists of 14 computing nodes that are interconnected with an Infiniband network. Additionally, to evaluate the I/O performance improvement module, we establish a Hadoop cluster for experimental comparison. The Hadoop cluster consists of 5 computing nodes interconnected by a Gigabit Ethernet network. Each node in the Hadoop cluster holds 24 computing cores, 32 GB memory size, and 12x1 TB disks. The CPU is Intel(R) Xeon(R) L5640 @2.27 GHz. The replication number of the Hadoop cluster is set as 3. 7.1. Experiments on data distribution module T calc consists of two parts: (1) Tcalc_read: duration of reading a raw data block with the size of K. (2) Tcalc_calc: duration of calculating the raw data block with the size of K. Here, we report the performance of our proposed data distribution strategy. We first test the file reading speed. While the speed is approximately 130 MB/s if the file is read from a single disk, our module reads a file from 12 disks of a server in parallel Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 8 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx Fig. 7. Time with and without compression. and achieves a higher speed of 860 MB/s. This result validates that Step 2 effectively improves the I/O performance. We then measure the effect of the number of virtual nodes. Specifically, we set different numbers of virtual nodes for each physical node and apply the consistent hashing algorithm to different file sets with four sizes (e.g., 3000, 5000, 7000, and 9000 files). Fig. 8 shows the load balance over different numbers of virtual nodes. The x-axis of Fig. 8 indicates the number of virtual nodes. The y-axis of Fig. 8 indicates (in log scale) how far the data amount on servers is spread out from the average. Fig. 8 shows that as the number of virtual nodes increases, the variance decreases gradually until the number of virtual nodes reaches 400. And then the variance fluctuates if the number of virtual nodes exceeds 400. We tune the parameter to achieve load balancing and reduce system overhead, and set the number of virtual nodes to 400 in the following experiments. Fig. 9 shows the comparison of performances with and without Step 1.5, where the variance shows how far data amounts on servers is spread out from the average. The comparison validates that Step 1.5 helps improve the load balancing as the file number grows. In sum, the two-step consistent hashing algorithm improves the data distribution task from all four aspects: locality, load balancing, parallel, and monotonic. 7.2. Experiments on I/O improvement module In our experiments, we used an MPI cluster with 336 cores to run a parallel program for the K-means clustering algorithm that is implemented by a message-passing interface programming model. Compared to the MPI based implementation of K-means algorithm, we also performed the parallel implementation based on MapReduce parallel programming framework. Table 3 lists the initial value of environmental parameters. These parameters are determined by the properties of the dataset and the hardware configuration. LZO, LZMA, Gzip and Bzip in Table 3 indicate four different compression algorithms, respectively, used by the following measurements and analysis. Initial values of parameters are measured on our computing clusters and may not be the same as those of others. 7.2.1. Analysis for the first iteration 7.2.1.1. Analysis of the first compression then computation (Use LZO only). Fig. 5(c) shows that there is no coexistence for compression Fig. 8. Comparison of load balancing using various numbers of virtual nodes. Fig. 9. Comparison of load balancing using CHA with and without Step 1.5. processes and computation processes and no direct interaction between them. Therefore, the time Tcomp taken by compression processes to address a raw data block and the time Tcalc taken by computation processes to address a compressed data block can be viewed as fixed values. Then, the total execution time of the application can be formulated as: T total D com ðSÞ ¼ K N 2 3 S X D= l 6 7 T calc T comp þ 6 K 7 N7 i¼1 6 l ð10Þ To facilitate the analysis, we draw three curves: (1) Total execution time without compression predicted by Formula 6, Ttotal(S). (2) Total execution time with compression predicted by Formula 10, Ttotal_com(S). (3) Total execution time with compression by real measured data. Fig. 10 shows that the application with compression takes a longer time for the first and the second iterations. As the number of iterations increases, the application with compression starts to take less time than that without compression, and the growing Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 9 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx Table 3 Initial parameters (where avai_band indicates the average disk bandwidth, uncom_speed indicates the speed of decompression, and l indicates the ratio of the size of uncompressed data to the size of compressed data). Parameters Default initial value K D N M avai_band uncom_speed for uncom_speed for uncom_speed for uncom_speed for l for the LZO l for the LZMA l for the Gzip l for the Bzip 0.1123 GB 1141.875 GB 336 14336 0.08969 GB/s 0.108 GB/s 0.0064 GB/s 0.0053 GB/s 0.0038 GB/s 2.313 5.004 4.107 5.646 LZO LZMA Gzip Bzip gap between the blue, green and red curves shows that the performance improvement by compression will be more obvious as the number of iterations increases. Fig. 10. Time with and without compression. 7.2.1.2. Analysis of comparative speeds between compression and computation (Use LZO only). Fig. 5(a) and (b) show that there are concurrent compression processes and computation processes. To facilitate comparative analysis of the first iteration, we draw curves when the compression is faster than the computation, when the computation is faster than the compression, and the corresponding real measured data versus the number of compression processes. Fig. 11 shows that, when the number of compression processes is less than 280, the pink curve is more consistent with the red curve than the green one. When the number of compression processes is greater than 280, the pink curve is more consistent with the green curve than the red one. After processing the measured data, we found that when the number of compression processes is less than 280, the measured data for Tcomp and Tcalc satisfy the following inequality, which means that the computation process is faster than compression. T comp M > NM T calc ð11Þ When the number of compression processes is greater than 280, the measured data for Tcomp and Tcalc satisfy the following inequality, which means that compression is faster than the computation. T comp M < NM T calc ð12Þ Based on the above discussions, we can conclude that the T1(M) function is consistent with the measured data and provides an accurate description of the relationship between the execution time of the first iteration and the number of compression processes. T1(M) can also provide a strong criterion to set an appropriate number of compression processes to minimize execution time of the first iteration. 7.2.2. Analysis for all iterations 7.2.2.1. Analysis of the number of iterations (Use LZO only). We draw predicted curves in Fig. 12. As Fig. 12 shows, curves without compression are higher than those with compression for the first iteration. For the second and subsequent iterations, the application does not need to compress data. Then, curves with compression are flattened and are lower than those without compression. As the number of iterations increases, the gap between curves with compression and those without compression becomes larger. The performance improvement will be more significant as the number of iterations increases. Fig. 11. Time for the first iteration. 7.2.2.2. Analysis of the compression ratio. Empirically, the higher the compression ratio, the lower the compression speed is. Assuming that the compression ratio l and the decompression speed uncom_speed satisfy the formula: l = comp_coeff/uncom_speed, where comp_coeff is a coefficient related to the specific compression algorithm. The formula of the total execution time for the application can be transformed to: T total com ðSÞ ¼ T 1 þ S X K l i¼2 D K N 1 K þ þ T calc av ai band comp coeff calc ð13Þ When the application iterates multiple times, to facilitate the analysis, the performance improvement of the first iteration by compression is negligible and T 1 can be viewed as a fixed value. Based on the above assumptions and the formula, we can see that compression only has influence on Tcalc_read and Tcalc_uncom. To intuitively analyze the influence on the total execution time of the compression ratio, we draw the contour figure for the sum of Tcalc_read and Tcalc_uncom versus the compression ratio and compression coefficient comp_coeff as shown in Fig. 13. The value of the curves Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 10 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx Fig. 12. Time versus the number of iterations. Fig. 13. Comparison of the duration taken by each compression algorithm. corresponds to the value of the sum of Tcalc_read and Tcalc_uncom, the x-axis indicates the compression ratio defined in Table 2, and the y-axis indicates the compression coefficient. Fig. 13 illustrates that as the compression ratio increases, the time taken to read uncompressed data and to decompress data decreases steadily. In addition, we also performed a comparative analysis on the effects of the four common compression algorithms on the time Tcalc_read + Tcalc_uncom. The curves in red asterisks, in green inverted triangles, in purple boxes, and in blue circles indicate the time taken by the LZO, LZMA, Gzip, and Bzip algorithms, respectively. Among these compression algorithms, the LZMA algorithm outperforms the others. 7.2.2.3. Analysis of the number of processes (Use LZO only). In Fig. 14, we can see that the total execution time shows a steady decrease as the number of processes increases. Especially, when the number of the processes is small, the performance improvement is significant. As the number of processes exceeds a certain number, the performance improvement is no longer very clear. In addition, compression greatly reduces the execution time taken by the application. When the number of processes is small, compression does not improve the performance of the program. As the number of processes increases, the gap between curves with the compression and those without the compression becomes larger and larger. 7.2.2.4. Analysis of the data size (Use LZO only). Fig. 15 shows that the two predicted time curves are approximately proportional to the data size. As the amount of data increases, the gap between the curves with compression and those without compression becomes larger and larger. When the amount of data approaches to 1000 GB, the time taken by MPI application with compression is approximately only half of that without compression. However, the measured time taken by MapReduce application with compression is not reduced significantly. In this experiment, the MPI parallel programming and MapReduce parallel programming models both integrate the LZO compression algorithm to improve performance. However, the difference of performance between MPI and MapReduce is very obvious. We think there are two possible reasons: (1) the parallel K-means algorithm needs to perform a reducing operation for all computing subtasks. MPI performs the reducing operation by inter-process communication, however MapReduce performs the reducing operation by writing and reading data onto disks. For a data interexchange among computing subtasks with a fixed Fig. 14. Time versus the number of total processes. amount of data, the cost of disk I/O is much higher than the cost of network I/O. Therefore, an MPI parallel programming model is more suitable for parallel K-means implementation. (2) Compared to MPI, MapReduce has additional costs of high reliability, data replication, and a fault-tolerance mechanism. For this reason, MPI parallel programming models can provide more efficient performance for the iterative K-means algorithm. When the amount of data is less than 400 GB, without compression, the measured curve by MPI application shows different performance when compared to the predicted result, due to memory. When the memory can hold all the data, the second and subsequent iterations no longer need the disk I/O operations. Therefore, the measured curve by MPI is significantly lower than the predicted one. As the amount of data increases, until the memory is not able to hold all the data, the memory will not contribute to the performance improvement between two neighboring iterations. Therefore, an effective use of memory can greatly improve the performance of the application. Actually, we can adopt a memory trick in the parallel K-means algorithm to improve its performance. Suppose that the order of data blocks accessed in the ith iteration is: 1, 2, . . . , P, then the order of data blocks accessed in the (i + 1)th iteration can be set to: P, . . . , 2, 1. In this way, the (i + 1)th iteration Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 11 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx can use the left data of the ith iteration in memory and thereby reduce the I/O overhead to enhance the overall performance of the program. Experimental results show that this trick can achieve a 30% reduction in disk I/O overhead. whether exists a passenger on taxi, taxi speed (km/h), taxi driving direction, and driving time (hours). To improve the clustering performance, we adopt the compression-aware I/O strategy and integrate the LZO compression algorithm into an MPI-based parallel K-means algorithm. We then compare the experimental results between the taxi GPS data (see Table 4) and the synthetic data (see Table 5). Here, Calc, Redu, I/O, and Total indicate the calculation cost, I/O cost communication cost, and the total cost in each iteration, respectively. Table 4 shows that the use of LZO compression increases the calculation cost by 47.88%, but LZO totally contributes to 58.16% performance improvement. Because the size of the compressed taxi GPS data is less than the memory size of computing nodes, the I/O cost is reduced by 99.99%. Due to the data cached in memory at each iteration, the I/O performance improvement is negligible. To avoid the impact of cache, we use synthetic data, in which the compressed data size is greater than the memory size. We then perform the clustering task and the results are listed in Table 5. Table 5 shows that the use of LZO compression increases the calculation cost by 21.29%, but LZO brings a 71.83% reduction to I/O cost. At each iteration of parallel K-means clustering of trajectory of moving objects, the use of LZO compression algorithm still contributes a 57.86% cost reduction. The compression-aware I/O performance improvement module improves the I/O performance and the overall performance of framework significantly. 7.3. Experiments on clustering of trajectory 8. Conclusions In this section, we performed K-means clustering on trajectory data. The trajectory data used in this experiment was collected from taxi vehicles in a city, which consists of 23,876 taxis. For each taxi, the GPS system samples a location record every 30 s. Each record includes the following attributes: license plate number, the current time, whether there is a taxi passenger, current taxi speed (km/h), taxi driving orientation, and taxi location by longitude and latitude. The trajectory data of all the taxis of each day are stored as a file, which consists of approximately 50 million records. The trajectory data of the whole year consists of approximately 18 billion records, which occupies approximately 578 GB disk space. For the longitude and latitude of each record, we perform a linear referencing projection operation after which the original longitude and latitude coordinates are transformed into projected linear coordinates. Each linear coordinate includes: projected longitude, projected latitude, and the distance between a milepost and the projected point. In the clustering stage, the data to be clustered includes 8 attributes: road ID, longitude and latitude of the projection point, distance between the milepost and the projection point, In this paper, we present a novel framework for efficient processing of trajectory data. Our proposed framework consists of three modules: (1) a big data distribution module based on a two-step consistent hashing algorithm, (2) a data transformation module based on a parallel linear referencing strategy, and (3) a compression-aware I/O performance improvement module. We take a K-means clustering algorithm as an example, and conduct extensive empirical studies with large scale synthetic data and real-world GPS data. The experimental results show that our two-step consistent hashing algorithm can achieve the effectiveness of locality, load balancing, parallel, and remain monotonic while improving the performance significantly. The proposed parallel linear referencing strategy has low coupling and low communication costs among subtasks and can be implemented easily, and the compression-aware performance improvement model is capable of providing effective decision support on how to use compression to improve I/O performance. For future works, we will extend our compression model to take network transmission into consideration because data interchange is sometimes inevitable. We are also interested in applying the Fig. 15. Time versus the data size. Table 4 Duration (D) and Duration Trend (DT) with/without LZO compression in one iteration (taxi GPS data). Without LZO compression D (s) DT (%) With LZO compression Calc Redu I/O Total Calc Redu I/O Total 114.94 0.0 226.39 0.0 479.56 0.0 820.89 0.0 169.97 +47.88 163.08 27.97 0.06 99.99 343.45 58.16 Table 5 Duration (D) and Duration Trend (DT) with/without LZO compression in one iteration (Synthetic data). Without LZO compression D (s) DT (%) With LZO compression Calc Redu I/O Total Calc Redu I/O Total 182.20 0.0 50.26 0.0 1088.85 0.0 1321.31 0.0 220.99 +21.29 29.04 42.22 306.72 71.83 556.75 57.86 Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004 12 Y. Zhou et al. / Computers, Environment and Urban Systems xxx (2015) xxx–xxx data distribution algorithm and I/O performance improvement algorithm to large scale data processing and analysis in other domains. Acknowledgements This work is supported by Chinese ‘‘Twelfth Five-Year’’ Plan for Science & Technology Support under Grant Nos. 2012BAK17B01 and 2013BAD15B02, the Natural Science Foundation of China (NSFC) under Grant Nos. 91224006, 61003138 and 41371386, the Strategic Priority Research Program of the Chinese Academy of Sciences under Grant Nos. XDA06010202 and XDA05050601, the joint project by the Foshan and the Chinese Academy of Sciences under Grant No. 2012YS23. References Abadi, D., Madden, S., & Ferreira, M. (2006). Integrating compression and execution in column-oriented database systems. In Proceedings of the 2006 ACM SIGMOD international conference on management of data (pp. 671–682). Chicago, IL, USA: ACM. Agarwal, P. K., & Mustafa, N. H. (2004). K-means projective clustering. In Proceedings of the twenty-third ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems (pp. 155–165). Paris, France: ACM. Aggarwal, C. C., Wolf, J. L., Yu, P. S., Procopiuc, C., & Park, J. S. (1999). Fast algorithms for projected clustering. SIGMOD Record, 28, 61–72. Aggarwal, C. C., & Yu, P. S. (2002). Redefining clustering for high-dimensional applications. IEEE Transactions on Knowledge and Data Engineering, 14, 210–225. Agrawal, D., Das, S., & Abbadi, A. E (2011). Big data and cloud computing: Current state and future opportunities. In Proceedings of the 14th international conference on extending database technology (pp. 530–533). Uppsala, Sweden: ACM. Apache (2014). Apache Mahout: Scalable machine learning and data mining. Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R. H., Konwinski, A., et al. (2009). Above the clouds: A Berkeley view of cloud computing. Berkeley: EECS Department, University of California. Blazek, R. (2004). Introducing the linear reference system in GRASS. In FOSS/GRASS user conference. Bangkok, Thailand. Chen, Y., Ganapathi, A., & Katz, R. H. (2010). To compress or not to compress – Compute vs. IO tradeoffs for mapreduce energy efficiency. In P. Barford, J. Padhye, & S. Sahu (Eds.), Green networking (pp. 23–28). ACM. Christophe, M. Genolini, & Bruno, Falissard (2010). KmL: k-means for longitudinal data. Computational Statistics, 2, 317–328. Dhillon, I. S., & Modha, D. S. (2001). Method and system for clustering data in parallel in a distributed-memory multiprocessor system. Google Patents. Dhillon, I. S., & Modha, D. S. (2000). A data-clustering algorithm on distributed memory multiprocessors. In Revised papers from large-scale parallel data mining, workshop on large-scale parallel KDD systems, SIGKDD (pp. 245–260). SpringerVerlag. Energy, G. E. (2014). Small World Global Transmission Office. ESRI (2014). ArcGIS desktop help 9.3: An overview of linear referencing. Guido, D., & Waldo, T. (1983). Push-pull migration laws. Annals of the Association of American Geographers, 73, 1–17. Han, B., Liu, L., & Omiecinski, E. (2012). NEAT: Road network aware trajectory clustering. In Proceedings of the 2012 IEEE 32nd international conference on distributed computing systems (pp. 142–151). IEEE Computer Society. Jain, A. K., Murty, M. N., & Flynn, P. J. (1999). Data clustering: A review. ACM Computing Surveys, 31, 264–323. Jensen, C. S., Lin, D., & Ooi, B. C. (2007). Continuous clustering of moving objects. IEEE Transactions on Knowledge and Data Engineering, 19, 1161–1174. Karger, D., Lehman, E., Leighton, T., Panigrahy, R., Levine, M., & Lewin, D. (1997). Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web. In Proceedings of the twenty-ninth annual ACM symposium on theory of computing (pp. 654–663). El Paso, Texas, USA: ACM. Karger, D., Sherman, A., Berkheimer, A., Bogstad, B., Dhanidina, R., Iwamoto, K., et al. (1999). Web caching with consistent hashing. In Proceedings of the eighth international conference on World Wide Web (pp. 1203–1213). Toronto, Canada: Elsevier North-Holland, Inc. LaValle, S., Lesser, E., Shockley, R., Hopkins, M. S., & Kruschwitz, N. (2011). Big data, analytics and the path from insights to value. MIT Sloan Management Review, 52, 11. Lee, K.-H., Lee, Y.-J., Choi, H., Chung, Y. D., & Moon, B. (2012). Parallel data processing with MapReduce: A survey. SIGMOD Record, 40, 11–20. Lee, J., Winslett, M., Ma, X., & Yu, S. (2002). Enhancing data migration performance via parallel data compression. In Proceedings of the 16th international parallel and distributed processing symposium (pp. 142). IEEE Computer Society. Li, Y., & Chung, S. M. (2007). Parallel bisecting k-means with prediction clustering algorithm. The Journal of Supercomputing, 39, 19–37. Li, Z., Ding, B., Han, J., & Kays, R. (2010). Swarm: Mining relaxed temporal moving object clusters. Proceedings of the VLDB Endowment, 3, 723–734. Li, Y., Han, J., & Yang, J. (2004). Clustering moving objects. In Proceedings of the tenth ACM SIGKDD international conference on knowledge discovery and data mining (pp. 617–622). Seattle, WA, USA: ACM. Li, Z., Ji, M., Lee, J.-G., Tang, L.-A., Yu, Y., Han, J., et al. (2010). MoveMine: Mining moving object databases. In Proceedings of the 2010 ACM SIGMOD international conference on management of data (pp. 1203–1206). Indianapolis, Indiana, USA: ACM. Nanni, M., & Pedreschi, D. (2006). Time-focused clustering of trajectories of moving objects. Journal of Intelligent Information Systems, 27, 267–289. Noronha, V., & Church, R. L. (2002). Linear referencing and alternate expressions of location for transportation. Santa Barbara: Vehicle Intelligence & Transportation Analysis Laboratory University of California. Ossama, O., Mokhtar, H. M. O., & El-Sharkawi, M. E. (2011). Clustering moving objects using segments slopes. International Journal of Database Management Systems (IJDMS), 3, 35–48. Pelekis, N., Kopanakis, I., Kotsifakos, E., Frentzos, E., & Theodoridis, Y. (2009). Clustering trajectories of moving objects in an uncertain world. In Proceedings of the 2009 ninth IEEE international conference on data mining (pp. 417–427). IEEE Computer Society. PostGIS (2014). PostGIS 1.5.2 manual. Tung, A. K. H, Xu, X., & Ooi, B. C (2005). CURLER: Finding and visualizing nonlinear correlation clusters. In Proceedings of the 2005 ACM SIGMOD international conference on management of data (pp. 467–478). Baltimore, Maryland: ACM. Welton, B., Kimpe, D., Cope, J., Patrick, C. M, Iskra, K., & Ross, R. (2011). Improving I/ O forwarding throughput with data compression. In Proceedings of the 2011 IEEE international conference on cluster computing (pp. 438–445). IEEE Computer Society. Xue, Z., Shen, G., Li, J., Xu, Q., Zhang, Y., & Shao, J. (2012). Compression-aware I/O performance analysis for big data clustering. In Proceedings of the 1st international workshop on big data, streams and heterogeneous source mining: Algorithms, systems, programming models and applications (pp. 45–52). Beijing, China: ACM. Yang, C., Wu, H., Huang, Q., Li, Z., & Li, J. (2011). Using spatial principles to optimize distributed computing for enabling the physical science discoveries (pp. 5498– 5503). Yang, C., Sun, M., Liu, K., Huang, Q., Li, Z., Gui, Z., et al. (2013). Contemporary computing technologies for processing big spatiotemporal data. Space-time integration in geography and GIScience: Research frontiers in the US and China. Springer. Zhao, W., Ma, H., & He, Q. (2009). Parallel K-means clustering based on MapReduce. In Proceedings of the 1st international conference on cloud computing (pp. 674–679). Beijing, China: Springer-Verlag. Zukowski, M., Heman, S., Nes, N., & Boncz, P. (2006). Super-scalar RAM-CPU cache compression. In Proceedings of the 22nd international conference on data engineering (pp. 59). IEEE Computer Society. Please cite this article in press as: Zhou, Y., et al. An efficient data processing framework for mining the massive trajectory of moving objects. Computers, Environment and Urban Systems (2015), http://dx.doi.org/10.1016/j.compenvurbsys.2015.03.004
© Copyright 2024