<!DOCTYPE html>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Apache Gobblin</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <link rel="icon"
          type="image/png"
          href="assets/images/favicon.png">
    <!--===============================================
      CSS files
    =================================================-->
    <link rel="stylesheet" href="assets/css/bootstrap.css" media="screen">
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
    <link rel="stylesheet" href="assets/css/custom.min.css">
    <link rel="stylesheet" href="assets/css/gobblin.css">
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="assets/js/html5shiv.js"></script>
      <script src="assets/js/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <!--===============================================
      Gobblin Navigation Space <start>
    =================================================-->

    <div id="navigationHomePage"></div>

    <!--===============================================
      Gobblin Navigation Space <end>
    =================================================-->
    <!--===============================================
      Gobblin Center Space <start>
    =================================================-->
    <div class="container">

      <div class="page-header" id="primary-content">
        <!--===============================================
          ROW 1 <start>
        =================================================-->
        <div class="row">
          <!--===============================================
             Gobblin Primary Content <start>
          =================================================-->
          <div class="col-lg-8 col-md-7 col-sm-6 text-center" class="primary-container-header">
            <h1 style="margin-top: 0px">Apache Gobblin</h1>
            <p class="lead">A distributed data integration framework that simplifies common aspects of big data integration such as data ingestion, replication, organization and lifecycle management for both <b>streaming</b> and <b>batch</b> data ecosystems.</p>
            <p class="lead">
                <a class="btn btn-primary btn-animated btn-outline" href="/download">Download</a>
                <!-- <a class="btn btn-primary btn-animated btn-outline" href="https://www.gobblin.io" target="_blank" rel="nofollow">Try Gobblin</a> -->
            </p>
          </div>
          <!--===============================================
             Gobblin Primary Content <end>
          =================================================-->
          <!--===============================================
             Gobblin News Content <start>
          =================================================-->
          <div class="col-lg-4 col-md-5 col-sm-6">
            <div class="row">
              <div class="col-sm-12 panel panel-default latest-news-panel">
                <p class="latest-news-header">
                    <!-- REQUIRED BY APACHE FOR ADVERTISING ITS EVENTS [START] -->
                    <a  href="https://www.apache.org/events/current-event.html">
                        <img src="https://www.apache.org/events/current-event-234x60.png"/>
                    </a>
                    <!-- REQUIRED BY APACHE FOR ADVERTISING ITS EVENTS [END] -->
                </p>
                  
                <p class="latest-news-header">Latest News</p>
                  
                <div class="row latest-news-item">
                  <div class="col-sm-12" style="margin-bottom: 5px">
                   <span style="font-size: 12px; margin-right: 5px;">Jan 2021</span>
                   <a href="https://projects.apache.org/project.html?gobblin" target="_blank">
                      Apache Gobblin is now a Top Level Project.</a>
                  </div>
                </div>

		        <div class="row latest-news-item">
                  <div class="col-sm-12" style="margin-bottom: 5px">
                   <span style="font-size: 12px; margin-right: 5px;">Dec 2020</span>
                   <a href="https://www.apache.org/dyn/closer.lua/incubator/gobblin/apache-gobblin-incubating-0.15.0/" target="_blank">Apache Gobblin 0.15.0-incubating released.</a>
                  </div>
                </div>

                <div class="row latest-news-item">
                  <div class="col-sm-12" style="margin-bottom: 5px">
                    <span style="font-size: 12px; margin-right: 5px;">Mar 2020</span>
                    <a href="/docs/developer-guide/HighLevelConsumer" target="_blank">Apache Gobblin has improved High Level Consumer.</a>
                  </div>
                </div>
                  
                <div class="row latest-news-item">
                  <div class="col-sm-12" style="margin-bottom: 5px">
                   <span style="font-size: 12px; margin-right: 5px;">Dec 2018</span>
                   <a href="https://www.apache.org/dyn/closer.lua/incubator/gobblin/apache-gobblin-incubating-0.14.0/" target="_blank">Apache Gobblin 0.14.0-incubating released.</a>
                  </div>
                </div>
                  
                <div class="row latest-news-item">
                  <div class="col-sm-12" style="margin-bottom: 5px">
                   <span style="font-size: 12px; margin-right: 5px;">Sep 2018</span>
                   <a href="https://www.apache.org/dyn/closer.lua/incubator/gobblin/apache-gobblin-incubating-0.13.0/" target="_blank">Apache Gobblin 0.13.0-incubating released.</a>
                  </div>
                </div>
                                    
              </div>
            </div>
          </div>
          <!--===============================================
             Gobblin News Content <end>
          =================================================-->
        </div>
        <!--===============================================
          ROW 1 <end>
        =================================================-->
        <hr>
        <!--===============================================
          ROW 2 <start>
        =================================================-->
        <div class="row" style="margin-top: -20px">
          <h2 class="sectiontile" style="text-align: center">Execution Modes</h2>
          <div class="col-lg-3 col-md-3">
            <div class="bs-component">
              <h3>Standalone</h3>
              <p>Runs as standalone application on a single box. Also supports embedded mode. </p>
              <p><img src="assets/images/threads.gif" style="height: 100px; "></p>
            </div>
          </div>
          <div class="col-lg-3 col-md-3">
            <div class="bs-component">
              <h3>Mapreduce Mode</h3>
              <p>Runs as an mapreduce application on multiple Hadoop versions. Also supports <a href="https://azkaban.github.io/" target="_blank" rel="nofollow">Azkaban</a> for launcing mapreduce jobs. </p>
              <p><img src="assets/images/hadoop.png" style="height: 100px; "></p>
            </div>
          </div>
          <div class="col-lg-3 col-md-3">
            <div class="bs-component">
              <h3>Cluster / Yarn</h3>
              <p>Runs as a standalone cluster with primary and worker nodes. This mode supports high availability, and can run on bare metals as well.</p>
              <p><img src="assets/images/yarn_architecture.gif" style="height: 80px; "></p>
            </div>
          </div>
          <div class="col-lg-3 col-md-3">
            <div class="bs-component">
              <h3>Cloud</h3>
              <p>Runs as elastic cluster on public cloud. This mode supports high availability.</p>
              <p><img src="assets/images/mesos-cluster.png" style="height: 100px; "></p>
            </div>
          </div>
        </div>
        <!--===============================================
          ROW 2 <end>
        =================================================-->
        
        <hr>
        <footer style="margin-bottom: 0em; margin-top: 0em;">
          <div id="footer">
              <div class="row">
                  <div class="col-sm-6">
                      <div class="footer-section__policies-section--policies">
                          <p style="font-size: 12px; line-height: 1.5em;">
                            Copyright © 2021 <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a>
                            <br>
                            Apache, Apache Gobblin, the Apache feather and the Gobblin logo are trademarks of The Apache Software Foundation
                            <br>
                         </p>
                      </div>
                </div>
                <div class="col-sm-6">
                    <p style="font-size: 12px; line-height: 1.5em; text-align: right;">
                        <!-- REQUIRED BY APACHE [START] -->
                        <a class="external" href="https://www.apache.org/">Foundation</a> | 
                        <a class="external" href="https://www.apache.org/licenses/">License</a> | 
                        <a class="external" href="https://www.apache.org/events/current-event">Events</a> | 
                        <a class="external" href="https://www.apache.org/security">Security</a> | 
                        <a class="external" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> | 
                        <a class="external" href="https://www.apache.org/foundation/thanks.html">Thanks</a> 
                        <!-- REQUIRED BY APACHE [END] -->
                    </p>
                </div>
              
            </div>
          </div>
        </footer>

      </div>
    <!--===============================================
      Gobblin Center Space <end>
    =================================================-->
    </div>

    <!--===============================================
      Javascript files
    =================================================-->
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="assets/js/bootstrap.min.js"></script>
    <script src="assets/js/jquery.particleground.min.js"></script>
    <script src="assets/js/custom.js"></script>
    <script src="assets/js/gobblin.js"></script>
  </body>
</html>
