You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by mi...@apache.org on 2017/09/21 20:34:02 UTC
svn commit: r1809223 [19/30] - in /zeppelin/site: ./ contribution/
contribution/zeppelinweb/ docs/0.7.3/ docs/0.7.3/assets/
docs/0.7.3/assets/themes/ docs/0.7.3/assets/themes/zeppelin/
docs/0.7.3/assets/themes/zeppelin/bootstrap/ docs/0.7.3/assets/them...
Added: zeppelin/site/docs/0.7.3/interpreter/r.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.3/interpreter/r.html?rev=1809223&view=auto
==============================================================================
--- zeppelin/site/docs/0.7.3/interpreter/r.html (added)
+++ zeppelin/site/docs/0.7.3/interpreter/r.html Thu Sep 21 20:33:57 2017
@@ -0,0 +1,351 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Apache Zeppelin 0.7.3 Documentation: R Interpreter for Apache Zeppelin</title>
+ <meta name="description" content="R is a free software environment for statistical computing and graphics.">
+ <meta name="author" content="The Apache Software Foundation">
+
+ <!-- Enable responsive viewport -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
+
+ <!-- Le styles -->
+ <link href="/docs/0.7.3/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" />
+ <!-- Le fav and touch icons -->
+ <!-- Update these with your own images
+ <link rel="shortcut icon" href="images/favicon.ico">
+ <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+ -->
+
+ <!-- Js -->
+ <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/docs.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/anchor.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/toc.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/lunr.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/search.js"></script>
+
+ <!-- atom & rss feed -->
+ <link href="/docs/0.7.3/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
+ <link href="/docs/0.7.3/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed">
+ </head>
+
+ <body>
+
+ <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <div class="navbar-brand">
+ <a class="navbar-brand-main" href="http://zeppelin.apache.org">
+ <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin">
+ <span style="vertical-align:middle">Zeppelin</span>
+ </a>
+ <a class="navbar-brand-version" href="/docs/0.7.3">
+ <span><small>0.7.3</small></span>
+ </a>
+ </div>
+ </div>
+ <nav class="navbar-collapse collapse" role="navigation">
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="/docs/0.7.3/index.html">What is Apache Zeppelin ?</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Getting Started</b><span></li>
+ <li><a href="/docs/0.7.3/install/install.html">Install</a></li>
+ <li><a href="/docs/0.7.3/install/configuration.html">Configuration</a></li>
+ <li><a href="/docs/0.7.3/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li>
+ <li><a href="/docs/0.7.3/quickstart/tutorial.html">Tutorial</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Basic Feature Guide</b><span></li>
+ <li><a href="/docs/0.7.3/manual/dynamicform.html">Dynamic Form</a></li>
+ <li><a href="/docs/0.7.3/manual/publish.html">Publish your Paragraph</a></li>
+ <li><a href="/docs/0.7.3/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>More</b><span></li>
+ <li><a href="/docs/0.7.3/install/upgrade.html">Upgrade Zeppelin Version</a></li>
+ <li><a href="/docs/0.7.3/install/build.html">Build from source</a></li>
+ <li><a href="/docs/0.7.3/quickstart/install_with_flink_and_spark_cluster.html">Install Zeppelin with Flink and Spark Clusters Tutorial</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu">
+ <li><a href="/docs/0.7.3/manual/interpreters.html">Overview</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Usage</b><span></li>
+ <li><a href="/docs/0.7.3/manual/interpreterinstallation.html">Interpreter Installation</a></li>
+ <!--<li><a href="/docs/0.7.3/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>-->
+ <li><a href="/docs/0.7.3/manual/dependencymanagement.html">Interpreter Dependency Management</a></li>
+ <li><a href="/docs/0.7.3/manual/userimpersonation.html">Interpreter User Impersonation</a></li>
+ <li><a href="/docs/0.7.3/manual/interpreterexechooks.html">Interpreter Execution Hooks (Experimental)</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Available Interpreters</b><span></li>
+ <li><a href="/docs/0.7.3/interpreter/alluxio.html">Alluxio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/beam.html">Beam</a></li>
+ <li><a href="/docs/0.7.3/interpreter/bigquery.html">BigQuery</a></li>
+ <li><a href="/docs/0.7.3/interpreter/cassandra.html">Cassandra</a></li>
+ <li><a href="/docs/0.7.3/interpreter/elasticsearch.html">Elasticsearch</a></li>
+ <li><a href="/docs/0.7.3/interpreter/flink.html">Flink</a></li>
+ <li><a href="/docs/0.7.3/interpreter/geode.html">Geode</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hbase.html">HBase</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hdfs.html">HDFS</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hive.html">Hive</a></li>
+ <li><a href="/docs/0.7.3/interpreter/ignite.html">Ignite</a></li>
+ <li><a href="/docs/0.7.3/interpreter/jdbc.html">JDBC</a></li>
+ <li><a href="/docs/0.7.3/interpreter/kylin.html">Kylin</a></li>
+ <li><a href="/docs/0.7.3/interpreter/lens.html">Lens</a></li>
+ <li><a href="/docs/0.7.3/interpreter/livy.html">Livy</a></li>
+ <li><a href="/docs/0.7.3/interpreter/markdown.html">Markdown</a></li>
+ <li><a href="/docs/0.7.3/interpreter/pig.html">Pig</a></li>
+ <li><a href="/docs/0.7.3/interpreter/python.html">Python</a></li>
+ <li><a href="/docs/0.7.3/interpreter/postgresql.html">Postgresql, HAWQ</a></li>
+ <li><a href="/docs/0.7.3/interpreter/r.html">R</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scalding.html">Scalding</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scio.html">Scio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/shell.html">Shell</a></li>
+ <li><a href="/docs/0.7.3/interpreter/spark.html">Spark</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li class="title"><span><b>Basic Display System</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#text">Text</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#html">Html</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#table">Table</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Angular API</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/back-end-angular.html">Angular (backend API)</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/front-end-angular.html">Angular (frontend API)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;">
+ <li class="title"><span><b>Notebook Storage</b><span></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>REST API</b><span></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-interpreter.html">Interpreter API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebook.html">Notebook API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebookRepo.html">Notebook Repository API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-configuration.html">Configuration API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-credential.html">Credential API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-helium.html">Helium API</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Security</b><span></li>
+ <li><a href="/docs/0.7.3/security/shiroauthentication.html">Shiro Authentication</a></li>
+ <li><a href="/docs/0.7.3/security/notebook_authorization.html">Notebook Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/datasource_authorization.html">Data Source Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/http_security_headers.html">HTTP Security Headers</a></li>
+ <li><a href="/docs/0.7.3/security/helium_authorization.html">Helium Authorization</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Advanced</b><span></li>
+ <li><a href="/docs/0.7.3/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-standalone-mode">Zeppelin on Spark Cluster Mode (Standalone)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-yarn-mode">Zeppelin on Spark Cluster Mode (YARN)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-mesos-mode">Zeppelin on Spark Cluster Mode (Mesos)</a></li>
+ <li><a href="/docs/0.7.3/install/cdh.html">Zeppelin on CDH</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Contibute</b><span></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinvisualization.html">Writing Zeppelin Visualization (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinapplication.html">Writing Zeppelin Application (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontribute.html">How to contribute (code)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontributewebsite.html">How to contribute (website)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="/docs/0.7.3/search.html" class="nav-search-link">
+ <span class="fa fa-search nav-search-icon"></span>
+ </a>
+ </li>
+ </ul>
+ </nav><!--/.navbar-collapse -->
+ </div>
+ </div>
+
+
+
+ <div class="content">
+
+<!--<div class="hero-unit R Interpreter for Apache Zeppelin">
+ <h1></h1>
+</div>
+-->
+
+<div class="row">
+ <div class="col-md-12">
+ <!--
+Licensed 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.
+-->
+
+<h1>R Interpreter for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<h2>Overview</h2>
+
+<p><a href="https://www.r-project.org">R</a> is a free software environment for statistical computing and graphics.</p>
+
+<p>To run R code and visualize plots in Apache Zeppelin, you will need R on your master node (or your dev laptop).</p>
+
+<ul>
+<li>For Centos: <code>yum install R R-devel libcurl-devel openssl-devel</code></li>
+<li>For Ubuntu: <code>apt-get install r-base</code></li>
+</ul>
+
+<p>Validate your installation with a simple R command:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">R -e "print(1+1)"
+</code></pre></div>
+<p>To enjoy plots, install additional libraries with:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">+ devtools with `R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')"`
++ knitr with `R -e "install.packages('knitr', repos = 'http://cran.us.r-project.org')"`
++ ggplot2 with `R -e "install.packages('ggplot2', repos = 'http://cran.us.r-project.org')"`
++ Other vizualisation librairies: `R -e "install.packages(c('devtools','mplot', 'googleVis'), repos = 'http://cran.us.r-project.org'); require(devtools); install_github('ramnathv/rCharts')"`
+</code></pre></div>
+<p>We recommend you to also install the following optional R libraries for happy data analytics:</p>
+
+<ul>
+<li>glmnet</li>
+<li>pROC</li>
+<li>data.table</li>
+<li>caret</li>
+<li>sqldf</li>
+<li>wordcloud</li>
+</ul>
+
+<h2>Configuration</h2>
+
+<p>To run Zeppelin with the R Interpreter, the <code>SPARK_HOME</code> environment variable must be set. The best way to do this is by editing <code>conf/zeppelin-env.sh</code>.
+If it is not set, the R Interpreter will not be able to interface with Spark.</p>
+
+<p>You should also copy <code>conf/zeppelin-site.xml.template</code> to <code>conf/zeppelin-site.xml</code>. That will ensure that Zeppelin sees the R Interpreter the first time it starts up.</p>
+
+<h2>Using the R Interpreter</h2>
+
+<p>By default, the R Interpreter appears as two Zeppelin Interpreters, <code>%r</code> and <code>%knitr</code>.</p>
+
+<p><code>%r</code> will behave like an ordinary REPL. You can execute commands as in the CLI. </p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/repl2plus2.png" width="700px"/></p>
+
+<p>R base plotting is fully supported</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/replhist.png" width="550px"/></p>
+
+<p>If you return a data.frame, Zeppelin will attempt to display it using Zeppelin's built-in visualizations.</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/replhead.png" width="550px"/></p>
+
+<p><code>%knitr</code> interfaces directly against <code>knitr</code>, with chunk options on the first line:</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/knitgeo.png" width="550px"/></p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/knitstock.png" width="550px"/></p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/knitmotion.png" width="550px"/></p>
+
+<p>The two interpreters share the same environment. If you define a variable from <code>%r</code>, it will be within-scope if you then make a call using <code>knitr</code>.</p>
+
+<h2>Using SparkR & Moving Between Languages</h2>
+
+<p>If <code>SPARK_HOME</code> is set, the <code>SparkR</code> package will be loaded automatically:</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/sparkrfaithful.png" width="550px"/></p>
+
+<p>The Spark Context and SQL Context are created and injected into the local environment automatically as <code>sc</code> and <code>sql</code>.</p>
+
+<p>The same context are shared with the <code>%spark</code>, <code>%sql</code> and <code>%pyspark</code> interpreters:</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/backtoscala.png" width="700px"/></p>
+
+<p>You can also make an ordinary R variable accessible in scala and Python:</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/varr1.png" width="550px"/></p>
+
+<p>And vice versa:</p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/varscala.png" width="550px"/></p>
+
+<p><img class="img-responsive" src="../assets/themes/zeppelin/img/docs-img/varr2.png" width="550px"/></p>
+
+<h2>Caveats & Troubleshooting</h2>
+
+<ul>
+<li><p>Almost all issues with the R interpreter turned out to be caused by an incorrectly set <code>SPARK_HOME</code>. The R interpreter must load a version of the <code>SparkR</code> package that matches the running version of Spark, and it does this by searching <code>SPARK_HOME</code>. If Zeppelin isn't configured to interface with Spark in <code>SPARK_HOME</code>, the R interpreter will not be able to connect to Spark.</p></li>
+<li><p>The <code>knitr</code> environment is persistent. If you run a chunk from Zeppelin that changes a variable, then run the same chunk again, the variable has already been changed. Use immutable variables.</p></li>
+<li><p>(Note that <code>%spark.r</code> and <code>%r</code> are two different ways of calling the same interpreter, as are <code>%spark.knitr</code> and <code>%knitr</code>. By default, Zeppelin puts the R interpreters in the <code>%spark.</code> Interpreter Group.</p></li>
+<li><p>Using the <code>%r</code> interpreter, if you return a data.frame, HTML, or an image, it will dominate the result. So if you execute three commands, and one is <code>hist()</code>, all you will see is the histogram, not the results of the other commands. This is a Zeppelin limitation.</p></li>
+<li><p>If you return a data.frame (for instance, from calling <code>head()</code>) from the <code>%spark.r</code> interpreter, it will be parsed by Zeppelin's built-in data visualization system. </p></li>
+<li><p>Why <code>knitr</code> Instead of <code>rmarkdown</code>? Why no <code>htmlwidgets</code>? In order to support <code>htmlwidgets</code>, which has indirect dependencies, <code>rmarkdown</code> uses <code>pandoc</code>, which requires writing to and reading from disc. This makes it many times slower than <code>knitr</code>, which can operate entirely in RAM.</p></li>
+<li><p>Why no <code>ggvis</code> or <code>shiny</code>? Supporting <code>shiny</code> would require integrating a reverse-proxy into Zeppelin, which is a task.</p></li>
+<li><p>Max OS X & case-insensitive filesystem. If you try to install on a case-insensitive filesystem, which is the Mac OS X default, maven can unintentionally delete the install directory because <code>r</code> and <code>R</code> become the same subdirectory.</p></li>
+<li><p>Error <code>unable to start device X11</code> with the repl interpreter. Check your shell login scripts to see if they are adjusting the <code>DISPLAY</code> environment variable. This is common on some operating systems as a workaround for ssh issues, but can interfere with R plotting.</p></li>
+<li><p>akka Library Version or <code>TTransport</code> errors. This can happen if you try to run Zeppelin with a SPARK_HOME that has a version of Spark other than the one specified with <code>-Pspark-1.x</code> when Zeppelin was compiled.</p></li>
+</ul>
+
+ </div>
+</div>
+
+
+ <hr>
+ <footer>
+ <!-- <p>© 2017 The Apache Software Foundation</p>-->
+ </footer>
+ </div>
+
+
+
+
+ <script type="text/javascript">
+ (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','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-45176241-5', 'zeppelin.apache.org');
+ ga('require', 'linkid', 'linkid.js');
+ ga('send', 'pageview');
+
+</script>
+
+
+
+ </body>
+</html>
+
Added: zeppelin/site/docs/0.7.3/interpreter/scalding.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.3/interpreter/scalding.html?rev=1809223&view=auto
==============================================================================
--- zeppelin/site/docs/0.7.3/interpreter/scalding.html (added)
+++ zeppelin/site/docs/0.7.3/interpreter/scalding.html Thu Sep 21 20:33:57 2017
@@ -0,0 +1,378 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Apache Zeppelin 0.7.3 Documentation: Scalding Interpreter for Apache Zeppelin</title>
+ <meta name="description" content="Scalding is an open source Scala library for writing MapReduce jobs.">
+ <meta name="author" content="The Apache Software Foundation">
+
+ <!-- Enable responsive viewport -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
+
+ <!-- Le styles -->
+ <link href="/docs/0.7.3/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" />
+ <!-- Le fav and touch icons -->
+ <!-- Update these with your own images
+ <link rel="shortcut icon" href="images/favicon.ico">
+ <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+ -->
+
+ <!-- Js -->
+ <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/docs.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/anchor.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/toc.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/lunr.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/search.js"></script>
+
+ <!-- atom & rss feed -->
+ <link href="/docs/0.7.3/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
+ <link href="/docs/0.7.3/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed">
+ </head>
+
+ <body>
+
+ <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <div class="navbar-brand">
+ <a class="navbar-brand-main" href="http://zeppelin.apache.org">
+ <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin">
+ <span style="vertical-align:middle">Zeppelin</span>
+ </a>
+ <a class="navbar-brand-version" href="/docs/0.7.3">
+ <span><small>0.7.3</small></span>
+ </a>
+ </div>
+ </div>
+ <nav class="navbar-collapse collapse" role="navigation">
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="/docs/0.7.3/index.html">What is Apache Zeppelin ?</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Getting Started</b><span></li>
+ <li><a href="/docs/0.7.3/install/install.html">Install</a></li>
+ <li><a href="/docs/0.7.3/install/configuration.html">Configuration</a></li>
+ <li><a href="/docs/0.7.3/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li>
+ <li><a href="/docs/0.7.3/quickstart/tutorial.html">Tutorial</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Basic Feature Guide</b><span></li>
+ <li><a href="/docs/0.7.3/manual/dynamicform.html">Dynamic Form</a></li>
+ <li><a href="/docs/0.7.3/manual/publish.html">Publish your Paragraph</a></li>
+ <li><a href="/docs/0.7.3/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>More</b><span></li>
+ <li><a href="/docs/0.7.3/install/upgrade.html">Upgrade Zeppelin Version</a></li>
+ <li><a href="/docs/0.7.3/install/build.html">Build from source</a></li>
+ <li><a href="/docs/0.7.3/quickstart/install_with_flink_and_spark_cluster.html">Install Zeppelin with Flink and Spark Clusters Tutorial</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu">
+ <li><a href="/docs/0.7.3/manual/interpreters.html">Overview</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Usage</b><span></li>
+ <li><a href="/docs/0.7.3/manual/interpreterinstallation.html">Interpreter Installation</a></li>
+ <!--<li><a href="/docs/0.7.3/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>-->
+ <li><a href="/docs/0.7.3/manual/dependencymanagement.html">Interpreter Dependency Management</a></li>
+ <li><a href="/docs/0.7.3/manual/userimpersonation.html">Interpreter User Impersonation</a></li>
+ <li><a href="/docs/0.7.3/manual/interpreterexechooks.html">Interpreter Execution Hooks (Experimental)</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Available Interpreters</b><span></li>
+ <li><a href="/docs/0.7.3/interpreter/alluxio.html">Alluxio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/beam.html">Beam</a></li>
+ <li><a href="/docs/0.7.3/interpreter/bigquery.html">BigQuery</a></li>
+ <li><a href="/docs/0.7.3/interpreter/cassandra.html">Cassandra</a></li>
+ <li><a href="/docs/0.7.3/interpreter/elasticsearch.html">Elasticsearch</a></li>
+ <li><a href="/docs/0.7.3/interpreter/flink.html">Flink</a></li>
+ <li><a href="/docs/0.7.3/interpreter/geode.html">Geode</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hbase.html">HBase</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hdfs.html">HDFS</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hive.html">Hive</a></li>
+ <li><a href="/docs/0.7.3/interpreter/ignite.html">Ignite</a></li>
+ <li><a href="/docs/0.7.3/interpreter/jdbc.html">JDBC</a></li>
+ <li><a href="/docs/0.7.3/interpreter/kylin.html">Kylin</a></li>
+ <li><a href="/docs/0.7.3/interpreter/lens.html">Lens</a></li>
+ <li><a href="/docs/0.7.3/interpreter/livy.html">Livy</a></li>
+ <li><a href="/docs/0.7.3/interpreter/markdown.html">Markdown</a></li>
+ <li><a href="/docs/0.7.3/interpreter/pig.html">Pig</a></li>
+ <li><a href="/docs/0.7.3/interpreter/python.html">Python</a></li>
+ <li><a href="/docs/0.7.3/interpreter/postgresql.html">Postgresql, HAWQ</a></li>
+ <li><a href="/docs/0.7.3/interpreter/r.html">R</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scalding.html">Scalding</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scio.html">Scio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/shell.html">Shell</a></li>
+ <li><a href="/docs/0.7.3/interpreter/spark.html">Spark</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li class="title"><span><b>Basic Display System</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#text">Text</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#html">Html</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#table">Table</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Angular API</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/back-end-angular.html">Angular (backend API)</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/front-end-angular.html">Angular (frontend API)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;">
+ <li class="title"><span><b>Notebook Storage</b><span></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>REST API</b><span></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-interpreter.html">Interpreter API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebook.html">Notebook API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebookRepo.html">Notebook Repository API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-configuration.html">Configuration API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-credential.html">Credential API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-helium.html">Helium API</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Security</b><span></li>
+ <li><a href="/docs/0.7.3/security/shiroauthentication.html">Shiro Authentication</a></li>
+ <li><a href="/docs/0.7.3/security/notebook_authorization.html">Notebook Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/datasource_authorization.html">Data Source Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/http_security_headers.html">HTTP Security Headers</a></li>
+ <li><a href="/docs/0.7.3/security/helium_authorization.html">Helium Authorization</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Advanced</b><span></li>
+ <li><a href="/docs/0.7.3/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-standalone-mode">Zeppelin on Spark Cluster Mode (Standalone)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-yarn-mode">Zeppelin on Spark Cluster Mode (YARN)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-mesos-mode">Zeppelin on Spark Cluster Mode (Mesos)</a></li>
+ <li><a href="/docs/0.7.3/install/cdh.html">Zeppelin on CDH</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Contibute</b><span></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinvisualization.html">Writing Zeppelin Visualization (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinapplication.html">Writing Zeppelin Application (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontribute.html">How to contribute (code)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontributewebsite.html">How to contribute (website)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="/docs/0.7.3/search.html" class="nav-search-link">
+ <span class="fa fa-search nav-search-icon"></span>
+ </a>
+ </li>
+ </ul>
+ </nav><!--/.navbar-collapse -->
+ </div>
+ </div>
+
+
+
+ <div class="content">
+
+<!--<div class="hero-unit Scalding Interpreter for Apache Zeppelin">
+ <h1></h1>
+</div>
+-->
+
+<div class="row">
+ <div class="col-md-12">
+ <!--
+Licensed 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.
+-->
+
+<h1>Scalding Interpreter for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<p><a href="https://github.com/twitter/scalding">Scalding</a> is an open source Scala library for writing MapReduce jobs.</p>
+
+<h2>Building the Scalding Interpreter</h2>
+
+<p>You have to first build the Scalding interpreter by enable the <strong>scalding</strong> profile as follows:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">mvn clean package -Pscalding -DskipTests
+</code></pre></div>
+<h2>Enabling the Scalding Interpreter</h2>
+
+<p>In a notebook, to enable the <strong>Scalding</strong> interpreter, click on the <strong>Gear</strong> icon,select <strong>Scalding</strong>, and hit <strong>Save</strong>.</p>
+
+<p><center></p>
+
+<p><img src="../assets/themes/zeppelin/img/docs-img/scalding-InterpreterBinding.png" alt="Interpreter Binding"></p>
+
+<p><img src="../assets/themes/zeppelin/img/docs-img/scalding-InterpreterSelection.png" alt="Interpreter Selection"></p>
+
+<p></center></p>
+
+<h2>Configuring the Interpreter</h2>
+
+<p>Scalding interpreter runs in two modes:</p>
+
+<ul>
+<li>local</li>
+<li>hdfs</li>
+</ul>
+
+<p>In the local mode, you can access files on the local server and scalding transformation are done locally.</p>
+
+<p>In hdfs mode you can access files in HDFS and scalding transformation are run as hadoop map-reduce jobs.</p>
+
+<p>Zeppelin comes with a pre-configured Scalding interpreter in local mode.</p>
+
+<p>To run the scalding interpreter in the hdfs mode you have to do the following:</p>
+
+<p><strong>Set the classpath with ZEPPELIN_CLASSPATH_OVERRIDES</strong></p>
+
+<p>In conf/zeppelin<em>env.sh, you have to set
+ZEPPELIN</em>CLASSPATH_OVERRIDES to the contents of 'hadoop classpath'
+and directories with custom jar files you need for your scalding commands.</p>
+
+<p><strong>Set arguments to the scalding repl</strong></p>
+
+<p>The default arguments are: "--local --repl"</p>
+
+<p>For hdfs mode you need to add: "--hdfs --repl"</p>
+
+<p>If you want to add custom jars, you need to add:
+"-libjars directory/<em>:directory/</em>"</p>
+
+<p>For reducer estimation, you need to add something like:
+"-Dscalding.reducer.estimator.classes=com.twitter.scalding.reducer_estimation.InputSizeReducerEstimator"</p>
+
+<p><strong>Set max.open.instances</strong></p>
+
+<p>If you want to control the maximum number of open interpreters, you have to select "scoped" interpreter for note
+option and set max.open.instances argument.</p>
+
+<h2>Testing the Interpreter</h2>
+
+<h3>Local mode</h3>
+
+<p>In example, by using the <a href="https://gist.github.com/johnynek/a47699caa62f4f38a3e2">Alice in Wonderland</a> tutorial,
+we will count words (of course!), and plot a graph of the top 10 words in the book.</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">%scalding
+
+import scala.io.Source
+
+// Get the Alice in Wonderland book from gutenberg.org:
+val alice = Source.fromURL("http://www.gutenberg.org/files/11/11.txt").getLines
+val aliceLineNum = alice.zipWithIndex.toList
+val alicePipe = TypedPipe.from(aliceLineNum)
+
+// Now get a list of words for the book:
+val aliceWords = alicePipe.flatMap { case (text, _) => text.split("\\s+").toList }
+
+// Now lets add a count for each word:
+val aliceWithCount = aliceWords.filterNot(_.equals("")).map { word => (word, 1L) }
+
+// let's sum them for each word:
+val wordCount = aliceWithCount.group.sum
+
+print ("Here are the top 10 words\n")
+val top10 = wordCount
+ .groupAll
+ .sortBy { case (word, count) => -count }
+ .take(10)
+top10.dump
+</code></pre></div><div class="highlight"><pre><code class="text language-text" data-lang="text">%scalding
+
+val table = "words\t count\n" + top10.toIterator.map{case (k, (word, count)) => s"$word\t$count"}.mkString("\n")
+print("%table " + table)
+</code></pre></div>
+<p>If you click on the icon for the pie chart, you should be able to see a chart like this:
+<img src="../assets/themes/zeppelin/img/docs-img/scalding-pie.png" alt="Scalding - Pie - Chart"></p>
+
+<h3>HDFS mode</h3>
+
+<p><strong>Test mode</strong></p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">%scalding
+mode
+</code></pre></div>
+<p>This command should print:</p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">res4: com.twitter.scalding.Mode = Hdfs(true,Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml)
+</code></pre></div>
+<p><strong>Test HDFS read</strong></p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">val testfile = TypedPipe.from(TextLine("/user/x/testfile"))
+testfile.dump
+</code></pre></div>
+<p>This command should print the contents of the hdfs file /user/x/testfile.</p>
+
+<p><strong>Test map-reduce job</strong></p>
+<div class="highlight"><pre><code class="text language-text" data-lang="text">val testfile = TypedPipe.from(TextLine("/user/x/testfile"))
+val a = testfile.groupAll.size.values
+a.toList
+</code></pre></div>
+<p>This command should create a map reduce job.</p>
+
+<h2>Future Work</h2>
+
+<ul>
+<li>Better user feedback (hadoop url, progress updates)</li>
+<li>Ability to cancel jobs</li>
+<li>Ability to dynamically load jars without restarting the interpreter</li>
+<li>Multiuser scalability (run scalding interpreters on different servers)</li>
+</ul>
+
+ </div>
+</div>
+
+
+ <hr>
+ <footer>
+ <!-- <p>© 2017 The Apache Software Foundation</p>-->
+ </footer>
+ </div>
+
+
+
+
+ <script type="text/javascript">
+ (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','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-45176241-5', 'zeppelin.apache.org');
+ ga('require', 'linkid', 'linkid.js');
+ ga('send', 'pageview');
+
+</script>
+
+
+
+ </body>
+</html>
+
Added: zeppelin/site/docs/0.7.3/interpreter/scio.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.3/interpreter/scio.html?rev=1809223&view=auto
==============================================================================
--- zeppelin/site/docs/0.7.3/interpreter/scio.html (added)
+++ zeppelin/site/docs/0.7.3/interpreter/scio.html Thu Sep 21 20:33:57 2017
@@ -0,0 +1,383 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Apache Zeppelin 0.7.3 Documentation: Scio Interpreter for Apache Zeppelin</title>
+ <meta name="description" content="Scio is a Scala DSL for Apache Beam/Google Dataflow model.">
+ <meta name="author" content="The Apache Software Foundation">
+
+ <!-- Enable responsive viewport -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
+
+ <!-- Le styles -->
+ <link href="/docs/0.7.3/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" />
+ <!-- Le fav and touch icons -->
+ <!-- Update these with your own images
+ <link rel="shortcut icon" href="images/favicon.ico">
+ <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+ -->
+
+ <!-- Js -->
+ <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/docs.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/anchor.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/toc.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/lunr.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/search.js"></script>
+
+ <!-- atom & rss feed -->
+ <link href="/docs/0.7.3/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
+ <link href="/docs/0.7.3/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed">
+ </head>
+
+ <body>
+
+ <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <div class="navbar-brand">
+ <a class="navbar-brand-main" href="http://zeppelin.apache.org">
+ <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin">
+ <span style="vertical-align:middle">Zeppelin</span>
+ </a>
+ <a class="navbar-brand-version" href="/docs/0.7.3">
+ <span><small>0.7.3</small></span>
+ </a>
+ </div>
+ </div>
+ <nav class="navbar-collapse collapse" role="navigation">
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="/docs/0.7.3/index.html">What is Apache Zeppelin ?</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Getting Started</b><span></li>
+ <li><a href="/docs/0.7.3/install/install.html">Install</a></li>
+ <li><a href="/docs/0.7.3/install/configuration.html">Configuration</a></li>
+ <li><a href="/docs/0.7.3/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li>
+ <li><a href="/docs/0.7.3/quickstart/tutorial.html">Tutorial</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Basic Feature Guide</b><span></li>
+ <li><a href="/docs/0.7.3/manual/dynamicform.html">Dynamic Form</a></li>
+ <li><a href="/docs/0.7.3/manual/publish.html">Publish your Paragraph</a></li>
+ <li><a href="/docs/0.7.3/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>More</b><span></li>
+ <li><a href="/docs/0.7.3/install/upgrade.html">Upgrade Zeppelin Version</a></li>
+ <li><a href="/docs/0.7.3/install/build.html">Build from source</a></li>
+ <li><a href="/docs/0.7.3/quickstart/install_with_flink_and_spark_cluster.html">Install Zeppelin with Flink and Spark Clusters Tutorial</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu">
+ <li><a href="/docs/0.7.3/manual/interpreters.html">Overview</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Usage</b><span></li>
+ <li><a href="/docs/0.7.3/manual/interpreterinstallation.html">Interpreter Installation</a></li>
+ <!--<li><a href="/docs/0.7.3/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>-->
+ <li><a href="/docs/0.7.3/manual/dependencymanagement.html">Interpreter Dependency Management</a></li>
+ <li><a href="/docs/0.7.3/manual/userimpersonation.html">Interpreter User Impersonation</a></li>
+ <li><a href="/docs/0.7.3/manual/interpreterexechooks.html">Interpreter Execution Hooks (Experimental)</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Available Interpreters</b><span></li>
+ <li><a href="/docs/0.7.3/interpreter/alluxio.html">Alluxio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/beam.html">Beam</a></li>
+ <li><a href="/docs/0.7.3/interpreter/bigquery.html">BigQuery</a></li>
+ <li><a href="/docs/0.7.3/interpreter/cassandra.html">Cassandra</a></li>
+ <li><a href="/docs/0.7.3/interpreter/elasticsearch.html">Elasticsearch</a></li>
+ <li><a href="/docs/0.7.3/interpreter/flink.html">Flink</a></li>
+ <li><a href="/docs/0.7.3/interpreter/geode.html">Geode</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hbase.html">HBase</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hdfs.html">HDFS</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hive.html">Hive</a></li>
+ <li><a href="/docs/0.7.3/interpreter/ignite.html">Ignite</a></li>
+ <li><a href="/docs/0.7.3/interpreter/jdbc.html">JDBC</a></li>
+ <li><a href="/docs/0.7.3/interpreter/kylin.html">Kylin</a></li>
+ <li><a href="/docs/0.7.3/interpreter/lens.html">Lens</a></li>
+ <li><a href="/docs/0.7.3/interpreter/livy.html">Livy</a></li>
+ <li><a href="/docs/0.7.3/interpreter/markdown.html">Markdown</a></li>
+ <li><a href="/docs/0.7.3/interpreter/pig.html">Pig</a></li>
+ <li><a href="/docs/0.7.3/interpreter/python.html">Python</a></li>
+ <li><a href="/docs/0.7.3/interpreter/postgresql.html">Postgresql, HAWQ</a></li>
+ <li><a href="/docs/0.7.3/interpreter/r.html">R</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scalding.html">Scalding</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scio.html">Scio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/shell.html">Shell</a></li>
+ <li><a href="/docs/0.7.3/interpreter/spark.html">Spark</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li class="title"><span><b>Basic Display System</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#text">Text</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#html">Html</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#table">Table</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Angular API</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/back-end-angular.html">Angular (backend API)</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/front-end-angular.html">Angular (frontend API)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;">
+ <li class="title"><span><b>Notebook Storage</b><span></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>REST API</b><span></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-interpreter.html">Interpreter API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebook.html">Notebook API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebookRepo.html">Notebook Repository API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-configuration.html">Configuration API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-credential.html">Credential API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-helium.html">Helium API</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Security</b><span></li>
+ <li><a href="/docs/0.7.3/security/shiroauthentication.html">Shiro Authentication</a></li>
+ <li><a href="/docs/0.7.3/security/notebook_authorization.html">Notebook Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/datasource_authorization.html">Data Source Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/http_security_headers.html">HTTP Security Headers</a></li>
+ <li><a href="/docs/0.7.3/security/helium_authorization.html">Helium Authorization</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Advanced</b><span></li>
+ <li><a href="/docs/0.7.3/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-standalone-mode">Zeppelin on Spark Cluster Mode (Standalone)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-yarn-mode">Zeppelin on Spark Cluster Mode (YARN)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-mesos-mode">Zeppelin on Spark Cluster Mode (Mesos)</a></li>
+ <li><a href="/docs/0.7.3/install/cdh.html">Zeppelin on CDH</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Contibute</b><span></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinvisualization.html">Writing Zeppelin Visualization (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinapplication.html">Writing Zeppelin Application (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontribute.html">How to contribute (code)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontributewebsite.html">How to contribute (website)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="/docs/0.7.3/search.html" class="nav-search-link">
+ <span class="fa fa-search nav-search-icon"></span>
+ </a>
+ </li>
+ </ul>
+ </nav><!--/.navbar-collapse -->
+ </div>
+ </div>
+
+
+
+ <div class="content">
+
+<!--<div class="hero-unit Scio Interpreter for Apache Zeppelin">
+ <h1></h1>
+</div>
+-->
+
+<div class="row">
+ <div class="col-md-12">
+ <!--
+Licensed 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.
+-->
+
+<h1>Scio Interpreter for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<h2>Overview</h2>
+
+<p>Scio is a Scala DSL for <a href="https://github.com/GoogleCloudPlatform/DataflowJavaSDK">Google Cloud Dataflow</a> and <a href="http://beam.incubator.apache.org/">Apache Beam</a> inspired by <a href="http://spark.apache.org/">Spark</a> and <a href="https://github.com/twitter/scalding">Scalding</a>. See the current <a href="https://github.com/spotify/scio/wiki">wiki</a> and <a href="http://spotify.github.io/scio/">API documentation</a> for more information.</p>
+
+<h2>Configuration</h2>
+
+<table class="table-configuration">
+ <tr>
+ <th>Name</th>
+ <th>Default Value</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>zeppelin.scio.argz</td>
+ <td>--runner=InProcessPipelineRunner</td>
+ <td>Scio interpreter wide arguments. Documentation: https://github.com/spotify/scio/wiki#options and https://cloud.google.com/dataflow/pipelines/specifying-exec-params</td>
+ </tr>
+ <tr>
+ <td>zeppelin.scio.maxResult</td>
+ <td>1000</td>
+ <td>Max number of SCollection results to display</td>
+ </tr>
+
+</table>
+
+<h2>Enabling the Scio Interpreter</h2>
+
+<p>In a notebook, to enable the <strong>Scio</strong> interpreter, click the <strong>Gear</strong> icon and select <strong>beam</strong> (<strong>beam.scio</strong>).</p>
+
+<h2>Using the Scio Interpreter</h2>
+
+<p>In a paragraph, use <code>%beam.scio</code> to select the <strong>Scio</strong> interpreter. You can use it much the same way as vanilla Scala REPL and <a href="https://github.com/spotify/scio/wiki/Scio-REPL">Scio REPL</a>. State (like variables, imports, execution etc) is shared among all <em>Scio</em> paragraphs. There is a special variable <strong>argz</strong> which holds arguments from Scio interpreter settings. The easiest way to proceed is to create a Scio context via standard <code>ContextAndArgs</code>.</p>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">beam</span><span class="o">.</span><span class="n">scio</span>
+<span class="k">val</span> <span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="n">args</span><span class="o">)</span> <span class="k">=</span> <span class="nc">ContextAndArgs</span><span class="o">(</span><span class="n">argz</span><span class="o">)</span>
+</code></pre></div>
+<p>Use <code>sc</code> context the way you would in a regular pipeline/REPL.</p>
+
+<p>Example:</p>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">beam</span><span class="o">.</span><span class="n">scio</span>
+<span class="k">val</span> <span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="n">args</span><span class="o">)</span> <span class="k">=</span> <span class="nc">ContextAndArgs</span><span class="o">(</span><span class="n">argz</span><span class="o">)</span>
+<span class="n">sc</span><span class="o">.</span><span class="n">parallelize</span><span class="o">(</span><span class="nc">Seq</span><span class="o">(</span><span class="s">"foo"</span><span class="o">,</span> <span class="s">"foo"</span><span class="o">,</span> <span class="s">"bar"</span><span class="o">)).</span><span class="n">countByValue</span><span class="o">.</span><span class="n">closeAndDisplay</span><span class="o">()</span>
+</code></pre></div>
+<p>If you close Scio context, go ahead an create a new one using <code>ContextAndArgs</code>. Please refer to <a href="https://github.com/spotify/scio/wiki">Scio wiki</a> for more complex examples. You can close Scio context much the same way as in Scio REPL, and use Zeppelin display helpers to synchronously close and display results - read more below.</p>
+
+<h3>Progress</h3>
+
+<p>There can be only one paragraph running at once. There is no notion of overall progress, thus progress bar will show <code>0</code>.</p>
+
+<h3>SCollection display helpers</h3>
+
+<p>Scio interpreter comes with display helpers to ease working with Zeppelin notebooks. Simply use <code>closeAndDisplay()</code> on <code>SCollection</code> to close context and display the results. The number of results is limited by <code>zeppelin.scio.maxResult</code> (by default 1000).</p>
+
+<p>Supported <code>SCollection</code> types:</p>
+
+<ul>
+<li>Scio's typed BigQuery</li>
+<li>Scala's Products (case classes, tuples)</li>
+<li>Google BigQuery's TableRow</li>
+<li>Apache Avro</li>
+<li>All Scala's <code>AnyVal</code></li>
+</ul>
+
+<h4>Helper methods</h4>
+
+<p>There are different helper methods for different objects. You can easily display results from <code>SCollection</code>, <code>Future[Tap]</code> and <code>Tap</code>.</p>
+
+<h5><code>SCollection</code> helper</h5>
+
+<p><code>SCollection</code> has <code>closeAndDisplay</code> Zeppelin helper method for types listed above. Use it to synchronously close Scio context, and once available pull and display results.</p>
+
+<h5><code>Future[Tap]</code> helper</h5>
+
+<p><code>Future[Tap]</code> has <code>waitAndDisplay</code> Zeppelin helper method for types listed above. Use it to synchronously wait for results, and once available pull and display results.</p>
+
+<h5><code>Tap</code> helper</h5>
+
+<p><code>Tap</code> has <code>display</code> Zeppelin helper method for types listed above. Use it to pull and display results.</p>
+
+<h3>Examples</h3>
+
+<h4>BigQuery example:</h4>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">beam</span><span class="o">.</span><span class="n">scio</span>
+<span class="nd">@BigQueryType</span><span class="o">.</span><span class="n">fromQuery</span><span class="o">(</span><span class="s">"""|SELECT departure_airport,count(case when departure_delay>0 then 1 else 0 end) as no_of_delays</span>
+<span class="s"> |FROM [bigquery-samples:airline_ontime_data.flights]</span>
+<span class="s"> |group by departure_airport</span>
+<span class="s"> |order by 2 desc</span>
+<span class="s"> |limit 10"""</span><span class="o">.</span><span class="n">stripMargin</span><span class="o">)</span> <span class="k">class</span> <span class="nc">Flights</span>
+
+<span class="k">val</span> <span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="n">args</span><span class="o">)</span> <span class="k">=</span> <span class="nc">ContextAndArgs</span><span class="o">(</span><span class="n">argz</span><span class="o">)</span>
+<span class="n">sc</span><span class="o">.</span><span class="n">bigQuerySelect</span><span class="o">(</span><span class="nc">Flights</span><span class="o">.</span><span class="n">query</span><span class="o">).</span><span class="n">closeAndDisplay</span><span class="o">(</span><span class="nc">Flights</span><span class="o">.</span><span class="n">schema</span><span class="o">)</span>
+</code></pre></div>
+<h4>BigQuery typed example:</h4>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">beam</span><span class="o">.</span><span class="n">scio</span>
+<span class="nd">@BigQueryType</span><span class="o">.</span><span class="n">fromQuery</span><span class="o">(</span><span class="s">"""|SELECT departure_airport,count(case when departure_delay>0 then 1 else 0 end) as no_of_delays</span>
+<span class="s"> |FROM [bigquery-samples:airline_ontime_data.flights]</span>
+<span class="s"> |group by departure_airport</span>
+<span class="s"> |order by 2 desc</span>
+<span class="s"> |limit 10"""</span><span class="o">.</span><span class="n">stripMargin</span><span class="o">)</span> <span class="k">class</span> <span class="nc">Flights</span>
+
+<span class="k">val</span> <span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="n">args</span><span class="o">)</span> <span class="k">=</span> <span class="nc">ContextAndArgs</span><span class="o">(</span><span class="n">argz</span><span class="o">)</span>
+<span class="n">sc</span><span class="o">.</span><span class="n">typedBigQuery</span><span class="o">[</span><span class="kt">Flights</span><span class="o">]().</span><span class="n">flatMap</span><span class="o">(</span><span class="k">_</span><span class="o">.</span><span class="n">no_of_delays</span><span class="o">).</span><span class="n">mean</span><span class="o">.</span><span class="n">closeAndDisplay</span><span class="o">()</span>
+</code></pre></div>
+<h4>Avro example:</h4>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">beam</span><span class="o">.</span><span class="n">scio</span>
+<span class="k">import</span> <span class="nn">com.spotify.data.ExampleAvro</span>
+
+<span class="k">val</span> <span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="n">args</span><span class="o">)</span> <span class="k">=</span> <span class="nc">ContextAndArgs</span><span class="o">(</span><span class="n">argz</span><span class="o">)</span>
+<span class="n">sc</span><span class="o">.</span><span class="n">avroFile</span><span class="o">[</span><span class="kt">ExampleAvro</span><span class="o">](</span><span class="s">"gs://<bucket>/tmp/my.avro"</span><span class="o">).</span><span class="n">take</span><span class="o">(</span><span class="mi">10</span><span class="o">).</span><span class="n">closeAndDisplay</span><span class="o">()</span>
+</code></pre></div>
+<h4>Avro example with a view schema:</h4>
+<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="o">%</span><span class="n">beam</span><span class="o">.</span><span class="n">scio</span>
+<span class="k">import</span> <span class="nn">com.spotify.data.ExampleAvro</span>
+<span class="k">import</span> <span class="nn">org.apache.avro.Schema</span>
+
+<span class="k">val</span> <span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="n">args</span><span class="o">)</span> <span class="k">=</span> <span class="nc">ContextAndArgs</span><span class="o">(</span><span class="n">argz</span><span class="o">)</span>
+<span class="k">val</span> <span class="n">view</span> <span class="k">=</span> <span class="nc">Schema</span><span class="o">.</span><span class="n">parse</span><span class="o">(</span><span class="s">"""{"type":"record","name":"ExampleAvro","namespace":"com.spotify.data","fields":[{"name":"track","type":"string"}, {"name":"artist", "type":"string"}]}"""</span><span class="o">)</span>
+
+<span class="n">sc</span><span class="o">.</span><span class="n">avroFile</span><span class="o">[</span><span class="kt">EndSongCleaned</span><span class="o">](</span><span class="s">"gs://<bucket>/tmp/my.avro"</span><span class="o">).</span><span class="n">take</span><span class="o">(</span><span class="mi">10</span><span class="o">).</span><span class="n">closeAndDisplay</span><span class="o">(</span><span class="n">view</span><span class="o">)</span>
+</code></pre></div>
+<h3>Google credentials</h3>
+
+<p>Scio Interpreter will try to infer your Google Cloud credentials from its environment, it will take into the account:</p>
+
+<ul>
+<li><code>argz</code> interpreter settings (<a href="https://github.com/spotify/scio/wiki#options">doc</a>)</li>
+<li>environment variable (<code>GOOGLE_APPLICATION_CREDENTIALS</code>)</li>
+<li>gcloud configuration</li>
+</ul>
+
+<h4>BigQuery macro credentials</h4>
+
+<p>Currently BigQuery project for macro expansion is inferred using Google Dataflow's <a href="https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/GcpOptions.java#L187">DefaultProjectFactory().create()</a></p>
+
+ </div>
+</div>
+
+
+ <hr>
+ <footer>
+ <!-- <p>© 2017 The Apache Software Foundation</p>-->
+ </footer>
+ </div>
+
+
+
+
+ <script type="text/javascript">
+ (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','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-45176241-5', 'zeppelin.apache.org');
+ ga('require', 'linkid', 'linkid.js');
+ ga('send', 'pageview');
+
+</script>
+
+
+
+ </body>
+</html>
+
Added: zeppelin/site/docs/0.7.3/interpreter/shell.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.3/interpreter/shell.html?rev=1809223&view=auto
==============================================================================
--- zeppelin/site/docs/0.7.3/interpreter/shell.html (added)
+++ zeppelin/site/docs/0.7.3/interpreter/shell.html Thu Sep 21 20:33:57 2017
@@ -0,0 +1,304 @@
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Apache Zeppelin 0.7.3 Documentation: Shell interpreter for Apache Zeppelin</title>
+ <meta name="description" content="Shell interpreter uses Apache Commons Exec to execute external processes.">
+ <meta name="author" content="The Apache Software Foundation">
+
+ <!-- Enable responsive viewport -->
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
+
+ <!-- Le styles -->
+ <link href="/docs/0.7.3/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css">
+ <link href="/docs/0.7.3/assets/themes/zeppelin/css/syntax.css" rel="stylesheet" type="text/css" media="screen" />
+ <!-- Le fav and touch icons -->
+ <!-- Update these with your own images
+ <link rel="shortcut icon" href="images/favicon.ico">
+ <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+ -->
+
+ <!-- Js -->
+ <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/docs.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/anchor.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/toc.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/lunr.min.js"></script>
+ <script src="/docs/0.7.3/assets/themes/zeppelin/js/search.js"></script>
+
+ <!-- atom & rss feed -->
+ <link href="/docs/0.7.3/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
+ <link href="/docs/0.7.3/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed">
+ </head>
+
+ <body>
+
+ <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <div class="navbar-brand">
+ <a class="navbar-brand-main" href="http://zeppelin.apache.org">
+ <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin">
+ <span style="vertical-align:middle">Zeppelin</span>
+ </a>
+ <a class="navbar-brand-version" href="/docs/0.7.3">
+ <span><small>0.7.3</small></span>
+ </a>
+ </div>
+ </div>
+ <nav class="navbar-collapse collapse" role="navigation">
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="/docs/0.7.3/index.html">What is Apache Zeppelin ?</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Getting Started</b><span></li>
+ <li><a href="/docs/0.7.3/install/install.html">Install</a></li>
+ <li><a href="/docs/0.7.3/install/configuration.html">Configuration</a></li>
+ <li><a href="/docs/0.7.3/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li>
+ <li><a href="/docs/0.7.3/quickstart/tutorial.html">Tutorial</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Basic Feature Guide</b><span></li>
+ <li><a href="/docs/0.7.3/manual/dynamicform.html">Dynamic Form</a></li>
+ <li><a href="/docs/0.7.3/manual/publish.html">Publish your Paragraph</a></li>
+ <li><a href="/docs/0.7.3/manual/notebookashomepage.html">Customize Zeppelin Homepage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>More</b><span></li>
+ <li><a href="/docs/0.7.3/install/upgrade.html">Upgrade Zeppelin Version</a></li>
+ <li><a href="/docs/0.7.3/install/build.html">Build from source</a></li>
+ <li><a href="/docs/0.7.3/quickstart/install_with_flink_and_spark_cluster.html">Install Zeppelin with Flink and Spark Clusters Tutorial</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu">
+ <li><a href="/docs/0.7.3/manual/interpreters.html">Overview</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Usage</b><span></li>
+ <li><a href="/docs/0.7.3/manual/interpreterinstallation.html">Interpreter Installation</a></li>
+ <!--<li><a href="/docs/0.7.3/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>-->
+ <li><a href="/docs/0.7.3/manual/dependencymanagement.html">Interpreter Dependency Management</a></li>
+ <li><a href="/docs/0.7.3/manual/userimpersonation.html">Interpreter User Impersonation</a></li>
+ <li><a href="/docs/0.7.3/manual/interpreterexechooks.html">Interpreter Execution Hooks (Experimental)</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Available Interpreters</b><span></li>
+ <li><a href="/docs/0.7.3/interpreter/alluxio.html">Alluxio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/beam.html">Beam</a></li>
+ <li><a href="/docs/0.7.3/interpreter/bigquery.html">BigQuery</a></li>
+ <li><a href="/docs/0.7.3/interpreter/cassandra.html">Cassandra</a></li>
+ <li><a href="/docs/0.7.3/interpreter/elasticsearch.html">Elasticsearch</a></li>
+ <li><a href="/docs/0.7.3/interpreter/flink.html">Flink</a></li>
+ <li><a href="/docs/0.7.3/interpreter/geode.html">Geode</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hbase.html">HBase</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hdfs.html">HDFS</a></li>
+ <li><a href="/docs/0.7.3/interpreter/hive.html">Hive</a></li>
+ <li><a href="/docs/0.7.3/interpreter/ignite.html">Ignite</a></li>
+ <li><a href="/docs/0.7.3/interpreter/jdbc.html">JDBC</a></li>
+ <li><a href="/docs/0.7.3/interpreter/kylin.html">Kylin</a></li>
+ <li><a href="/docs/0.7.3/interpreter/lens.html">Lens</a></li>
+ <li><a href="/docs/0.7.3/interpreter/livy.html">Livy</a></li>
+ <li><a href="/docs/0.7.3/interpreter/markdown.html">Markdown</a></li>
+ <li><a href="/docs/0.7.3/interpreter/pig.html">Pig</a></li>
+ <li><a href="/docs/0.7.3/interpreter/python.html">Python</a></li>
+ <li><a href="/docs/0.7.3/interpreter/postgresql.html">Postgresql, HAWQ</a></li>
+ <li><a href="/docs/0.7.3/interpreter/r.html">R</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scalding.html">Scalding</a></li>
+ <li><a href="/docs/0.7.3/interpreter/scio.html">Scio</a></li>
+ <li><a href="/docs/0.7.3/interpreter/shell.html">Shell</a></li>
+ <li><a href="/docs/0.7.3/interpreter/spark.html">Spark</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">Display System <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li class="title"><span><b>Basic Display System</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#text">Text</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#html">Html</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/basicdisplaysystem.html#table">Table</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Angular API</b><span></li>
+ <li><a href="/docs/0.7.3/displaysystem/back-end-angular.html">Angular (backend API)</a></li>
+ <li><a href="/docs/0.7.3/displaysystem/front-end-angular.html">Angular (frontend API)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
+ <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;">
+ <li class="title"><span><b>Notebook Storage</b><span></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li>
+ <li><a href="/docs/0.7.3/storage/storage.html#storage-in-zeppelinhub">ZeppelinHub Storage</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>REST API</b><span></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-interpreter.html">Interpreter API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebook.html">Notebook API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-notebookRepo.html">Notebook Repository API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-configuration.html">Configuration API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-credential.html">Credential API</a></li>
+ <li><a href="/docs/0.7.3/rest-api/rest-helium.html">Helium API</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Security</b><span></li>
+ <li><a href="/docs/0.7.3/security/shiroauthentication.html">Shiro Authentication</a></li>
+ <li><a href="/docs/0.7.3/security/notebook_authorization.html">Notebook Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/datasource_authorization.html">Data Source Authorization</a></li>
+ <li><a href="/docs/0.7.3/security/http_security_headers.html">HTTP Security Headers</a></li>
+ <li><a href="/docs/0.7.3/security/helium_authorization.html">Helium Authorization</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Advanced</b><span></li>
+ <li><a href="/docs/0.7.3/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-standalone-mode">Zeppelin on Spark Cluster Mode (Standalone)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-yarn-mode">Zeppelin on Spark Cluster Mode (YARN)</a></li>
+ <li><a href="/docs/0.7.3/install/spark_cluster_mode.html#spark-on-mesos-mode">Zeppelin on Spark Cluster Mode (Mesos)</a></li>
+ <li><a href="/docs/0.7.3/install/cdh.html">Zeppelin on CDH</a></li>
+ <li role="separator" class="divider"></li>
+ <li class="title"><span><b>Contibute</b><span></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinvisualization.html">Writing Zeppelin Visualization (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/writingzeppelinapplication.html">Writing Zeppelin Application (Experimental)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontribute.html">How to contribute (code)</a></li>
+ <li><a href="/docs/0.7.3/development/howtocontributewebsite.html">How to contribute (website)</a></li>
+ </ul>
+ </li>
+ <li>
+ <a href="/docs/0.7.3/search.html" class="nav-search-link">
+ <span class="fa fa-search nav-search-icon"></span>
+ </a>
+ </li>
+ </ul>
+ </nav><!--/.navbar-collapse -->
+ </div>
+ </div>
+
+
+
+ <div class="content">
+
+<!--<div class="hero-unit Shell interpreter for Apache Zeppelin">
+ <h1></h1>
+</div>
+-->
+
+<div class="row">
+ <div class="col-md-12">
+ <!--
+Licensed 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.
+-->
+
+<h1>Shell interpreter for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<h2>Overview</h2>
+
+<p>Shell interpreter uses <a href="https://commons.apache.org/proper/commons-exec">Apache Commons Exec</a> to execute external processes.
+In Zeppelin notebook, you can use <code>%sh</code> in the beginning of a paragraph to invoke system shell and run commands.</p>
+
+<blockquote>
+<p><strong>Note :</strong> Currently each command runs as the user Zeppelin server is running as.</p>
+</blockquote>
+
+<h2>Configuration</h2>
+
+<p>At the "Interpreters" menu in Zeppelin dropdown menu, you can set the property value for Shell interpreter.</p>
+
+<table class="table-configuration">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>shell.command.timeout.millisecs</td>
+ <td>60000</td>
+ <td>Shell command time out in millisecs</td>
+ </tr>
+ <tr>
+ <td>shell.working.directory.user.home</td>
+ <td>false</td>
+ <td>If this set to true, the shell's working directory will be set to user home</td>
+ </tr>
+ <tr>
+ <td>zeppelin.shell.auth.type</td>
+ <td></td>
+ <td>Types of authentications' methods supported are SIMPLE, and KERBEROS</td>
+ </tr>
+ <tr>
+ <td>zeppelin.shell.principal</td>
+ <td></td>
+ <td>The principal name to load from the keytab</td>
+ </tr>
+ <tr>
+ <td>zeppelin.shell.keytab.location</td>
+ <td></td>
+ <td>The path to the keytab file</td>
+ </tr>
+</table>
+
+<h2>Example</h2>
+
+<p>The following example demonstrates the basic usage of Shell in a Zeppelin notebook.</p>
+
+<p><img src="../assets/themes/zeppelin/img/docs-img/shell-example.png" /></p>
+
+<p>If you need further information about <strong>Zeppelin Interpreter Setting</strong> for using Shell interpreter, please read <a href="../manual/interpreters.html#what-is-interpreter-setting">What is interpreter setting?</a> section first.</p>
+
+ </div>
+</div>
+
+
+ <hr>
+ <footer>
+ <!-- <p>© 2017 The Apache Software Foundation</p>-->
+ </footer>
+ </div>
+
+
+
+
+ <script type="text/javascript">
+ (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','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-45176241-5', 'zeppelin.apache.org');
+ ga('require', 'linkid', 'linkid.js');
+ ga('send', 'pageview');
+
+</script>
+
+
+
+ </body>
+</html>
+