<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Handling Big(ger) Logs: Connecting ProM 6 to Apache Hadoop</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergio Herna´ndez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S.J. van Zelst</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Joaqu´ın Ezpeleta</string-name>
          <email>ezpeletag@unizar.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wil M.P. van der Aalst</string-name>
          <email>w.m.p.v.d.aalstg@tue.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science and Systems Engineering University of Zaragoza</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Mathematics and Computer Science Eindhoven University of Technology</institution>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Within process mining the main goal is to support the analysis, improvement and apprehension of business processes. Numerous process mining techniques have been developed with that purpose. The majority of these techniques use conventional computation models and do not apply novel scalable and distributed techniques. In this paper we present an integrative framework connecting the process mining framework ProM with the distributed computing environment Apache Hadoop. The integration allows for the execution of MapReduce jobs on any Apache Hadoop cluster enabling practitioners and researchers to explore and develop scalable and distributed process mining approaches. Thus, the new approach enables the application of different process mining techniques to events logs of several hundreds of gigabytes.</p>
      </abstract>
      <kwd-group>
        <kwd>Process mining</kwd>
        <kwd>Big Data</kwd>
        <kwd>scalability</kwd>
        <kwd>distributed computing</kwd>
        <kwd>ProM</kwd>
        <kwd>Apache Hadoop</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        We assume the reader to be knowledgeable with regard to the basics of process mining
and refer to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for an in-depth overview.
      </p>
      <p>
        Nowadays, we are able to store huge quantities of event data. In principle, an array
of process mining techniques can be used to analyse these data. However, classical
process mining techniques are not able to cope with huge quantities of data. Within
the ProM framework3 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] it is currently impossible to analyse event data whose size
exceeds the computer’s physical memory. Within process mining only a limited amount
of research has been done concerning the integration of techniques that are designed to
cope with enormous amounts of data. Divide and conquer based approaches have been
developed in order to reduce computational complexity [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Some work has been done
to incorporate stream mining techniques within the context of process mining [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], i.e.
the input data is regarded as a stream of events rather than a static event log. Finally, the
application of MapReduce techniques to process discovery is explored in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Apache Hadoop4 provides an open-source multi-purpose framework which main
aim is to provide reliable, scalable and distributed computing. Typically, Hadoop runs
on a large-scale computational cluster of servers. It comprises of a set of different
modules that handle different perspectives of the aforementioned aim. The Hadoop
Distributed File System (HDFS) component provides distributed storage whereas the Yet
Another Resource Negotiator (YARN) component implements a MapReduce
programming model aimed at processing vast amounts of data. In particular, MapReduce finds
its fundamental concepts within the area of functional programming and is particularly
aimed at handling large amounts of semi- and/or unstructured data.</p>
      <p>
        Although some interesting results regarding the use of MapReduce in process
mining are shown in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], the techniques are not available to the process mining
community. Thus, a unifying implementation that allows the development of scalable and
distributed process mining techniques does not yet exist. Moreover, a thorough
investigation of techniques related to distributed computation models for process mining is
missing. In this paper, we present a newly developed framework integrating the
process mining framework ProM and Apache Hadoop. The integration allows any user of
the ProM framework to execute MapReduce jobs on any given Apache Hadoop cluster.
Thereby, the framework is intended to provide an easy entry point for the development
of MapReduce-based techniques from a process mining perspective.
      </p>
      <p>The remainder of this paper is organized as follows. In Section 2 we present the
core concepts of the newly created integrative framework. Section 3 shows an example
of execution of a process discovery based MapReduce job within Hadoop using the
framework. Section 4 concludes the paper.</p>
      <p>Additionally, a screencast detailing the operation of the developed plugins and
showing an use case is provided here: https://svn.win.tue.nl/repos/prom/Packages/Hadoop/Tags/
publications/screen casts/2015 bpm demo hadoop/hadoop demo 2015.tar.gz
2</p>
    </sec>
    <sec id="sec-2">
      <title>Core Concepts</title>
      <p>The main purpose of the integration between Apache Hadoop and ProM is to enable
researchers and practitioners to use, develop and/or publish Hadoop-based process mining
techniques. Hence, the newly developed framework acts as a core platform that
establishes access to a variety of Apache Hadoop based functionality. Conceptually, the basic
goal of the integration is to enable any user and/or developer to connect their Apache
Hadoop cluster5 to ProM and design/execute MapReduce-based process mining tasks.</p>
      <p>The HadoopClusterParameters (HCP) interface acts as the core of the
integration between Apache Hadoop and the ProM framework by managing the connection
to a Hadoop cluster within ProM. The HCP object is needed by all Hadoop plugins.
Currently, the HCP object provides means to verify whether a connection can be established
to the Hadoop cluster, by verifying whether the HDFS can be mounted and the user has
access to the cluster. A second core element of the integration is the HDFSXLog
interface which extends the well-known XLog interface6. As Apache Hadoop provides a
4http://hadoop.apache.org/
5Given that the Hadoop cluster fits a specific range of Hadoop release lines, e.g. 2.x.y.
6http://www.xes-standard.org/openxes/start
distributed file system, i.e., HDFS, we can store (XES) event logs on the cluster. Within
the Hadoop integration we provide means to import such event logs from the cluster.
Importing an event log will create an HDFSXLog object within ProM. By default the
log is not actually loaded in the local memory as it is rather a pointer to the external
location of the event log. Note that currently, when importing the event log, it’s size
may not exceed the computer’s physical memory.</p>
      <p>
        By using the previous objects as input, different plugins implementing
MapReducebased process mining techniques could be used. Currently, we have implemented
several process discovery techniques: the Alpha Miner [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], the Flexible Heuristics Miner [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
and the Inductive Miner [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. To include new process mining techniques, the developer
should focus on implementing the MapReduce-based application since the framework
is able to manage the lifecycle of the applications executed in Hadoop. For that, the new
technique must be packed into an executable Java Archive (jar) and it must be included
within the ProM sources. Then, a new plugin executing the developed application can
be created. The plugin can use the methods provided by the framework to manage the
communication with the Hadoop cluster, transfer the corresponding JAR file, execute
the MapReduce application and transfer back the results of the computation which can
consequently be visualized by ProM.
3
      </p>
      <p>
        Case Study - Executing the Inductive Miner on Apache Hadoop
As a case study the execution of a newly developed plugin executing the Inductive
Miner [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] in a Hadoop cluster is presented. The plugin computes the directly-follows
graph used by the Inductive Miner in Hadoop and then gets and visualizes the final
process model in ProM. The algorithm is applied on an event log whose size is 218 GB.
      </p>
      <p>Any plugin that is able to execute MapReduce jobs on a Hadoop cluster needs an
HCP object as well as an HDFSXLog object. Importing an HDFSXLog can be done both
with or without the use of an HCP object, i.e. we provide a plug-in that generates both
objects. To import a HDFSXLog we run the “Import a XLog from Hadoop Distributed
File System” plugin in ProM. If we start the plugin without using an HCP, the user is
first asked to connect to a Hadoop cluster (Figure 1a). Next, the path to the specific log
of choice must be provided (Figure 1b). Thus, the plugin generates two artifacts, one
HCP object and one HDFSXLog object.</p>
      <p>Using the latter two objects as an input we execute the “Mine a Process Tree in
Hadoop using Inductive Miner (from DFG)” plugin. Executing this plugin triggers a
copy of the associated jar files, i.e. specifying the MapReduce jobs, to the Hadoop
cluster. If all files are transferred successfully the Hadoop job will be submitted. The
progress of the job can be inspected within the Hadoop Cluster Metrics overview (which
is part of the Apache Hadoop software) as depicted in Figure 2a.7 The result of applying
the Inductive Miner on the directly follows graph computed using Apache MapReduce
is depicted in Figure 2b as a process tree.</p>
      <p>7Note that we removed some of the user and cluster specific information from the screenshot.
(a) Screenshot of the dialog
requesting the host, user and password for the
HadoopClusterParameters (HCP).
(b) Screenshot of the dialog requesting the
path of the XES log in the HDFS to generate
the HDFSXLog artifact.
The newly created integration between ProM and Apache Hadoop allows developers
and BPM professionals to use and/or develop Big Data related techniques within a
process mining context. The integration allows users and developers to connect, in a trivial
manner, to an arbitrary Hadoop cluster. Thus, without any in-depth technical
knowledge of Hadoop users can start exploring new types of analysis using a distributed and
scalable computing infrastructure. Furthermore, this integration enables the analysis of
huge event data logs.</p>
      <p>Future Work There are many interesting directions for future work. Currently, the user
needs to specify the exact path to a file. In the future we want to integrate support for
browsing the HDFS using some graphical interface. Additionally we want to integrate
user authentication more thoroughly throughout all plugins using the HCP object. Also,
we want to develop a new importer for HDFS logs that reads the log as a stream. In this
way we could actually import logs which size exceeds the computer’s physical memory
allowing the use of all ProM plugins with large event logs.</p>
      <p>Another interesting addition is “on-the-fly” jar generation. Currently, when
developing a plug-in that (partially) consists of MapReduce tasks, the developer needs to
manually generate a jar file and include it in the project source. We think of extending
the framework in such way that the jars needed for the execution of MapReduce on
Hadoop will be automatically generated within ProM. This allows developers to
primarily focus on the implementation of MapReduce related code and abstract from the
administrative details of handling the execution on a cluster.</p>
      <p>Acknowledgment This work has been supported by the research projects 287230/2,
granted by Gobierno de Arago´ n, FPU12/04775, granted by the Spanish Ministerio de
Educacio´ n, Cultura y Deporte, TIN2014-56633-C3-2-R, granted by the Spanish
Ministerio de Econom´ıa y Competitividad, and the DELIBIDA (Desire Lines in Big Data)
research program supported by NWO.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          v.d.:
          <source>Process Mining: Discovery, Conformance and Enhancement of Business Processes. 1st edn</source>
          . Springer Publishing Company, Incorporated (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Dongen</surname>
            ,
            <given-names>B.F.v.</given-names>
          </string-name>
          , Alves de Medeiros,
          <string-name>
            <given-names>A.K.</given-names>
            ,
            <surname>Verbeek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.M.W.</given-names>
            ,
            <surname>Weijters</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.J.M.M.</given-names>
            ,
            <surname>Aalst</surname>
          </string-name>
          ,
          <string-name>
            <surname>W.M.P.</surname>
          </string-name>
          v.d.:
          <article-title>The prom framework: A new era in process mining tool support</article-title>
          . In Ciardo, G.,
          <string-name>
            <surname>Darondeau</surname>
          </string-name>
          , P., eds.
          <source>: Applications and Theory of Petri Nets 2005. Volume 3536 of Lecture Notes in Computer Science</source>
          . Springer Berlin Heidelberg (
          <year>2005</year>
          )
          <fpage>444</fpage>
          -
          <lpage>454</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          v.d.:
          <article-title>Decomposing Petri nets for process mining: A generic approach</article-title>
          .
          <source>Distributed and Parallel Databases</source>
          <volume>31</volume>
          (
          <issue>4</issue>
          ) (
          <year>2013</year>
          )
          <fpage>471</fpage>
          -
          <lpage>507</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Burattin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sperduti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          v.d.:
          <article-title>Control-flow discovery from event streams</article-title>
          .
          <source>In: Proceedings of the IEEE Congress on Evolutionary Computation, CEC</source>
          <year>2014</year>
          , Beijing, China, July 6-
          <issue>11</issue>
          ,
          <year>2014</year>
          . (
          <year>2014</year>
          )
          <fpage>2420</fpage>
          -
          <lpage>2427</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Zelst</surname>
            ,
            <given-names>S.J.v.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Burattin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dongen</surname>
            ,
            <given-names>B.F.v.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verbeek</surname>
            ,
            <given-names>H.M.W.</given-names>
          </string-name>
          :
          <article-title>Data streams in ProM 6: A single-node architecture</article-title>
          .
          <source>In: Proceedings of the BPM Demo Sessions 2014 Co-located with the 12th International Conference on Business Process Management (BPM</source>
          <year>2014</year>
          ), Eindhoven, The Netherlands,
          <year>September 10</year>
          ,
          <year>2014</year>
          . (
          <year>2014</year>
          )
          <fpage>81</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Evermann</surname>
          </string-name>
          , J.:
          <article-title>Scalable process discovery using Map-Reduce</article-title>
          .
          <article-title>Services Computing, IEEE Transactions on (</article-title>
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          v.d.,
          <string-name>
            <surname>Weijters</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maruster</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Workflow mining: Discovering process models from event logs. Knowledge and Data Engineering</article-title>
          , IEEE Transactions on
          <volume>16</volume>
          (
          <issue>9</issue>
          ) (
          <year>2004</year>
          )
          <fpage>1128</fpage>
          -
          <lpage>1142</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Weijters</surname>
            ,
            <given-names>A.J.M.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ribeiro</surname>
          </string-name>
          , J.T.S.:
          <article-title>Flexible Heuristics Miner (FHM)</article-title>
          .
          <source>In: Computational Intelligence and Data Mining (CIDM)</source>
          ,
          <source>2011 IEEE Symposium on, IEEE</source>
          (
          <year>2011</year>
          )
          <fpage>310</fpage>
          -
          <lpage>317</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Leemans</surname>
            ,
            <given-names>S.J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fahland</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          v.d.:
          <article-title>Discovering block-structured process models from event logs - A constructive approach</article-title>
          .
          <source>In: Application and Theory of Petri Nets and Concurrency - 34th International Conference, PETRI NETS</source>
          <year>2013</year>
          , Milan, Italy, June 24-28,
          <year>2013</year>
          . Proceedings. (
          <year>2013</year>
          )
          <fpage>311</fpage>
          -
          <lpage>329</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>