You are on page 1of 22

JOURNAL 

OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019 51
 

Digital Object Identifier:10.11989/JEST.1674-862X.80926105

Components and Development in Big Data


System: A Survey
Jing-Huan Yu* | Zi-Meng Zhou
 
Abstract—With the growth of distributed computing systems, the modern Big Data analysis platform products often
have diversified characteristics. It is hard for users to make decisions when they are in early contact with Big Data
platforms. In this paper, we discussed the design principles and research directions of modern Big Data platforms by
presenting research in modern Big Data products. We provided a detailed review and comparison of several state-of-
the-art  frameworks  and  concluded  into  a  typical  structure  with  five  horizontal  and  one  vertical.  According  to  this
structure, this paper presents the components and modern optimization technologies developed for Big Data, which
helps  to  choose  the  most  suitable  components  and  architecture  from  various  Big  Data  technologies  based  on
requirements.

Index Terms—Big Data, cloud computing, data analysis, optimization, system architecture.

1. Introduction
Big Data means a collection of data that can not be crawled, managed, and processed by traditional software
tools  over  a  specified  time.  Big  Data  technologies  refer  to  the  ability  to  quickly  obtain  valuable  information  from
various types of data[1]. To keep with the desire to store and analyze the daily growth of complex data, a significant
number of analytical platforms are available for analysis of complex structured and unstructured data, each of them
is designed to handle specific types of data/workloads[2],[3].
This article describes the common features in Big Data platforms’ development according to some modern
research. It also lists out some widely-used components and applications of Big Data while exploring those
products in use[4]-[10].

1.1. Applications in Big Data


Big Data technologies are widely used in our daily life. Data analytics is the primary purpose and core feature of
 
*Corresponding author
Manuscript received 2018-09-26; revised 2018-11-05.
This work was supported by the Research Fund of Tencent Computer System Co. Ltd. under Grant No. 170125.
J.-H. Yu and Z.-M. Zhou are with the Department of Computer Science, City University of Hong Kong, Hong Kong 999077, China
(e-mail: jinghuanyu2-c@my.cityu.edu.hk; zmzhou4-c@my.cityu.edu.hk).
Color versions of one or more of the figures in this paper are available online at http://www.journal.uestc.edu.cn.
Publishing editor: Xin Huang

Copyright © 2019 University of Electronic Science and Technology of China. Publishing Services provided by Elsevier B.V. on behalf of KeAi.
This is an open access article under the CC BY-NC-ND License (http://creativecommons.org/licenses/by-nc-nd/4.0/ ).
52 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

Big  Data.  With  amounts  of  data  emanating  from  various  digital  sources,  the  importance  of  data  analytics  has
tremendously  grown  all  these  years.  There  are  many  industries  that  have  been  propelled  by  Big  Data,  the  most
representative ones are as follows.
1) Big Data contributions to public healthcare
At all time, healthcare is always a social issue to be considered and benefited from the raising of Big Data.
By keeping track of all the patients’ histories, it can significantly help physicians doing long-term experimental
projects.  With  the  massive  data  storage  technology,  it  makes  sure  that  once  a  patient  receives  treatment,
her/his data will be safely stored in the data center.
2) Big Data contributions to public sectors
In public sectors, Big Data techniques can provide wide areas searching from corner to corner in various public
sector units and allied unions. By providing an extensive range of facilities and pipes for data collecting, Big Data
can  build  a  wide  area  monitory  system  including  the  power  grid  maintenance,  deceit  recognition,  financial
promotion investigation, ecological fortification, etc.
3) Big Data contributions to education
Teaching  by  their  aptitudes  is  a  critical  concept  in  education,  but  the  lack  of  educational  resources  and
population  bases  makes  this  concept  rarely  used  in  real  life.  Data-driven  classrooms  provide  a  solution  much
further  than  just  coursework  reformation  and  grading  development.  By  collecting  various  online  resources  and
customized  intelligent  recommendation  services  for  both  students  and  teachers,  these  applications  can  provide
adaptive learning solutions and problem tracking services for educators.
4) Big Data contributions to banking zones and fraud detection
From  a  certain  level,  Big  Data  techniques  are  designed  for  the  area  at  first.  With  the  raising  of  anomaly
detection, the usage of Big Data has been widely expanded. Detecting the misuse of credit cards or debit cards,
archival inspection tracks, and venture credit hazard treatment are the basic usages of Big Data technologies.

1.2. Challenges and Complex Architecture in Big Data


With  the  widespread  use  of  these  techniques,  several  challenges  in  Big  Data  have  exposed[11].  Privacy  and
security, accessing and sharing of information, analytical challenges, and so on make the optimization of Big Data
technologies desperately needed. The common motivation of expanding these techniques is to find an alternative
way to achieve the highest performance in a cost-effective manner and under given limitation by mostly utilizing the
desired factors.
Big  Data  applications,  due  to  their  complex  components  and  frequent  updates,  form  a  unique  application
ecosystem  based  on  the  aggregation  of  computing  engines.  In  this  paper,  we  focus  on  the  products  and  their
improvements in the integration of disparate data sources[12]-[14], combination with high-performance hardware[15],[16],
and  execution  process  optimization[17]-[19].  According  to  the  projects  studied  during  the  research  period,  we
summarized  these  components  into  a  five-horizontal-and-one-vertical  structure  to  help  to  learn  and  organize  the
Big Data products from the inside.

2. Vision of Conclusion
Fig. 1 is a partitioning method proposed in this paper, consisting of four main layers and six different modules.
Moreover, it should be noticed that this picture does not mean the dependency relationship between each layer.
The  criteria  for  this  classification  are  based  on  the  primary  use  of  each  layer.  Moreover,  components  playing
several roles in different systems may only be mentioned about its most representative function. The exact layer of
these components divided into is based on its typical use case.
YU et al.: Components and Development in Big Data System: A Survey 53
 

Application Intelligent
layer Integrated access Decision support recommendation Deceit recognition Inspection tracks
Management
layer

Data processing layer Development


management
Toolkit
Data providing
access Real-time query Multi-dimensional query SQL-based calculating
module Data stroage interfaces & meta data protocols Interface
accessing

Native framework Secondary development framework


Data
Data Algorithm driver Translator & optimizer management
analysis Execution Cluster
scheduler Meta data
module requester storage
Hardware interfaces Calculating module interfaces
Data
quality
control

Data
calculating Batch processing components Hybrid processing components Stream processing componets
module
Maintenance
management

Alert
detecting

Data Structured data storage Semi-structured data storage Unstructured data storage System
collecting monitor
layer
Internet resources
Offline collecting Real-time collecting collecting Third-party data collecting

Fig. 1. Five-horizontal-and-one-vertical structure.

2.1. Application Layer


The  user  application  layer  is  the  level  that  users  can  directly  contact,  access,  and  control.  According  to  the
characteristics of the enterprise, we divide applications into different types such as Web services, integrated data
access[8], and decision support[4]. Most of the products in this level aim at the specific needs of customers and
customized development of the company’s main business. The specific functions and implementations rely on
various  development  frameworks  and  message  components,  which  are  the  primary  embodiment  of  cloud
computing products.

2.2. Data Processing Layer


Data processing layer is the most complex part of Big Data applications. System architects always face various
choices on where to process their data, each choice with possible orders of magnitude differences concerning the
performance. Though there are many related studies like cross-platform framework[12], full stack support, and other
solutions  (which  will  be  mentioned  more  in  Section  4)  to  simplify  this  layer  in  recent  years[13],  the  challenges
mentioned above are evident in this layer. In order to have more universal and flexible architecture to meet different
system requirements, we divide this layer into three smaller modules.
1) Data access module
Components  in  this  module  are  mainly  to  achieve  read-write  separation  and  the  application-oriented  query,
providing direct data access interfaces for application services like on-line transaction processing (OLTP) and on-
line  analytical  processing  (OLAP).  In  addition  to  traditional  relation  database  management  system  (RDBMS)  and
data warehouses like Oracle and DB2, the open source database is an important type of service that constitutes
this level[20]. Compared with solutions that are maintained by the company and constantly tapping the requirements,
open source solutions tend to be built for a specific need.
In  modern  Big  Data  platforms,  there  are  three  kinds  of  components  in  data  accessing:  Real-time  query
component,  structured  query  language  (SQL)-based  calculating  component,  and  multi-dimensional  query
component with both characteristics.
54 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

2) Data analysis module
In the early stage of exploration in the module, statistical product and service solutions in full (SPSS), was the
first  commercialization  product  in  the  field  of  data  analysis.  This  module  mostly  provides  the  upper-level
components in the whole system, which is usually built on top of the calculation engine and is used to implement
various data analysis algorithms.
Unlike the user application layer, this module does not directly provide an interface to system users in common
cases.  The  generated  data  usually  gets  stored  or  iterated  as  an  intermediate  result  or  as  data  input  for  other
modules in the system. There are many famous frameworks in this layer like TensorFlow[21], Apache SINGA[22], and
spark  machine  learning  library  (MLlib)[23].  Represent  that  components  in  this  module  are  mostly  designed  for  the
certain requirement types.
3) Data calculating module
The  calculating  module  provides  massive  data  computing  foundations  in  the  whole  architecture.  This  paper
divides different components according to different processing models, basically covering batch-only, stream-only,
and  hybrid  frameworks.  The  products  developed  for  this  layer  have  obvious  mash-up  characteristics,  which  are
embodied in the mutual penetration, reference, and invocation between these components.
4) Conclusion
The  processing  layer  performs  processing  in  the  system  through  data  reading  data  from  storage  systems  or
other third-party systems. According to the implementation details of each specific application, different frameworks
will put some of the same components into several layouts. However, we still can map this structure to each of them.

2.3. Data Collecting Layer


The main task of this level is to collect data in batches. Big Data has 4V features: Volume, velocity, variety, and
value[1]. As the core module is responsible for the data collection, the specific requirements this layer should handle
with can be summarized as follows.
1) Diversified data collecting capabilities: Big Data systems always need to collect data from various sources,
so the components set needs to fit the requirements of collecting real-time, incremental, and various forms of data
such  as  tables,  files,  messages,  and  third-party  systems[24],[25].  It  also  means  that  platforms  should  also  provide
support for all types of distributed data storage systems like RDBMS, Hadoop distributed file system (HDFS), and
network attached storage (NAS)[26],[27]. .
In  addition  to  the  traditional  extract-transform-load  (ETL)  technology,  the  growing  requirements  need  the
platforms providing more flexible functions like real-time collection, Internet crawler analysis, and more kinds of data
sources.
2) Visual rapid configuration capability: There is an important concept in software engineers that the labor cost
in  maintenance  of  a  system  is  much  higher  than  the  cost  in  developing,  so  it  is  necessary  to  provide  an  easy
maintaining  interface  set.  Basically,  developers  would  prefer  graphical  development  and  access  interface,  drag-
and-drop  developing  and  management  graphical  user  interface  (GUI)  suites  in  order  to  free  code  writing  and
reduce acquisition difficulty. These tool suites will finally reach the goal of cutting the cost wasted on simple and
repeat work[28].
3)  Unified  scheduling  management  and  control  capabilities:  Big  Data  systems  always  need  multiple  data
collecting sources, which means that it is important for the system to schedule collection tasks and interfaces.
Mostly, software manufacturers or communities providing toolkits in this layout may focus on the first feature,
about how to collect massive data efficiently. We will list out the most famous ones in this area in subsection 3.2.

2.4. Platform Management Layer


The  management  layer  of  Big  Data  platforms  mainly  contains  application  management  tools  and  system
YU et al.: Components and Development in Big Data System: A Survey 55

management tools. From the perspective of application management, it is responsible for accessing and monitoring
various  component  instances  and  scheduling  and  configuring  external  users  and  systems[29],[30].  The  system
management part includes deploying the developed applications, internal resource and authority assignments, and
visual  operation  and  maintenance.  The  most  representative  product  may  be  Amazon  Web  services  (AWS)[29],
which provides the standard for cloud computing and virtual cluster management product.

3. Representative Components
In  this  section,  we  give  a  detailed  review  of  the  components  in  the  data  processing  layer  and  data
collecting  layer.  We  introduce  several  typical  products  in  use  for  each  layer  and  then  compare  them  in  the
fitness of the layer’s features and core algorithms or techniques.

3.1. Data Processing Layer


The  data  processing  layer  consists  of  three  parts:  Data  accessing  module,  data  analysis  module,  and  data
calculating module. According to the use cases and their features, we deliver several different component sets to
show the main usage of these modules.

3.1.1. Data Accessing Module


Data  accessing  products  usually  provide  direct  access  to  data  sources,  mainly  building  beyond  data  storage
services  and  focusing  on  real-time  querying,  conditional  filtering,  and  data  transportation.  There  are  three  typical
kinds  which  can  be  divided  by  interfaces  and  calculating  models:  Real-time  querying  component,  SQL-based
computing component, and multi-dimensional query component.
A. Real-Time Querying Component
As for real-time querying products, Facebook Presto[31], Apache Drill/Dremel[32],[33], and Impala[34],[35] are the most
representative ones.
1) Presto: Facebook opened the source code of Presto in November 2013. This distributed SQL query engine
is  designed  to  perform  the  high-speed,  real-time  data  

Presto command-line shell Thrift/JDBC


analysis.  It  provides  American  National  Standards
Institute  (ANSI)  structured  query  language  (SQL)  as  a Presto coordinator
standard  operating  interface,  including  complex Hive
Query parser/analyzer
queries,  aggregations,  joins,  and  window  functions. metastore Query planner
Presto  designed  a  simple  abstraction  layer  for  data Query scheduler

storage  to  satisfy  queries  which  store  data  in  different


Hadoop storage/scribe
systems (including HBase[36], HDFS[37], and Scribe[38],[39]).
Fig. 2 shows the Presto’s system architecture. Fig. 2. Architecture of Presto system.
Presto uses a custom query execution engine and response operators to support SQL syntax. In addition to the
improved scheduling algorithm, different clusters end to form a pipeline through the network. This mechanism avoids
additional delays caused by unnecessary disk reads and writes. This pipelined execution model runs multiple data
processing segments at the same time; once the data is available, it will pass the data from one processing segment
to the next. This approach will greatly reduce the end-to-end response time of various queries. Meanwhile, it can avoid
a lot of intermediate results in the underlying operation, improving the running effect and cutting wasted resources.
2) Apache Drill and Google Dremel: Dremel is a Google’s interactive data analysis system. Currently used
in open source projects is the implementation project, Apache Drill. The features of the Dremel system are as
follows.
56 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

a)  Large-scale:  It  is  possible  to  form  a  cluster  which  contains  thousands  of  scales  and  process  data  at  the
petabyte (PB) level.
b) Nested data models: The Internet’s data is often non-relational. Dremel supports a nested data model
like the JavaScript object notation (JSON) format. In the implementation of Drill, it also has the characteristics
of schema-free, which can run in HDFS[37], Not Only SQL (NoSQL)[40], and cloud storage systems[41].
c)  Concept  of  Internet  search  and  parallel  database  management  system  (DBMS)  based:  Dremel  and
Drill’s architecture draws on the concept of service tree used in distributed search engines[39]. Unlike Pig[42] and
Hive[43], it performs queries directly instead of translating them into MapReduce (MR) tasks.
Because  of  these  characteristics,  Dremel  reduces  the  minute-level  overhead  required  for  MapReduce
processing data to the second level as Figs. 3 and 4 show[33],[44].
   

10000
2004 : MapReduce
10 min
1000
Execution time (s)

100
2009 : Hive
10 s
2010 : Dremel
10 2012 : Impala
2010 : Spark
1 100 ms
MR-records MR-columns Dremel

Fig. 3. MapReduce and Dremel execution on columnar vs. Fig. 4. Modern cloud analysis engines’ speeds comparing.
record.
 

Dremel  uses  a  multi-level  service  tree  to  execute Client Query execution tree

queries  (see  Fig.  5).  A  root  node  server  receives  the


Root server
incoming  query,  reads  the  metadata  from  a  table,  and
routes  the  query  to  the  next  layer.  The  leaf  server  is Intermediate
… …
servers
responsible  for  communicating  with  the  storage  layer

and accessing the data directly on the local disk. When Leaf servers … …
(with local …
the  root  node  server  receives  the  query,  it  will  ensure
storage)
the horizontal partition of all these tables and rewrite the
Storage layer (e.g., GFS)
query  into  a  union  statement.  This  computation  model
is ideal for aggregating queries that return fewer results, Fig. 5. Multi-level service tree in Dremel.
taking the most advantages of combining a large amount of low-cost hardware.
3)  Impala:  Impala  is  a  real-time  interactive  SQL  Big  Data  query  tool  developed  by  Cloudera  inspired  by
Google’s Dremel. It is a combination of Google Dremel architecture and massively parallel processing (MPP)
architecture[45],[46].  Impala  uses  a  similar  distributed  query  engine  in  a  commercial  parallel  relational  database,
consisting of query planner, query coordinator, and query exec engine (as shown in Fig. 6).
B. SQL-Based Computing Component
This  kind  of  component  is  built  to  facilitate  the  work  habits  of  data  scientists.  These  products  realize  the
abstraction  of  data  computing  and  processing  services  by  providing  SQL-like  languages.  The  most  common
components  are  Hive[44],  Pig[42],  and  Spark  SQL[47].  These  products  are  not  real  SQL  query  tools,  but  rather
provide  a  SQL-like  statement  interface  to  implement  operations  on  each  one’s  computing  model  (like  the
MapReduce[2] tasks in Hive and Spark resilient distributed dataset (RDD)[3] in Spark SQL).
1) Hive: Hive is a data warehouse tool based on Hadoop. It maps structured data files into a database table and
provides a simple SQL query function. Hive is designed to convert SQL statements into MapReduce tasks. Due to the
low learning cost, users can quickly implement complex MapReduce statistics through SQL-like statements.
YU et al.: Components and Development in Big Data System: A Survey 57
 

Common Hive SQL and interface Unified metadata


Hive State
SQL app HDFS NN
metastore store

ODBC

Query planner Query planner Query planner


Fully MPP
distributed
Query coordinator Query coordinator Query coordinator

Query exec engine Query exec engine Query exec engine

HDFS DN HBase HDFS DN HBase HDFS DN HBase


Local
direct reads

Fig. 6. Architecture of the Impala system.

Fig.  7  shows  the  main  structure  of  Hive  system,


 

Hive command-line shell Hive command-line shell


mainly  divided  into  user  interfaces,  metadata  storage,
database drivers, and MapReduce engine. Driver
a)  User  interfaces:  There  are  a  variety  of  user Physical plan
interfaces, but the most used in practice is the CLI and SQL Query SerDers,
Metastore parser optimizer UDFs
the  protocol  interface.  CLI  is  the  command  line database
Execution
interface, which starts a copy of Hive at the same time
it  starts.  Hive  provides  Hive  query  language  (HQL) MapReduce engine
operation  mode  through  Java  database  connectivity
Hadoop storage
(JDBC) and thrift protocols.
b)  Metadata  storage:  Hive  stores  metadata  in Fig. 7. Architecture of Hive system.
third-party  databases,  such  as  MySQL  and  Derby.
The metadata mainly contains the name, columns, and partitions of tables in use and their attributes, like the
directory where these tables’ data located.
c)  Database  driver:  Though  there  has  been  through  many  versions’  evolution  since  Hive  had  been
designed out, the main structure has never changed. Driver models mainly include an interpreter, a compiler,
an  optimizer,  and  a  physical  plan  and  its  executor.  The  HQL  query  statement  sequentially  performs  lexical
and syntax analysis, compilation, optimization, and query plan generation in the drivers. The generated query
plan is stored in HDFS and subsequently executed by MapReduce calls.
d)  MapReduce  and  storage:  Hive  stores  data  in  HDFS  and  uses  the  MapReduce  engine  to  do  the  query
executions.
2) Pig: Pig is a large-scale data analysis platform based on Hadoop. It provides a SQL-like language called Pig
Latin.  The  compiler  of  this  language  converts  SQL-like  data  analysis  requests  into  a  series  of  optimized
MapReduce operations. Fig. 8. shows the architecture of its main framework. Pig provides a simple operation
and  programming  interface  for  complex,  massive  data-parallel  computing.  Pig’s  main  structure  and  running
process are just like Hive. Both two products convert SQL/SQL-like statements into logical plans and physical
plans and can be executed by the MapReduce engine. However, unlike Hive, Pig has its unique Syntax called
Pig Latin which has a great difference with ANSI SQL in programming ideas and data structures.
58 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019
 

Pig Latin scripts a)  Programming  ideas:  Pig  Latin  is  a  data  flow
programming  language,  and  SQL  is  a  declarative
programming  language.  Pig  declares  the  process  of
processing and converting data, while SQL only defines
Grunt shell Pig server
what  data  is  needed.  To  some  extent,  Pig  scripts  are
Parser
similar  to  the  SQL’s  query  plan  which  translates
Optimizer declarative results into system steps.
Compiler b)  Data  structure:  In  SQL,  data  is  stored  in  a  table
and bound to a specific schema. Pig’s data structure is
Execution engine
loose,  and  it  defines  schemes  during  processing.  Also,
Pig  supports  complex  nested  data  structures,  which  is
MapReduce quite  different  from  SQL’s  flatter  table  structure.  Pig’s
user  design  function  (UDF)  and  streaming  operations
(for adapting UDFs written in different languages) make
Hadoop
Pig more flexible and powerful.
HDFS 3)  Spark  SQL:  Spark  SQL’s  predecessor  is  Shark.
Fig. 9 shows the evolution between these two components.
Just like Hive, Spark SQL provides a quick start-up tool for
Fig. 8. Architecture of Apache Pig. technicians  who  are  familiar  with  RDBMS  but  do  not
understand  Spark  RDD.  Since  Hive  runs  on  Hadoop,  a  large  number  of  intermediate  disk  landing  processes  in
MapReduce computing process consume a lot of I/O. Spark group developers modified the optimizer and execution
plan in Hive to access Spark[3], an in-memory computing engine. Based on Shark’s foundation, the Spark SQL
project has got rid of Hive’s specialized components such as syntax parser and query optimizer, while expanding
data  compatibility  and  optimizing  operational  performance,  thus  greatly  improving  components’  expansion
capabilities. Benefits from its loose structure are shown in Fig. 10. Spark can adopt several different optimization
techniques, such as in-memory columnar storage and byte-code generation. This architecture also makes Spark SQL
much  more  convenient  for  developers  to  redesign  the  SQL  parsers,  planners,  and  optimizers  according  to  their
requirements.
 

Hive architecture Shark architecture


Client Client
CU JDBC CU JDBC
Driver Cache Mgr.
Meta Query Physical plan Meta Query Physical plan
SQL SOL
store store
parser optimizer Execution parser optimizer Execution

MapReduce MapReduce

HDFS HDFS

Fig. 9. Evolution from Hive to Shark.
 

Logical Physical Code


Analysis optimization planning generation
Cost model

SQL query
Unresolved Logical Optimized Selected
Physical physical RDDs
logical plan plan logical plan plans plan
Data frame
Catalog

Fig. 10. Transportations occurred inside the Spark SQL.
YU et al.: Components and Development in Big Data System: A Survey 59

C. Multi-Dimensional Query Component


One  of  the  most  representatives  of  these  components  is  Apache  Kylin[45],[46],  the  multi-dimensional  query
component.  Although  data  warehouses  have  gradually  replaced  relational  databases  as  the  underlying  data
storage  services  for  Big  Data  platforms,  relational  databases  still  occupy  the  core  position  of  the  storage  layer.
Rational  on-line  analytical  processing  (ROLAP)  is  an  improvement  in  on-line  analytical  processing  (OLAP)
technique, which performs dynamic multi-dimensional analysis on data stored in a relational database. These query
components can directly perform multi-dimensional operations on the contents from the relational database system.
Kylin is designed to reduce the latency of queries ten-billion size of data on Hadoop/Spark, using ANSI SQL to
provide an interface that supports most of the query functionality. As shown in Fig. 11, Kylin can combine with a
wide  range  of  business  intelligence  tools  such  as  Tableau,  Power  BI/Excel,  microstrategy  incorporated  (MSTR),
Qlik Sense, Hue, and SuperSet directly. With Kylin, users can perform sub-second interactions with Hadoop data,
providing better performance than Hive. The biggest feature of Kylin is that users can define a data cube and pre-
build it in Kylin with massive data records in Kylin.
 

Third party app SQL-based tool ·Online analysis data flow


(Web app mobile) (BI tools:Tableau…) ·Offline data flow
·Only SQL for end user
REST API ·OLAP cube is transparent to users

SQL SQL

REST server

Query engine
Mid latency- Low latency-
minutes seconds
Hadoop Routing
Hive OLAP
Kafka cube
RDBMS Metadata
HBase as storage
Cube build engine
Star schema data Key value data

Fig. 11. Architecture of the Apache Kylin.

3.1.2. Data Analysis Module


Components  in  the  data  analysis  module  are  mostly  frameworks  developed  for  different  programming
languages.
R and Python are similar, symbolizing a script-based technology stack, both use statistics techniques for data
analysis.  The  main  difference  between  two  technique  stacks  is  that  Python  is  more  inclined  to  engineering
development and has direct support for developed algorithms such as word segmentation and clustering required
for many projects; while R focuses more on statistical drawing, which provides better visualization support from the
native  level.  R  language  rarely  mentions  its  technical  framework,  but  rather  serves  as  an  interface  to  other
frameworks or Big Data engines. Both languages are based on sample statistics. And the scripting language relies
on  the  characteristics  of  their  execution  environments,  the  support  for  large-scale  data  is  limited.  In  most  cases,
they need to cooperate with C++ or other more efficient and lower level languages.
The  Java  virtual  machine  (JVM)  based  domain  is  much  more  systematic  due  to  its  mature  cross-platform
technology, complete development suites support, and the strong engineering management structure. A variety of
data analysis tools based on different computing concepts have emerged, most of them are dependent on Apache
60 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

Hadoop and Apache Spark. Both build a whole environment for developing suites and provide a powerful and full
functioning interface set.
Unlike the other modules in this layer, products are more demand-oriented. It is hard to list out the frameworks
developed for all purposes, so we just mention two most popular frameworks in machine learning (ML).
1) TensorFlow: For those who have heard of deep learning but have not been too thorough, TensorFlow may
be their favorite deep learning framework. More than the usage of a deep learning framework, its official definition is
an  open  source  software  library  for  machine  intelligence.  So  it  is  better  to  consider  that  TensorFlow  is  an  open
source  library  for  numerical  calculation  using  data  flow  graphs[21].  TensorFlow[48]  is  not  just  a  deep  learning
framework but a graph compiler. TensorFlow is a relatively low-level programming framework that supports Python
and  C++,  allows  computational  distribution  on  CPU  and  GPU,  even  supporting  horizontal  scaling  with  a  remote
procedure call produced by google (gRPC) (see Fig. 12). Most of its kernel codes rather use a combination of
highly optimized C++ and CUDA (NVIDIA’s language for programming GPUs)[49] to write and optimize eigen
(high-performance C++ and CUDA libraries) and NVIDIA’s cuDNN (a dedicated deep neural network (DNN)[50]
library for NVIDIA GPUs for convolution and other functions)[51],[52].
2) Spark MLlib: MLlib[51] is the Spark’s ML library. It provides a set of algorithms and frameworks to build a
practical, scalable, and easy ML develop environment. There are several tools provided such as[53]:
a)  ML  algorithms:  The  common  learning  algorithms  such  as  classification,  regression,  clustering,  and
collaborative filtering.
b) Featurization: Feature extraction, transformation, dimensionality reduction, and selection.
c) Pipelines: Tools for constructing, evaluating, and tuning ML pipelines.
d) Persistence: Saving and loading algorithms, models, and pipelines.
e) Utilities: Linear algebra, statistics, and data handling.
 

Client
C++ Python Java Others
Front end

C API

Distributed runtime

Distributed Work Dataflow


master services executor

Exec system
Kernel implements

Network layer Device layer


RPC RDMA GPU CPU

Fig. 12. Architecture of TenserFlow system.

Spark  MLlib  can  directly  access  into  Spark’s  application  programming  interface  (APIs)  and  interoperate
with Numy in Python and R libraries. Developers can use any Hadoop data source (e.g., HDFS, HBase, or
local files), making it easy to plug into Hadoop workflows (example steps in using MLlib are shown in Fig. 13).
Spark  uses  a  new  in-memory  computation  model  called  RDD,  making  MLlib  run  much  faster  than  other
YU et al.: Components and Development in Big Data System: A Survey 61

products  based  on  MapReduce  (see  Fig.  14).  The  development  group  also  cares  about  algorithmic
optimization: MLlib’s algorithms set uses leverage iteration high-quality algorithms that can yield better results
than the one-pass approximations.
 

Data ingestion

Data store

Store model
Data trans-
formation

User model Model training Model testing


server

Results

Predictions Segementation

Data ingestion

Fig. 13. Spark ML architecture.
 

3) Conclusion: We display two main strain products 120 110


Running time (s)

in  the  data  analysis  module,  TensorFlow  is  a  typical 90


Hadoop
Python-interfaced  and  C++-implemented  mixture 60
Spark
framework.  It  depends  on  the  cooperation  of  front  end 30
0.9
and  execution  system,  focusing  on  the  solution  of 0
providing  a  high-performance  programming  library. Fig. 14. Logistic regression in Hadoop and Spark.
Spark  MLlib  is  built  on  the  Spark  calculating  system,
transferring common ML algorithms into Spark internal operation chains and taking the advantages of this mature
system. These are two main thoughts in developing data analysis module components.

3.1.3. Data Calculating Module


Big Data is a general term for the technologies designed to collect, organize, and process large datasets which
cannot  be  solved  by  traditional  solutions.  With  the  growth  of  demand  of  popularity,  scale  and  value  in  kinds  of
computing have expanded considerably in recent years.
1) Apache Hadoop
Batch processing has a long history in computing methodology research[52]. Fig. 15 shows the batch processing
engine  called  MapReduce,  which  provides  sequential  operations  on  a  large-scale,  static,  structured,  or  semi-
structured  dataset  and  returns  the  result  until  the  computation  is  complete,  which  makes  it  well-suited  for
calculations access to a complete record set. Due to the benefits of handling large volumes of persistent data, this
processing model is frequently used in historical data analysis.
Apache Hadoop[53] is a processing framework designed for distributed batch processing. It was the first Big Data
framework and has been greatly improved by the open-source community. Hadoop reimplemented the algorithms
and  components  according  to  the  papers  and  reports  from  Google,  containing  the  following  parts  that  work
together to process batch data.
62 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

a)  HDFS:  HDFS  is  a  distributed  file  system  module  which  provides  coordinates  storage  services  and  data
replication through cluster nodes. HDFS is widely used in Big Data frameworks as the storage system due to its
efficiency.
b)  YARN:  YARN  is  the  cluster  coordinating  component  of  Hadoop  stack,  responsible  for  coordinating  and
managing the underlying resources and scheduling jobs to be run.
c)  MapReduce:  MapReduce  is  the  Hadoop’s  native  batch  processing  engine.  Its  processing  technique
follows map and shuffles and reduces algorithm using key-value pairs.
 

User
program
(1) Fork (1) Fork
(1) Fork

Master
(2) (2)
Assign Assign
map reduce

Worker
e
ad ot

Split 0 (6) Write Output


re em

Worker file 0
R

Split 1
)

(4) Local write


(5

(3) Read
Split 2 Worker
Split 3
Worker Output
Split 4 file 1

Worker

Input Map Intermediate files Reduce Output


files phase (on local disks) phase files

Fig. 15. MapReduce processing engine.

This methodology tends to be slow for its heavily leverages permanent storage and reading and writing multiple
times per task. However, as the disk space is one of the most abundant server resources, MapReduce can handle
enormous datasets at a relatively cheap cost. Because it does not encroach on memory, Hadoop cluster achieves
running on less expensive hardware than some alternatives. With the support of cluster manager YARN, Hadoop
has incredible scalability potential and has already been used in the production cluster which consists of thousands
of nodes.
2) Apache Storm
Stream processing systems do computation work over datasets as they enter the system. The main difference
between  stream  processing  and  batch  processing  is  defining  operations.  Stream  process  systems  define
operations to each item of data, while batch process systems define operations on an entire dataset. This makes
stream  processors  can  handle  the  items  as  they  come  into  the  system.  The  most  significant  feature  of  stream
processing is the event-based calculating processes which will not end until the input explicitly stops. Computation
results are immediately available and continually updated when new data arrives.
Apache  Storm[54]  is  a  stream  processing  framework  that  focuses  on  low  latency.  Apache  Storm  meets  the
demands of near real-time processing. It can handle large quantities of data and deliver results with less latency.
YU et al.: Components and Development in Big Data System: A Survey 63

Fig.16  provides  a  typical  structure  base  on  Apache  Storm.  Apache  Storm  provides  stream  processing  by
topologies, a directed acyclic graph (DAG) based scheduler. These topologies mean that the transformations and
steps  will  be  applied  to  each  data  item.  Topologies  are  composed  of  streams,  spouts,  and  bolts.  The  stream  is
unlimited  data  that  continuously  arrives  at  the  system.  Spouts  are  sources  of  data  streams  at  the  edge  of  the
topology.
 

Storm cluster

Master node ZooKeeper cluster


Nimbus
Node 1

ZooKeeper
Master node

Nimbus
Node 2-leader

Master node-leader ZooKeeper

Nimbus Storm UI
Node 1

ZooKeeper

Slave node 1 Slave node 2 Slave node 3

Supervisor Supervisor Supervisor

Fig. 16. Typical structure of Storm Cluster.

Moreover, bolts represent a processing step that consumes streams, applies an operation to them, and outputs
the result as a stream. Apache Storm is probably the best solution currently available for near real-time processing.
It  handles  data  with  extremely  low  latency  for  workloads  which  need  to  be  processed  with  the  minimal  delay.
Apache  Storm  is  often  a  good  choice  when  processing  that  time  directly  affects  user  experience[55].  Storm  can
integrate with Hadoop’s YARN cluster manager and HDFS storage system, making it easy to hook up to an
existing Hadoop deployment (as shown in Fig. 17).
Apache Storm gives developers options to use mini size batches instead of pure stream processing over the
datasets, providing users more flexibility to shape the tool to the intended use. However, it tends to negate some of
the most significant advantages over other solutions. Moreover, Apache Storm core modules do not offer to order
the  guarantees  of  messages,  it  means  that  processing  upon  each  message  can  be  guaranteed,  but  will  cause
massively a duplicate burden.
3) Apache Spark
In  order  to  fit  different  use  cases  in  application  scenes,  there  are  frameworks  using  plugins  and  integrated
interfaces to handle both batch and stream workloads.
Apache  Spark  is  a  batch  processing  framework  combining  SQL,  streaming,  and  sophisticated  analytics
(see Fig. 18). Spark streaming is the component handling stream processing. As for batch processing, Apache Spark
focuses  on  speeding  up  batch  processing  workloads  by  offering  full  in-memory  computation  and  processing
optimization.
Unlike  MapReduce,  Spark  processes  all  data  in-memory  and  only  accesses  the  storage  layer  and  the
64 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019
 

Apache Storm topology

JMS spout Bolts

Elastic
search
Business UIMA Elastic
logic NLP
HDFS

Hadoop file system

Elastic
search
Business UIMA
HDFS
logic NLP
HDFS

Fig. 17. Usage of storm in a learning healthcare system.
 

beginning  and  end  of  the  entire  process,  to  initially


load  the  data  into  memory  and  to  persist  the  final Spark Spark Mllib
Graphx
(machine
results.  All  intermediate  results  are  managed  in SQL streaming (graph)
learning)
memory.  There  are  several  exceptions  like  cache  or
OOM  cases  may  force  the  system  taking  write Apache Spark
operations.  Spark  uses  a  model  called  RDD  to
implement  its  in-memory  computation.  These Fig. 18. Spark stack.
immutable structures exist in memory and represent collections of data that can be backtracked based on lineage,
avoiding  access  to  disk  storage  each  time.  It  can  perform  better  on  disk-related  tasks  by  creating  DAGs  to
represent all the operations the data needs to be operated on and the relationships between them. The scheduler
will assign the workloads according to the sequence of the nodes in DAGs, making the coordinate work between
the processors more intelligent. Spark streaming, the plugin buffering the stream in sub-second increments, is the
stream  processing  solution  for  Apache  Spark.  Fig.  19  shows  the  process  of  splitting  the  input  stream  into  fixed
batches. Spark streaming cannot work as well as the native stream processing frameworks, but it does work well in
practice.
 

Caching in 2 nodes

Input data Batches of Node 1


Kafka stream input data
Streaming
context

Node 2

Fig. 19. Typical usage of Spark streaming.

Apache  Spark  is  a  universal  option  for  diverse  processing  workloads.  Trading  off  high  memory  usage,  it
provides excellent speed advantages on batch processing workloads and fits well in handling workloads that value
throughput over latency.
YU et al.: Components and Development in Big Data System: A Survey 65

4) Conclusion
For batch-only workloads, application demands are not time-sensitive, and on a vast scale, Hadoop can be a
good choice for using less expensive equipment than other solutions.
For stream-only workloads, Storm has extensive language support and can deliver lower latency processing.
For mixed workloads, Spark provides high-speed batch processing and micro-batch processing for streaming. It
has broad support, integrated libraries and tooling, and flexible integrations.
Options  for  processing  within  a  Big  Data  system  is  plentiful,  the  best  fit  for  the  users’  situation  should
depend on the state of the data to process, how time-bound the requirements are, and what kind of results
developers are interested in.

3.2. Data Collecting Layer


Data  collecting  plays  a  significant  role  in  the  Big  Data  cycle.  The  Internet  provides  almost  infinite  data  on  a
variety of topics. Behaviors from system users also bring large valuable data helping to improve services and find
demands. We will introduce some most popular products according to different features of these systems.
1) HDFS
Hadoop  file  system  (HDFS)[36]  stores  large  files  in  a  streaming  data  access  mode  and  runs  on  a  commodity
hardware cluster. It is a file system that stores data across multiple computers in a management network.
HDFS is a most popular file system built for offline collecting purpose, which means that it may not meet the
demands  such  as  low  latency  for  data  access,  storage  of  large  numbers  of  small  files,  multi-user  writes,  and
arbitrarily modify files.
HDFS  uses  typical  master/slave  architecture.  As  shown  in  Fig.  20,  an  HDFS  cluster  consists  of  a  single
NameNode  and  multiple  DataNodes.  NameNode  is  the  master  server  which  stores  file  system  namespace,
executes namespace operations, and determines the mapping of file blocks to DataNodes. As for DataNodes, they
are processes managing storage services attached to the nodes that they run on, responsible for serving read and
write requests. The high availability and disaster back up are implemented by block duplicating mechanism, the file
inside the storage system will be split into blocks and store them in a set of DataNodes.
 

Metadata (name,replicas,…):/
Metadata ops NameNode home/foo/data, 3,…

Client Block ops

Read DataNodes DataNodes

Replication
Blocks

Rack 1 Write
Rack 2
Client

Fig. 20. HDFS system architecture.

2) HBase
HBase[35] is a distributed, column-oriented open source database, which implements the BigTable[56] based on
HDFS.  HBase  is  a  subproject  of  Apache’s  Hadoop  project,  and Fig. 21 demonstrates a system built on these
components.  Different  from  a  general  relational  database,  HBase  is  a  database  suitable  for  unstructured  data
storage, and HBase is column-based rather than a row-based model.
66 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019
 

Client ZooKeeper HMaster

HRegionServer HRegionServer
HRegion HRegion

Store MemStore Store MemStore Store MemStore Store MemStore



HBase

… …
HLog

HLog
StoreFile StoreFile StoreFile … StoreFile StoreFile StoreFile …
… …
HFile HFile HFile HFile HFile HFile

… DFS … DFS
client client
Hadoop

DataNode DataNode DataNode DataNode DataNode

Fig. 21. Hbase system architecture.

A  typical  HBase  cluster  consists  of  an  HMaster  and  several  slave  nodes  led  by  HRegionServer.  Each
HRegionServer  node  contains  its  log  module  and  multiple  HRegions,  a  segment  of  the  whole  recorded  table
divided by keys. HRegion is also the minimum unit of distributed storage and load balance.
The  cooperation  mode  inside  HBase  is  also  a  typical  master-slave  model  which  consists  of  many  layers
processing different workloads. HMaster cooperates with ZooKeeper, the cluster managing system, responsible for
allocating  HRegion  to  each  HRegionServer  and  their  loads  balancing,  discovering  invalid  HRegionServer  and
reallocating them, garbage collecting of HDFS, and handling requests for schema update operations.
3) NoSQL storage system
NoSQL refers to a non-relational database. With the rise of the Internet web2.0 technology, the traditional relational
database  cannot  fit  the  ultra-large-scale  and  high-concurrency  requirements  occurred  in  massive  data  exchange
scales. The NoSQL database was created to solve the challenges brought by multiple data types of large-scale data
collection, especially Big Data application problem. It is hard to classify NoSQL, since each kind of them has its benefits
and focus point. Recent years, in-memory database gains great development. This kind of database stores most of
its  contents  in  memory  instead  of  storing  in  disk  or  other  extern  storage.  LevelDB  and  RocksDB[57]  are  the  most
representative ones in this area. Version controlling is the main issue in blockchain technology. OrpheusDB[58] provides
dataset version control services as its highlight design while ForkBase[59] implements structurally-invariant reusable
indexes (SIRI) indexes as an efficient storage engine for blockchain and fork-able applications.
4) Message queue products
In addition to the above-mentioned offline requirements, real-time acquisition is now an essential component of
Big  Data  platform.  The  mainstream  architecture  uses  Flume[60]+Kafka[61]  as  data  entry  and  uses  Kafka’s
customized message queue to process data in real time. Combination with stream processing and in-memory
database  to  form  data  aggregation  could  achieve  real-time  collection  and  analysis.  Such  architecture
schemes are often based on open source systems and have a high degree of reliability. However, since open
source  systems  are  often  based  on  a  broader  range  of  application  scenarios,  they  may  need  additional
development to meet the specific demands, and it is difficult to adjust and improve in a short time.
YU et al.: Components and Development in Big Data System: A Survey 67

5) Other data collecting channels
In addition to the two data collecting’s basic demands described above, Internet information collection in
the form of enterprise crawler systems and third-party data sources fulfill the content in this layer. Most of the
data  involved  in  these  components  needs  pretreatments  like  indexing  and  slicing.  Projects  servers  these
features  such  as  Solr[62],  Lucent,  Nutch,  and  ES,  their  primary  purpose  is  to  convert  the  natural  language  or
document structure into a structure more suitable for storing queries.

4. Platform Optimization Directions


With the explosive growth of data volumes, even Big Data technologies face many challenges. Focusing on the
topics of high efficiency and scalability, we summarize some of the recent research achievements.

4.1. Combination with High-Performance Materials


In  recent  years,  material  technology  and  heterogeneous  computing  have  gained  much  development.  Using
hybrid  architecture  as  the  solution  for  Big  Data  products  enhancement  is  getting  more  and  more  attention  from
industry.
Non-volatile  memory  materials  like  Open-Channel  solid-state  drive  (SSD)[63]  and  3D  X-point[64]  with  the
characteristics of non-volatile and high performance than traditional memory material shines in in-memory storage
system optimizations[65],[66].
Despite the new techniques in storage layer, high-performance computing chips are equipped into the system.
Solving  the  performance  bottleneck  of  traditional  databases  with  dedicated  hardware  has  become  a  trend[18],[67].
However, the current acceleration solution has the following two shortcomings.
1) The current acceleration scheme is designed for the certain layer, mostly the SQL execution layer, and the
co-processor  is  usually  placed  between  the  storage  and  the  host  as  a  filter.  Although  there  have  been  many
attempts  to  improve  OLAP  systems  by  field  programmable  gate  arrays  (FPGAs),  the  design  of  accelerating
solutions is still a challenge for OLTP systems.
2) As chips become smaller and smaller, internal errors are becoming an increasing threat to system reliability.
For a single FPGA chip, the probability of an internal error grows greatly in 5 years, the design of fault tolerance
mechanisms is particularly important for large-scale availability systems.
In  general,  these  systems  enhance  the  performance  by  taking  advantages  of  the  characteristics  of  new
materials. However, the defects, instability, and high price of new materials make these solutions hard to become
commercial products.

4.2. Internal Process and Algorithm Optimization


Benefit  from  the  development  of  network  transmission  technology,  Internet  of  Things  also  makes  great
progress[68],[69].  Optimizations  in  the  process  and  algorithm  most  focus  on  complex-structured  data[70],  business
logical  evaluation-based  refactoring[15],[17],[71],  or  new  data  structure  and  algorithms  in  traditional  cases[65],[72].  These
optimization  solutions  provide  approaches  at  a  more  fundamental  level  such  as  cutting  down  memory  cost,
delaying data transportation, and calculating, which are much more stable and commercially feasible than simply
taking advantages of new materials.

4.3. Scalability Improvements


As  this  article  has  always  wanted  to  explain,  the  ecosystem  of  Big  Data  components  is  very  complex.  To
provide  one  single  processing  through  different  environments,  Musketeer[14]  and  Rheem[12],[13]  provide  solutions  to
68 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

build cross-platform frameworks, helping to increase system scalability. Although these frameworks provide good
cross-platform characteristics over the years, we still have not got rid of the existing framework (as shown in Fig. 22)
system from 2014[9]. In addition to proving that the structure we have summarized is correct, we still hope to see a
new and expanded framework which can achieve improvements by changing the overall structure.
 

Meteor
script
PACT program

Meteor parser
Nephele job graph
Operator implementations
Extensible packages of operators for
warehousing, information extraction and Sopremo
integration

PACT program assembler

Optimizer
Logical and physical cost-based optimization:
Operator order, local execurtion, data exchange

PACT
Runtime operators
External hashing and sorting-based operator
implementations, implementation of data
exchange strategies

Execution engine
Task scheduling, job/task monitoring, network
management, fault tolerance, I/O services, Nephele
memory management

Resource management
Multi-tenancy, resource alloction Amazon EC2 Apache YARN

Persistent distributed data stroage HDFS Amazon S3 Other data sources

Fig. 22. Stratosphere, a cross-platform framework proposed in 2014.

5. Conclusion
The  modern  Big  Data  platform  architecture  has  following  difficulties  in  getting  a  unified  structure:  In  order  to
meet different scenarios, more components will be adopted, which is the first difficulty; and in order to support more
application  scenarios  as  much  as  possible,  each  product  is  often  designed  to  be  very  broad  and  consistently
requires additional calculations models to adapt to the needs, this is the second difficulty; on the basis of the first
two, each computing component will learn from each other, infiltrate each other, and call cyclically from each other,
making it almost impossible to directly stratify between components.
Due  to  its  complexity,  it  is  hard  to  give  out  a  fixed  standard  for  the  division  of  Big  Data  platform
architecture. Though the architecture of them is much similar to each other, different application environments
and  scenarios  of  the  authors’  requirements,  frequent  updates  of  the  Big  Data  system  itself,  and  staggered
classification  of  applications  make  them  never  be  a  framework  suitable  for  even  common  cases.  Reasons
such  as  staggering  did  not  lead  to  a  unified  conclusion.  In  this  paper,  we  triy  to  inspire  a  common  protocol
which  can  aggregate  all  these  processing  flows,  just  like  the  REST  APIs  in  microservice[73],  by  providing  a
detailed review on the most commonly used components now.
YU et al.: Components and Development in Big Data System: A Survey 69

References
[1] A. Sheth, “Transforming big data into smart data: Deriving value via harnessing volume, variety, and velocity using
semantic techniques and technologies,” in Proc. of IEEE 30th Intl. Conf. on Data Engineering, 2014, p. 2.
[2] J.  Dean  and  S.  Ghemawat,  “MapReduce:  Simplified  data  processing  on  large  clusters,”  Communications of the
ACM, vol. 51, no. 1, pp. 107-113, 2008.
[3] M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica, “Spark: Cluster computing with working sets,” in
Proc. of the 2nd USENIX Conf. on Hot Topics in Cloud Computing, 2010, pp. 1-7.
[4] A. E. W. Johnson, M. M. Ghassemi, S. Nemati, K. E. Niehaus, D. A. Clifton, and G. D. Clifford, “Machine learning
and decision support in critical care,” Proc. of the IEEE, vol. 104, no. 2, pp. 444-466, 2016.
[5] F.-H.  Guan,  D.-M.  Zhao,  X.  Zhang,  B.-T.  Shan,  and  Z.  Liu,  “Study  on  the  intelligent  decision  support  system  for
power grid dispatching,” in Proc. of the Intl. Conf. on Sustainable Power Generation and Supply, 2009, pp. 1-4.
[6] X. Wang, W. Dou, Z. Ma, et al., “I-SI: Scalable architecture for analyzing latent topical-level information from social
media data,” Computer Graphics Forum, vol. 31, no. 3, pp. 1275-1284, 2012.
[7] S.-L. He, J.-M. Zhu, P.-J. He, and M. R. Lyu, “Experience report: System log analysis for anomaly detection,” in Proc.
of IEEE 27th Intl. Symposium on Software Reliability Engineering, 2016, pp. 207-218.
[8] J. McHugh, P. E. Cuddihy, J. W. Williams, K. S. Aggour, V. S. Kumar, and V. Mulwad, “Integrated access to big data
polystores through a knowledge-driven framework,” in Proc. of IEEE Intl. Conf. on Big Data, 2017, pp. 1494-1503.
[9] A. Alexandrov, R. Bergmann, S. Ewen, et al., “The stratosphere platform for big data analytics,” The VLDB Journal,
vol. 23, no. 6, pp. 939-964, 2014.
[10] F. Rahman, M. Slepian, and A. Mitra, “A novel big-data processing framwork for healthcare applications: Big-data-
healthcare-in-a-box,” in Proc. of IEEE Intl. Conf. on Big Data, 2016, pp. 3548-3555.
[11] C.  Roy,  S.  S.  Rautaray,  and  M.  Pandey,  “Big  data  optimization  techniques:  A  survey,”  Intl. Journal of Information
Engineering and Electronic Business, vol. 10, no. 4, pp. 41-48, 2018.
[12] D. Agrawal, S. Chawla, B. Contreras-Rojas, et al., “RHEEM: Enabling cross-platform data processing: May the big
data be with you!” Proc. of the VLDB Endowment, vol. 11, no. 11, pp. 1414-1427, 2018.
[13] D. Agrawal, S. Chawla, A. K. Elmagarmid, et al., “Road to freedom in big data analytics,” in Proc. of the 19th Intl.
Conf. on Extending Database Technology, 2016, pp. 479-484.
[14] I. Gog, M. Schwarzkopf, N. Crooks, M. P. Grosvenor, A. Clement, and S. Hand, “Musketeer: All for one, one for all in
data  processing  systems,”  in  Proc. of the 10th European Conf. on Computer Systems,  2015,  DOI:
10.1145/2741948.2741968
[15] P. Nikitopoulos, A. Vlachou, C. Doulkeridis, and G. A. Vouros, “DiSTrDF: Distributed spatio-temporal RDF queries on
Spark,” in Proc. of Workshops of the EDBT/ICDT 2018 Joint Conf., 2018, pp. 125-132.
[16] L.-Y.  Lu,  T.  S.  Pillai,  H.  Gopalakrishnan,  A.  C.  Arpaci-Dusseau,  and  R.  H.  Arpaci-Dusseau,  “Wisckey:  Separating
keys from values in SSD-conscious storage,” ACM Trans. on Storage (TOS), vol. 13, no. 1, pp. 5:1-28, 2017.
[17] R.  Barber,  C.  Garcia-Arellano,  R.  Grosman, et al.  (2017).  Evolving  databases  for  new-gen  big  data  applications.
[Online]. Available: https://pdfs.semanticscholar.org/ebc5/2e776b09cf02b063f212a765a0952dc0eff1.pdf
[18] R.  D.  Chamberlain,  M.  A.  Franklin,  R.  S.  Indeck,  and  R.  K.  Cytron,  “Intelligent  data  storage  and  processing  using
FPGA devices,” U.S. Patent 15 388 498, April 13, 2017.
[19] Y.  M.  Zaharia,  R.-S.  Xin,  P.  Wendell, et al.,  “Apache  Spark:  A  unified  analytics  engine  for  large-scale  data
processing”, Communications of the ACM, vol. 59, no. 11, 2016, DOI: 10.1145/2934664
[20] M.  Abadi,  P.  Barham,  J.-M.  Chen, et al.,  “TensorFlow:  A  system  for  large-scale  machine  learning,”  in  Proc. of the
12th USENIX Conf. on Operating Systems Design and Implementation, 2016, pp. 265-283.
[21] B. C. Ooi, K.-L. Tan, S. Wang, et al., “SINGA: A distributed deep learning platform,” in Proc. of the 23rd ACM Intl.
Conf. on Multimedia, 2015, pp. 685-688.
70 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

[22] X.-R.  Meng,  J.  Bradley,  B.  Yavuz, et al.,  “MLlib:  Machine  learning  in  Apache  Spark,”  The Journal of Machine
Learning Research, vol. 17, no. 1, pp. 1235-1241, 2016.
[23] B. Feldbaum, “Method and system for access control of a message queue,” U.S. Patent 6 446 206, September 3,
2002.
[24] Oracle.  (2015).  Oracle  goldengate  for  big  data  12c.  [Online].  Available: https://www.oracle.com/middleware/data-
integration/goldengate/big-data/index.html
[25] A.  Prahlad  and  J.  Schwartz,  “Systems  and  methods  for  performing  storage  operations  using  network  attached
storage,” U.S. Patent 7 546 324, June 9, 2009.
[26] Tableau  Inc.  (2015).  Transform  your  business  with  ask  data  the  future  of  analytics  starts  now.  [Online].  Available:
https://www.tableau.com/
[27] Amazon Web services (AWS). (2018). Cloud computing services. [Online]. Available: https://aws.amazon.com/?nc1=hls
[28] Tencent cloud. (2018). Get more with tencent cloud. [Online]. Available: https://intl.cloud.tencent.com/
[29] Presto. (2018). Distributed SQL query engine for big data. [Online]. Available: https://prestodb.io/
[30] M. Hausenblas and J. Nadeau, “Apache drill: Interactive Ad-hoc analysis at scale,” Big Data, vol. 1, no. 2, pp. 100-
104, 2013.
[31] S.  Melnik,  A.  Gubarev,  J.-J.  Long, et al.,  “Dremel:  Interactive  analysis  of  Web-scale  datasets,”  Proc. of the VLDB
Endowment, vol. 3, no. 1-2, pp. 330-339, 2010.
[32] M.  Kornacker  and  J.  Erickson.  (2012).  Cloudera  impala:  Real  time  queries  in  Apache  Hadoop,  for  real.  [Online].
Available: http://Com/blog/201210/cloudera impala real time queries Apache Hadoop real
[33] Apache  Organization.  (2018).  Impala  is  the  open  source,  native  analytic  database  for  Apache  Hadoop.  Impala  is
shipped by Cloudera, MapR, Oracle, and Amazon. [Online]. Available: https://impala.apache.org/index.html
[34] D. Borthakur, “HDFS architecture guide,” Hadoop Apache Project, vol. 53, pp. 1-13, 2008.
[35] A. Thusoo, Z. Shao, S. Anthony, et al., “Data warehousing and analytics infrastructure at Facebook,” in Proc. of the
ACM SIGMOD Intl. Conf. on Management of Data, 2010, pp. 1013-1020.
[36] Facebook. (2014). Scribe: Scribe is a server for aggregating log data streamed in real time from a large number of
servers. [Online]. Available: https://github.com/facebookarchive/scribe
[37] K. Chodorow, MongoDB: The Definitive Guide: Powerful and Scalable Data Storage, 2nd ed. Beijing: O’Reilly Media,
2013.
[38] M. R. Palankar, A. Iamnitchi, M. Ripeanu, and S. Garfinkel, “Amazon s3 for science grids: A viable solution?” in Proc.
of the Intl. Workshop on Data-aware Distributed Computing, 2008, pp. 55-64.
[39] J. Dean, “Challenges in building large-scale information retrieval systems: Invited talk,” in Proc. of the 2nd ACM Intl.
Conf. on Web Search and Data Mining, 2009, p. 1.
[40] C.  Olston,  B.  Reed,  U.  Srivastava,  R.  Kumar,  and  A.  Tomkins,  “Pig  Latin:  A  not-so-foreign  language  for  data
processing,” in Proc. of ACM SIGMOD Intl. Conf. on Management of Data, 2008, pp. 1099-1110.
[41] A. Thusoo, J. S. Sarma, N. Jain, et al., “Hive: A warehousing solution over a map-reduce framework,” Proc. of the
VLDB Endowment, vol. 2, no. 2, pp. 1626-1629, 2009.
[42] H.-K. Chen, F.-Z. Wang, and N. Helian, “Entropy4cloud: Using entropy-based complexity to optimize cloud service
resource  management,”  IEEE Trans. on Emerging Topics in Computational Intelligence,  vol.  2,  no.  1,  pp.  13-24,
2018.
[43] N. Elgendy and A. Elragal, “Big data analytics: A literature review paper,” in Proc. of Industrial Conf. on Data Mining,
2014, pp. 214-227.
[44] K.  K.  Das,  E.  Fratkin,  A.  Gorajek,  K.  Stathatos,  and  M.  Gajjar,  “Massively  parallel  in-database  predictions  using
PMML,” in Proc. of Workshop on Predictive Markup Language Modeling, 2011, pp. 22-27.
[45] M. Armbrust, R.-S. Xin, C. Lian, et al., “Spark SQL: Relational data processing in Spark,” in Proc. of ACM SIGMOD
Intl. Conf. on Management of Data, 2015, pp. 1383-1394.
YU et al.: Components and Development in Big Data System: A Survey 71

[46] S. V. Ranawade, S. Navale, and A. Dhamal. (2016). Analytical processing on Hadoop using Apache Kylin. [Online].
Available: http://www.ijais.org/archives/volume12/number2/ranawade-2017-ijais-451682.Pdf
[47] Apache KylinTM. (2018). Apache KylinTM home. [Online]. Available: http://kylin.apache.org/.TensorFlow
[48] TensorFlow.  (2018).  Introduction  to  TensorFlow.  TensorFlow  makes  it  easy  for  beginners  and  experts  to  create
machine learning models for desktop, mobile, Web, and cloud. [Online]. Available: https://www.tensorflow.org/learn
[49] J.  Sanders  and  E.  Kandrot,  CUDA by Example: An Introduction to General-Purpose GPU Programming,  Upper
Saddle River: Addison-Wesley Professional, 2010.
[50] Cuda Zone. (2018). NVIDIA developer. [Online]. Aailable: https://developer.nvidia.com/coda-zone.html
[51] Apache  Spark.  (2018).  MLlib:  Main  guide—Spark  2.4.0  documentation.  [Online].  Available: https://spark.apa
che.org/docs/latest/ml-guide.html
[52] J.-H.  Chen  and  K.-C.  Liu,  “On-line  batch  process  monitoring  using  dynamic  PCA  and  dynamic  PLS  models,”
Chemical Engineering Science, vol. 57, no. 1, pp. 63-75, 2002.
[53] ApacheTM Hadoop. (2018). ApacheTM hadoop®. [Online]. Available: http://hadoop.apache.org/
[54] Apache storm. (2018). Apache storm. [Online]. Available: http://storm.apache.org/
[55] V. C. Kaggal, R. K. Elayavilli, S. Mehrabi, et al., “Toward a learning health-care system—knowledge delivery at the
point of care empowered by big data and NLP,” Biomedical Informatics Insights, vol. 8, no. S1, pp. 13-22, 2016.
[56] F. Chang, J. Dean, S. Ghemawat, et al., “Bigtable: A distributed storage system for structured data,” ACM Trans. on
Computer Systems (TOCS), vol. 26, no. 2, p. 4, 2008.
[57] RocksDB. (2018). A persistent key-value store for fast storage environments. [Online]. Available: https://rocksdb.org/
[58] L.-Q.  Xu,  S.-L.  Huang,  S.-L.  Hui,  A.  J.  Elmore,  and  A.  Parameswaran,  “OrpheusDB:  A  lightweight  approach  to
relational dataset versioning,” in Proc. ACM Intl. Conf. on Management of Data, 2017, pp. 1655-1658.
[59] S.  Wang,  T.  T.  A.  Dinh,  Q.  Lin, et al.  (2018).  Forkbase:  An  efficient  storage  engine  for  blockchain  and  forkable
applications. [Online]. Available: http://dl.acm.org/citation.cfm?id=3242934
[60] Apache Flume. (2018). Welcome to Apache Flume. [Online]. Available: https://flume.apache.org/
[61] Apache Kafka. (2018). Apache Kafka® is a distributed streaming platform. What exactly does that mean? [Online].
Available: https://kafka.apache.org/
[62] Apache  Solr.  (2018).  Solr  is  the  popular,  blazing-fast,  open  source  enterprise  search  platform  built  on  Apache
Lucene™. [Online]. Available: http://lucene.apache.org/solr/
[63] MatiasBjorling.  (2018).  Open-channel  solid  state  drives.  [Online].  Available:  https://openchannelssd.readthedocs.
io/en/latest/
[64] Micron.  (2018).  3D  XPoint™  technology.  [Online].  Available:  https://www.micron.com/products/advanced-solutions/
3d-xpoint-technology
[65] S.-M. Wu, K.-H. Lin, and L.-P. Chang, “KVSSD: Close integration of LSM trees and flash translation layer for write-
efficient KV store,” in Proc. of Design, Automation & Test in Europe Conf. & Exhibition, 2018, pp. 563-568.
[66] J. Xu and S. Swanson, “Nova: A log-structured file system for hybrid volatile/non-volatile main memories,” in Proc. of
the 14th USENIX Conf. on File and Storage Technologies, 2016, pp. 323-338.
[67] J.  Cong,  Z.-M.  Fang,  M.-H.  Huang,  L.-B.  Wang,  and  D.  Wu,  “CPU-FPGA  coscheduling  for  big  data  applications,”
IEEE Design & Test, vol. 35, no. 1, pp. 16-22, 2018.
[68] F. Firouzi, A. M. Rahmani, K. Mankodiya, et al., “Internet-of-things and big data for smarter healthcare: from device
to architecture, applications and analytics,” Future Generation Computer Systems, vol. 78, pp. 583-586, 2018.
[69] M.  Elhoseny,  A.  Abdelaziz,  A.  S.  Salama,  A.  M.  Riad,  K.  Muhammad,  and  A.  K.  Sangaiah,  “A  hybrid  model  of
Internet  of  things  and  cloud  computing  to  manage  big  data  in  health  services  applications,”  Future Generation
Computer Systems, vol. 86, pp. 1383-1394, 2018.
72 JOURNAL OF ELECTRONIC SCIENCE AND TECHNOLOGY, VOL. 17, NO. 1, MARCH 2019

[70] H. Vo, Y.-H. Liang, J. Kong, and F.-S. Wang, “iSPEED: A scalable and distributed in-memory based spatial query
system for large and structurally complex 3D data,” Proc. of the VLDB Endowment, vol. 11, no. 12, pp. 2078-2081,
2018.
[71] B. Salimi, C. Cole, P. Li, J. Gehrke, and D. Suciu, “HypDB: A demonstration of detecting, explaining and resolving
bias in OLAP queries,” Proc. of the VLDB Endowment, vol. 11, no. 12, pp. 2062-2065, 2018.
[72] E. Bortnikov, A. Braginsky, E. Hillel, I. Keidar, and G. Sheffi, “Accordion: Better memory organization for LSM key-
value stores,” Proc. of the VLDB Endowment, vol. 11, no. 12, pp. 1863-1875, 2018.
[73] I.  Nadareishvili,  R.  Mitra,  M.  McLarty, et al.,  Microservice Architecture: Aligning Principles, Practices, and Culture,
Sebastopol: O'Reilly Media, Inc., 2016.

Jing-Huan Yu  was  born  in  Jiangxi  Province,  China  in  1996.  He  received  the  B.S.  degree  from
University of Electronic Science and Technology of China, Chengdu, China in 2018. He is currently
pursuing  the  Ph.D.  degree  with  City  University  of  Hong  Kong,  Hong  Kong,  China.  His  research
interests include data mining, database engine, and non-volatile memory.

Zi-Meng Zhou  received  the  M.E.  degree  from  the  Department  of  Computer  Science  and
Technology, Shandong University, Jinan, China in 2015. He is currently pursuing the Ph.D. degree
with  the  Department  of  Computer  Science,  City  University  of  Hong  Kong.  His  research  interests
include non-volatile memories, embedded systems, and data-intensive computing.

You might also like