<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <meta name="author" content="Apache Software Foundation">
  <link rel="shortcut icon" href="../../img/favicon.ico">
  <title>Gobblin CLI - Apache Gobblin</title>
  <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>

  <link rel="stylesheet" href="../../css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../../css/theme_extra.css" type="text/css" />
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
  <link href="../../css/extra.css" rel="stylesheet">
  
  <script>
    // Current page data
    var mkdocs_page_name = "Gobblin CLI";
    var mkdocs_page_input_path = "user-guide/Gobblin-CLI.md";
    var mkdocs_page_url = null;
  </script>
  
  <script src="../../js/jquery-2.1.1.min.js" defer></script>
  <script src="../../js/modernizr-2.8.3.min.js" defer></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
  <script>hljs.initHighlightingOnLoad();</script> 
  
  <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-74333035-1', 'gobblin.readthedocs.org');
      ga('send', 'pageview');
  </script>
  
</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
      <div class="wy-side-nav-search">
        <a href="../.." class="icon icon-home"> Apache Gobblin</a>
        <div role="search">
  <form id ="rtd-search-form" class="wy-form" action="../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" title="Type search term here" />
  </form>
</div>
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
	<ul class="current">
	  
          
            <li class="toctree-l1">
		
    <a class="" href="/">Home</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../Powered-By/">Companies Powered By Gobblin</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../Getting-Started/">Getting Started</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../Gobblin-Architecture/">Architecture</a>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">User Guide</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../Working-with-Job-Configuration-Files/">Job Configuration Files</a>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-Deployment/">Deployment</a>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-as-a-Library/">Gobblin as a Library</a>
                </li>
                <li class=" current">
                    
    <a class="current" href="./">Gobblin CLI</a>
    <ul class="subnav">
            
    <li class="toctree-l3"><a href="#table-of-contents">Table of Contents</a></li>
    

    <li class="toctree-l3"><a href="#gobblin-commands-execution-modes">Gobblin Commands &amp; Execution Modes</a></li>
    

    <li class="toctree-l3"><a href="#gobblin-commands">Gobblin Commands</a></li>
    

    <li class="toctree-l3"><a href="#the-distcp-quick-app">The Distcp Quick App</a></li>
    

    <li class="toctree-l3"><a href="#the-oneshot-quick-app">The OneShot Quick App</a></li>
    

    <li class="toctree-l3"><a href="#developing-quick-apps-for-the-cli">Developing quick apps for the CLI</a></li>
    

    <li class="toctree-l3"><a href="#implementing-new-gobblin-commands">Implementing new Gobblin commands</a></li>
    

    <li class="toctree-l3"><a href="#gobblin-service-execution-modes-as-daemon">Gobblin Service Execution Modes ( as Daemon )</a></li>
    

    <li class="toctree-l3"><a href="#gobblin-system-configurations">Gobblin System Configurations</a></li>
    

    </ul>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-Compliance/">Gobblin Compliance</a>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-on-Yarn/">Gobblin on Yarn</a>
                </li>
                <li class="">
                    
    <a class="" href="../Compaction/">Compaction</a>
                </li>
                <li class="">
                    
    <a class="" href="../State-Management-and-Watermarks/">State Management and Watermarks</a>
                </li>
                <li class="">
                    
    <a class="" href="../Working-with-the-ForkOperator/">Fork Operator</a>
                </li>
                <li class="">
                    
    <a class="" href="../Configuration-Properties-Glossary/">Configuration Glossary</a>
                </li>
                <li class="">
                    
    <a class="" href="../Source-schema-and-Converters/">Source schema and Converters</a>
                </li>
                <li class="">
                    
    <a class="" href="../Partitioned-Writers/">Partitioned Writers</a>
                </li>
                <li class="">
                    
    <a class="" href="../Monitoring/">Monitoring</a>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-template/">Template</a>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-Schedulers/">Schedulers</a>
                </li>
                <li class="">
                    
    <a class="" href="../Job-Execution-History-Store/">Job Execution History Store</a>
                </li>
                <li class="">
                    
    <a class="" href="../Building-Gobblin/">Building Gobblin</a>
                </li>
                <li class="">
                    
    <a class="" href="../Gobblin-genericLoad/">Generic Configuration Loading</a>
                </li>
                <li class="">
                    
    <a class="" href="../Hive-Registration/">Hive Registration</a>
                </li>
                <li class="">
                    
    <a class="" href="../Config-Management/">Config Management</a>
                </li>
                <li class="">
                    
    <a class="" href="../Docker-Integration/">Docker Integration</a>
                </li>
                <li class="">
                    
    <a class="" href="../Troubleshooting/">Troubleshooting</a>
                </li>
                <li class="">
                    
    <a class="" href="../FAQs/">FAQs</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Sources</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../sources/AvroFileSource/">Avro files</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/CopySource/">File copy</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/QueryBasedSource/">Query based</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/RestApiSource/">Rest Api</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/GoogleAnalyticsSource/">Google Analytics</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/GoogleDriveSource/">Google Drive</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/GoogleWebmaster/">Google Webmaster</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/HadoopTextInputSource/">Hadoop Text Input</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/HelloWorldSource/">Hello World</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/HiveAvroToOrcSource/">Hive Avro-to-ORC</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/HivePurgerSource/">Hive compliance purging</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/SimpleJsonSource/">JSON</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/KafkaSource/">Kafka</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/MySQLSource/">MySQL</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/OracleSource/">Oracle</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/SalesforceSource/">Salesforce</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/SftpSource/">SFTP</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/SqlServerSource/">SQL Server</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/TeradataSource/">Teradata</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sources/WikipediaSource/">Wikipedia</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Sinks (Writers)</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../sinks/AvroHdfsDataWriter/">Avro HDFS</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/ParquetHdfsDataWriter/">Parquet HDFS</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/SimpleBytesWriter/">HDFS Byte array</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/ConsoleWriter/">Console</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/CouchbaseWriter/">Couchbase</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/Http/">HTTP</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/Gobblin-JDBC-Writer/">JDBC</a>
                </li>
                <li class="">
                    
    <a class="" href="../../sinks/Kafka/">Kafka</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Gobblin Adaptors</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../adaptors/Gobblin-Distcp/">Gobblin Distcp</a>
                </li>
                <li class="">
                    
    <a class="" href="../../adaptors/Hive-Avro-To-ORC-Converter/">Hive Avro-To-Orc Converter</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Case Studies</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../case-studies/Kafka-HDFS-Ingestion/">Kafka-HDFS Ingestion</a>
                </li>
                <li class="">
                    
    <a class="" href="../../case-studies/Publishing-Data-to-S3/">Publishing Data to S3</a>
                </li>
                <li class="">
                    
    <a class="" href="../../case-studies/Writing-ORC-Data/">Writing ORC Data</a>
                </li>
                <li class="">
                    
    <a class="" href="../../case-studies/Hive-Distcp/">Hive Distcp</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Gobblin Data Management</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../data-management/Gobblin-Retention/">Retention</a>
                </li>
                <li class="">
                    
    <a class="" href="../../data-management/DistcpNgEvents/">Distcp-NG events</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Gobblin Metrics</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../metrics/Gobblin-Metrics/">Quick Start</a>
                </li>
                <li class="">
                    
    <a class="" href="../../metrics/Existing-Reporters/">Existing Reporters</a>
                </li>
                <li class="">
                    
    <a class="" href="../../metrics/Metrics-for-Gobblin-ETL/">Metrics for Gobblin ETL</a>
                </li>
                <li class="">
                    
    <a class="" href="../../metrics/Gobblin-Metrics-Architecture/">Gobblin Metrics Architecture</a>
                </li>
                <li class="">
                    
    <a class="" href="../../metrics/Implementing-New-Reporters/">Implementing New Reporters</a>
                </li>
                <li class="">
                    
    <a class="" href="../../metrics/Gobblin-Metrics-Performance/">Gobblin Metrics Performance</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Developer Guide</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../developer-guide/Customization-for-New-Source/">Customization for New Source</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/Customization-for-Converter-and-Operator/">Customization for Converter and Operator</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/CodingStyle/">Code Style Guide</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/Gobblin-Compliance-Design/">Gobblin Compliance Design</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/IDE-setup/">IDE setup</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/Monitoring-Design/">Monitoring Design</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/Documentation-Architecture/">Documentation Architecture</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/Contributing/">Contributing</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/GobblinModules/">Gobblin Modules</a>
                </li>
                <li class="">
                    
    <a class="" href="../../developer-guide/HighLevelConsumer/">High Level Consumer</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Project</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../project/Feature-List/">Feature List</a>
                </li>
                <li class="">
                    
    <a class="" href="/people">Contributors and Team</a>
                </li>
                <li class="">
                    
    <a class="" href="../../project/Talks-and-Tech-Blogs/">Talks and Tech Blog Posts</a>
                </li>
                <li class="">
                    
    <a class="" href="../../project/Posts/">Posts</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Miscellaneous</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../miscellaneous/Camus-to-Gobblin-Migration/">Camus to Gobblin Migration</a>
                </li>
                <li class="">
                    
    <a class="" href="../../miscellaneous/Exactly-Once-Support/">Exactly Once Support</a>
                </li>
    </ul>
	    </li>
          
        </ul>
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../..">Apache Gobblin</a>
      </nav>

      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="../..">Docs</a> &raquo;</li>
    
      
        
          <li>User Guide &raquo;</li>
        
      
    
    <li>Gobblin CLI</li>
    <li class="wy-breadcrumbs-aside">
      
        <a href="https://github.com/apache/incubator-gobblin/edit/master/docs/user-guide/Gobblin-CLI.md"> Edit on Gobblin</a>
      
    </li>
  </ul>
  <hr/>
</div>
          <div role="main">
            <div class="section">
              
                <h2 id="table-of-contents">Table of Contents</h2>
<div class="toc">
<ul>
<li><a href="#table-of-contents">Table of Contents</a></li>
<li><a href="#gobblin-commands-execution-modes">Gobblin Commands &amp; Execution Modes</a></li>
<li><a href="#gobblin-commands">Gobblin Commands</a></li>
<li><a href="#the-distcp-quick-app">The Distcp Quick App</a></li>
<li><a href="#the-oneshot-quick-app">The OneShot Quick App</a></li>
<li><a href="#developing-quick-apps-for-the-cli">Developing quick apps for the CLI</a></li>
<li><a href="#implementing-new-gobblin-commands">Implementing new Gobblin commands</a></li>
<li><a href="#gobblin-service-execution-modes-as-daemon">Gobblin Service Execution Modes ( as Daemon )</a></li>
<li><a href="#gobblin-system-configurations">Gobblin System Configurations</a></li>
</ul>
</div>
<h2 id="gobblin-commands-execution-modes">Gobblin Commands &amp; Execution Modes</h2>
<p>The Gobblin distribution comes with a script <code>./bin/gobblin</code> for all commands and services.
Here is the usage:  </p>
<pre><code class="bash">Usage:
gobblin.sh  cli     &lt;cli-command&gt;    &lt;params&gt;
gobblin.sh  service &lt;execution-mode&gt; &lt;start|stop|status&gt;

Use &quot;gobblin &lt;cli|service&gt; --help&quot; for more information.         (Gobblin Version: 0.15.0)
</code></pre>

<p>For Gobblin CLI commands, run following:  </p>
<pre><code class="bash">Usage:
gobblin.sh  cli     &lt;cli-command&gt;    &lt;params&gt;

options:
    cli-commands:
                passwordManager             Encrypt or decrypt strings for the password manager.
                decrypt                     Decryption utilities
                run                         Run a Gobblin application.
                config                      Query the config library
                jobs                        Command line job info and operations
                stateMigration              Command line tools for migrating state store
                job-state-to-json           To convert Job state to JSON
                cleaner                     Data retention utility
                keystore                    Examine JCE Keystore files
                watermarks                  Inspect streaming watermarks
                job-store-schema-manager    Database job history store schema manager

    --conf-dir &lt;gobblin-conf-dir-path&gt; Gobblon config path. default is '$GOBBLIN_HOME/conf/&lt;exe-mode-name&gt;'.
    --log4j-conf &lt;path-of-log4j-file&gt;  default is '&lt;gobblin-conf-dir-path&gt;/&lt;execution-mode&gt;/log4j.properties'.
    --jvmopts &lt;jvm or gc options&gt;      String containing JVM flags to include, in addition to &quot;-Xmx1g -Xms512m&quot;.
    --jars &lt;csv list of extra jars&gt;    Column-separated list of extra jars to put on the CLASSPATH.
    --enable-gc-logs                   enables gc logs &amp; dumps.
    --show-classpath                   prints gobblin runtime classpath.
    --help                             Display this help.
    --verbose                          Display full command used to start the process.
                                       Gobblin Version: 0.15.0
</code></pre>

<p>Argument details:
<em> <code>--conf-dir</code>: specifies the path to directory containing gobblin system configuration files, like <code>application.conf</code> or <code>reference.conf</code>, <code>log4j.properties</code> and <code>quartz.properties</code>.
</em> <code>--log4j-conf</code>: specify the path of log4j config file to override the one in config directory (default is <code>&lt;conf&gt;/&lt;gobblin-mode&gt;/log4j.properties</code>. Gobblin uses <a href="http://www.slf4j.org/">SLF4J</a> and the <a href="http://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12">slf4j-log4j12</a> binding for logging.
<em> <code>--jvmopts</code>: to specify any JVM parameters, default is <code>-Xmx1g -Xms512m</code>.
</em> <code>--enable-gc-logs</code>: adds GC options to JVM parameters:  <code>-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCompressedOops -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$GOBBLIN_LOGS/ -Xloggc:$GOBBLIN_LOGS/gobblin-$GOBBLIN_MODE-gc.log</code>
<em> <code>--show-classpath</code>: It prints the full value of the classpath that gobblin uses.
</em> all other arguments are self-explanatory.</p>
<h2 id="gobblin-commands">Gobblin Commands</h2>
<p>Gobblin provides following CLI commands:</p>
<pre><code>Available commands:
    job-state-to-json           To convert Job state to JSON
    jobs                        Command line job info and operations
    passwordManager             Encrypt or decrypt strings for the password manager.
    run                         Run a Gobblin application.
    decrypt                     Decryption utilities
    job-store-schema-manager    Database job history store schema manager
    stateMigration              Command line tools for migrating state store
    keystore                    Examine JCE Keystore files
    config                      Query the config library
    watermarks                  Inspect streaming watermarks
    cleaner                     Data retention utility
</code></pre>
<p>Details on how to use <code>run</code> command: </p>
<p>Gobblin ingestion applications can be accessed through the following command:</p>
<pre><code>gobblin cli run [listQuickApps] [&lt;quick-app&gt;] -jobName &lt;jobName&gt; [OPTIONS]
</code></pre>
<p>For usage run <code>./bin/gobblin cli run</code>.</p>
<p><code>gobblin cli run</code> uses <a href="../Gobblin-as-a-Library/">Embedded Gobblin</a> and subclasses to run Gobblin ingestion jobs, giving CLI access to most functionality that could be achieved using <code>EmbeddedGobblin</code>. For example, the following command will run a Hello World job (it will print "Hello World 1 !" somewhere in the logs).</p>
<pre><code>gobblin cli run -jobName helloWorld -setTemplate resource:///templates/hello-world.template
</code></pre>
<p>Obviously, it is daunting to have to know the path to templates and exactly which configurations to set. The alternative is to use a quick app. Running:</p>
<pre><code>gobblin cli run listQuickApps
</code></pre>
<p>will provide with a list of available quick apps. To run a quick app:</p>
<pre><code>gobblin cli run &lt;quick-app-name&gt;
</code></pre>
<p>Quick apps may require additional arguments. For the usage of a particular app, run <code>bin/gobblin cli run &lt;quick-app-name&gt; -h</code>.</p>
<h2 id="the-distcp-quick-app">The Distcp Quick App</h2>
<p>For example, consider the quick app distcp:</p>
<pre><code class="bash">$ gobblin cli run distcp -h
usage: gobblin cli run distcp [OPTIONS] &lt;source&gt; &lt;target&gt;
 -delete                         Delete files in target that don't exist
                                 on source.
 -deleteEmptyParentDirectories   If deleting files on target, also delete
                                 newly empty parent directories.
 -distributeJar &lt;arg&gt;
 -h,--help
 -l                              Uses log to print out erros in the base CLI code.
 -mrMode
 -setConfiguration &lt;arg&gt;
 -setJobTimeout &lt;arg&gt;
 -setLaunchTimeout &lt;arg&gt;
 -setShutdownTimeout &lt;arg&gt;
 -simulate
 -update                         Specifies files should be updated if they're different in the source.
 -useStateStore &lt;arg&gt;
</code></pre>

<p>This provides usage for the app distcp, as well as listing all available options. Distcp could then be run:</p>
<pre><code class="bash">gobblin cli run distcp file:///source/path file:///target/path
</code></pre>

<h2 id="the-oneshot-quick-app">The OneShot Quick App</h2>
<p>The Gobblin cli also ships with a generic job runner, the <strong>oneShot</strong> quick app. You can use it to run a single job using a standard config file. This is very useful during development, testing and also makes it easy to integrate with schedulers that just need to fire off a command line job. The <strong>oneShot</strong> app allows you to run a job in standalone mode or in map-reduce mode.</p>
<pre><code class="bash">$ gobblin cli run oneShot -baseConf &lt;base-config-file&gt; -appConf &lt;path-to-job-conf-file&gt;
# The Base Config file is an optional parameter and contains defaults for your mode of
# execution (e.g. standalone modes would typically use
# gobblin-dist/conf/standalone/application.conf and
# mapreduce mode would typically use gobblin-dist/conf/mapreduce/application.conf)
#
# The Job Config file is your regular .pull or .conf file and is a required parameter.
# You should use a fully qualified URI to your pull file. Otherwise Gobblin will pick the
# default FS configured in the environment, which may not be what you want.
# e.g file:///gobblin-conf/my-job/wikipedia.pull or hdfs:///gobblin-conf/my-job/kafka-hdfs.pull
</code></pre>

<p>The <strong>oneShot</strong> app comes with certain hardcoded defaults (that it inherits from EmbeddedGobblin <a href="https://github.com/apache/incubator-gobblin/blob/master/gobblin-runtime/src/main/resources/embedded/embedded.conf">here</a>), that you may not be expecting. Make sure you understand what they do and override them in your baseConf or appConf files if needed.</p>
<p>Notable differences at the time of this writing include:</p>
<ul>
<li>state.store.enabled = false (set this to true in your appConfig or baseConfig if you want state storage for repeated oneshot runs)</li>
<li>data.publisher.appendExtractToFinalDir = false (set this to true in your appConfig or baseConfig if you want to see the extract name appended to the job output directory)</li>
</ul>
<p>The <strong>oneShot</strong> app allows for specifying the log4j file of your job execution which can be very helpful while debugging pesky failures.
You can launch the job in MR-Mode by using the -mrMode switch.</p>
<ul>
<li>oneShot execution of standalone with a log4j file.</li>
</ul>
<pre><code class="bash">$ gobblin cli run oneShot -baseConf /app/gobblin-dist/conf/standalone/application.conf -appConf file:///app/kafkaConfDir/kafka-simple-hdfs.pull --log4j-conf /app/gobblin-dist/conf/standalone/log4j.properties
</code></pre>

<ul>
<li>oneShot execution of map-reduce job with a log4j file</li>
</ul>
<pre><code class="bash">$ gobblin cli run oneShot -mrMode -baseConf /app/gobblin-dist/conf/standalone/application.conf -appConf file:///app/kafkaConfDir/kafka-simple-hdfs.pull --log4j-conf /app/gobblin-dist/conf/standalone/log4j.properties
</code></pre>

<h2 id="developing-quick-apps-for-the-cli">Developing quick apps for the CLI</h2>
<p>It is very easy to convert a subclass of <code>EmbeddedGobblin</code> into a quick application for Gobblin CLI. All that is needed is to implement a <code>EmbeddedGobblinCliFactory</code> which knows how instantiate the <code>EmbeddedGobblin</code> from a <code>CommandLine</code> object and annotate it with the <code>Alias</code> annotation. There are two utility classes that make this very easy:</p>
<ul>
<li><code>PublicMethodsGobblinCliFactory</code>: this class will automatically infer CLI options from the public methods of a subclass of <code>EmbeddedGobblin</code>. All the developer has to do is implement the method <code>constructEmbeddedGobblin(CommandLine)</code> that calls the appropriate constructor of the desired <code>EmbeddedGobblin</code> subclass with parameters extracted from the CLI. Additionally, it is a good idea to override <code>getUsageString()</code> with the appropriate usage string. For an example, see <code>gobblin.runtime.embedded.EmbeddedGobblinDistcp.CliFactory</code>.</li>
<li><code>ConstructorAndPublicMethodsGobblinCliFactory</code>: this class does everything <code>PublicMethodsGobblinCliFactory</code> does, but it additionally automatically infers how to construct the <code>EmbeddedGobblin</code> object from a constructor annotated with <code>EmbeddedGobblinCliSupport</code>. For an example, see <code>gobblin.runtime.embedded.EmbeddedGobblin.CliFactory</code>.</li>
</ul>
<h2 id="implementing-new-gobblin-commands">Implementing new Gobblin commands</h2>
<p>To implement a new Gobblin command to list and execute using <code>./bin/gobblin</code>, implement the class <code>gobblin.runtime.cli.CliApplication</code>, and annotate it with the <code>Alias</code> annotation. The Gobblin CLI will automatically find the command, and users can invoke it by the Alias value.</p>
<h2 id="gobblin-service-execution-modes-as-daemon">Gobblin Service Execution Modes ( as Daemon )</h2>
<p>For more info on Gobblin service execution modes, run <code>bin/gobblin service --help</code>: </p>
<pre><code class="bash">Usage:
gobblin.sh  service &lt;execution-mode&gt; &lt;start|stop|status&gt;

Argument Options:
    &lt;execution-mode&gt;                   standalone, cluster-master, cluster-worker, aws,
                                                 yarn, mapreduce, service-manager.

    --conf-dir &lt;gobblin-conf-dir-path&gt; Gobblon config path. default is '$GOBBLIN_HOME/conf/&lt;exe-mode-name&gt;'.
    --log4j-conf &lt;path-of-log4j-file&gt;  default is '&lt;gobblin-conf-dir-path&gt;/&lt;execution-mode&gt;/log4j.properties'.    --jvmopts &lt;jvm or gc options&gt;      String containing JVM flags to include, in addition to &quot;-Xmx1g -Xms512m&quot;.
    --jars &lt;csv list of extra jars&gt;    Column-separated list of extra jars to put on the CLASSPATH.
    --enable-gc-logs                   enables gc logs &amp; dumps.
    --show-classpath                   prints gobblin runtime classpath.
    --cluster-name                     Name of the cluster to be used by helix &amp; other services. ( default: gobblin_cluster).
    --jt &lt;resource manager URL&gt;        Only for mapreduce mode: Job submission URL, if not set, taken from ${HADOOP_HOME}/conf.
    --fs &lt;file system URL&gt;             Only for mapreduce mode: Target file system, if not set, taken from ${HADOOP_HOME}/conf.
    --help                             Display this help.
    --verbose                          Display full command used to start the process.
                                       Gobblin Version: 0.15.0
</code></pre>

<ol>
<li>
<p>Standalone:
    This mode starts all Gobblin services in single JVM on a single node. This mode is useful for development and light weight usage: 
    <code>gobblin service standalone start</code>
    For more details and architecture on each execution mode, refer <a href="/gobblin-docs/user-guide/Gobblin-Deployment.md">Standalone-Deployment</a></p>
</li>
<li>
<p>Mapreduce:</p>
<p>This mode is dependent on Hadoop (both MapReduce and HDFS) running locally or remote cluster. Before launching any Gobblin jobs on Hadoop MapReduce, check the Gobblin system configuration file located at <code>conf/mapreduce/application.properties</code> for property <code>fs.uri</code>, which defines the file system URI used. The default value is <code>hdfs://localhost:8020</code>, which points to the local HDFS on the default port 8020. Change it to the right value depending on your Hadoop/HDFS setup. For example, if you have HDFS setup somwhere on port 9000, then set the property as follows:
<code>fs.uri=hdfs://&lt;namenode host name&gt;:9000/</code>
<em> <code>--jt</code>: resource manager URL
</em> <code>--fs</code>: file system type value for <code>fs.uri</code></p>
<p>This mode will have the minimum set of Gobblin jars, selected using <code>libs/gobblin-&lt;module_name&gt;-$GOBBLIN_VERSION.jar</code>, which is passed as <code>-libjar</code> to hadoop command while running the job. These same set of jars also gets added to the Hadoop <code>DistributedCache</code> for use in the mappers. If a job has additional jars needed for task executions (in the mappers), those jars can also be included by using the <code>--jars</code> option or the following job configuration property in the job configuration file:
<code>job.jars=&lt;comma-separated list of jars the job depends on&gt;</code>
if <code>HADOOP_HOME</code> is set in the environment, Gobblin will add result of <code>hadoop classpath</code> prior to default <code>GOBBLIN_CLASSPATH</code> to give them precedence while running <code>bin/gobblin</code>. </p>
<p>All job data and persisted job/task states will be written to the specified file system. Before launching any jobs, make sure the environment variable <code>HADOOP_HOME</code> is set so that it can access hadoop binaries under <code>{HADOOP_HOME}/bin</code> and also working directory should be set with configuration <code>{gobblin.cluster.work.dir}</code>. Note that the Gobblin working directory will be created on the file system specified above.</p>
<p>An important side effect of this is that (depending on the application) non-fully-qualified paths (like <code>/my/path</code>) will default to local file system if <code>HADOOP_HOME</code> is not set, while they will default to HDFS if the variable is set. When referring to local paths, it is always a good idea to use the fully qualified path (e.g. <code>file:///my/path</code>).</p>
</li>
<li>
<p>Cluster Mode (master &amp; worker)
    This is a cluster mode consist of master and worker process. 
    <code>gobblin service cluster-master start
        gobblin service cluster-worker start</code></p>
</li>
<li>
<p>AWS
   This mode starts Gobblin on AWS cloud cluster.
    <code>gobblin service aws start</code></p>
</li>
<li>
<p>YARN
    This mode starts Gobblin on YARN cluster.
    <code>gobblin service yarn start</code></p>
</li>
</ol>
<h2 id="gobblin-system-configurations">Gobblin System Configurations</h2>
<p>Following values can be override by setting it in <code>gobblin-env.sh</code></p>
<p><code>GOBBLIN_LOGS</code> : by default the logs are written to <code>$GOBBLIN_HOME/logs</code>, it can be override by setting <code>GOBBLIN_LOGS</code>\
<code>GOBBLIN_VERSION</code> : by default gobblin version is set by the build process, it can be override by setting <code>GOBBLIN_VERSION</code>\</p>
<p>All Gobblin system configurations details can be found here: <a href="user-guide/Configuration-Properties-Glossary">Configuration Properties Glossary</a>.</p>
              
            </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="../Gobblin-Compliance/" class="btn btn-neutral float-right" title="Gobblin Compliance">Next <span class="icon icon-circle-arrow-right"></span></a>
      
      
        <a href="../Gobblin-as-a-Library/" class="btn btn-neutral" title="Gobblin as a Library"><span class="icon icon-circle-arrow-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <!-- Copyright etc -->
    
  </div>

  Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
      
        </div>
      </div>

    </section>

  </div>

  <div class="rst-versions" role="note" style="cursor: pointer">
    <span class="rst-current-version" data-toggle="rst-current-version">
      
      
        <span><a href="../Gobblin-as-a-Library/" style="color: #fcfcfc;">&laquo; Previous</a></span>
      
      
        <span style="margin-left: 15px"><a href="../Gobblin-Compliance/" style="color: #fcfcfc">Next &raquo;</a></span>
      
    </span>
</div>
    <script>var base_url = '../..';</script>
    <script src="../../js/theme.js" defer></script>
      <script src="../../js/extra.js" defer></script>
      <script src="../../search/main.js" defer></script>

</body>
</html>
