Added: zeppelin/site/docs/0.7.0-SNAPSHOT/quickstart/tutorial.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/quickstart/tutorial.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.7.0-SNAPSHOT/quickstart/tutorial.html (added) +++ zeppelin/site/docs/0.7.0-SNAPSHOT/quickstart/tutorial.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,364 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Tutorial</title> + <meta name="description" content="Tutorial is valid for Spark 1.3 and higher"> + <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.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.7.0-SNAPSHOT/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> + <a class="navbar-brand" href="/docs/0.7.0-SNAPSHOT"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.7.0-SNAPSHOT</small></span> + </a> + </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.0-SNAPSHOT/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.0-SNAPSHOT/install/install.html">Install</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/install/upgrade.html">Upgrade Zeppelin Version</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.0-SNAPSHOT/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.0-SNAPSHOT/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.7.0-SNAPSHOT/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.7.0-SNAPSHOT/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/r.html">R</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html">Configuration API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html">Credential API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/writingzeppelinapplication.html">Writing Zeppelin Application</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Tutorial"> + <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>Zeppelin Tutorial</h1> + +<div id="toc"></div> + +<p>This tutorial walks you through some of the fundamental Zeppelin concepts. We will assume you have already installed Zeppelin. If not, please see <a href="../install/install.html">here</a> first.</p> + +<p>Current main backend processing engine of Zeppelin is <a href="https://spark.apache.org">Apache Spark</a>. If you're new to this system, you might want to start by getting an idea of how it processes data to get the most out of Zeppelin.</p> + +<h2>Tutorial with Local File</h2> + +<h3>Data Refine</h3> + +<p>Before you start Zeppelin tutorial, you will need to download <a href="http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip">bank.zip</a>. </p> + +<p>First, to transform csv format data into RDD of <code>Bank</code> objects, run following script. This will also remove header using <code>filter</code> function.</p> +<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="k">val</span> <span class="n">bankText</span> <span class="k">=</span> <span class="n">sc</span><span class="o">.</span><span class="n">textFile</span><span class="o">(</span><span class="s">"yourPath/bank/bank-full.csv"</span><span class="o">)</span> + +<span class="k">case</span> <span class="k">class</span> <span class="nc">Bank</span><span class="o">(</span><span class="n">age</span><span class="k">:</span><span class="kt">Integer</span><span class="o">,</span> <span class="n">job</span><span class="k">:</span><span class="kt">String</span><span class="o">,</span> <span class="n">marital</span> <span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">education</span> <span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">balance</span> <span class="k">:</span> <span class="kt">Integer</span><span class="o">)</span> + +<span class="c1">// split each line, filter out header (starts with "age"), and map it into Bank case class</span> +<span class="k">val</span> <span class="n">bank</span> <span class="k">=</span> <span class="n">bankText</span><span class="o">.</span><span class="n">map</span><span class="o">(</span><span class="n">s</span><span class="k">=></span><span class="n">s</span><span class="o">.</span><span class="n">split</span><span class="o">(</span><span class="s">";"</span><span class="o">)).</span><span class="n">filter</span><span class="o">(</span><span class="n">s</span><span class="k">=></span><span class="n">s</span><span class="o">(</span><span class="mi">0</span><span class="o">)!=</span><span class="s">"\"age\""</span><span class="o">).</span><span class="n">map</span><span class="o">(</span> + <span class="n">s</span><span class="k">=></span><span class="nc">Bank</span><span class="o">(</span><span class="n">s</span><span class="o">(</span><span class="mi">0</span><span class="o">).</span><span class="n">toInt</span><span class="o">,</span> + <span class="n">s</span><span class="o">(</span><span class="mi">1</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">),</span> + <span class="n">s</span><span class="o">(</span><span class="mi">2</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">),</span> + <span class="n">s</span><span class="o">(</span><span class="mi">3</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">),</span> + <span class="n">s</span><span class="o">(</span><span class="mi">5</span><span class="o">).</span><span class="n">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">).</span><span class="n">toInt</span> + <span class="o">)</span> +<span class="o">)</span> + +<span class="c1">// convert to DataFrame and create temporal table</span> +<span class="n">bank</span><span class="o">.</span><span class="n">toDF</span><span class="o">().</span><span class="n">registerTempTable</span><span class="o">(</span><span class="s">"bank"</span><span class="o">)</span> +</code></pre></div> +<h3>Data Retrieval</h3> + +<p>Suppose we want to see age distribution from <code>bank</code>. To do this, run:</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">age</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">bank</span> <span class="k">where</span> <span class="n">age</span> <span class="o"><</span> <span class="mi">30</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age</span> <span class="k">order</span> <span class="k">by</span> <span class="n">age</span> +</code></pre></div> +<p>You can make input box for setting age condition by replacing <code>30</code> with <code>${maxAge=30}</code>.</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">age</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">bank</span> <span class="k">where</span> <span class="n">age</span> <span class="o"><</span> <span class="err">${</span><span class="n">maxAge</span><span class="o">=</span><span class="mi">30</span><span class="err">}</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age</span> <span class="k">order</span> <span class="k">by</span> <span class="n">age</span> +</code></pre></div> +<p>Now we want to see age distribution with certain marital status and add combo box to select marital status. Run:</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">age</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">bank</span> <span class="k">where</span> <span class="n">marital</span><span class="o">=</span><span class="ss">"${marital=single,single|divorced|married}"</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age</span> <span class="k">order</span> <span class="k">by</span> <span class="n">age</span> +</code></pre></div> +<p><br /></p> + +<h2>Tutorial with Streaming Data</h2> + +<h3>Data Refine</h3> + +<p>Since this tutorial is based on Twitter's sample tweet stream, you must configure authentication with a Twitter account. To do this, take a look at <a href="https://databricks-training.s3.amazonaws.com/realtime-processing-with-spark-streaming.html#twitter-credential-setup">Twitter Credential Setup</a>. After you get API keys, you should fill out credential related values(<code>apiKey</code>, <code>apiSecret</code>, <code>accessToken</code>, <code>accessTokenSecret</code>) with your API keys on following script.</p> + +<p>This will create a RDD of <code>Tweet</code> objects and register these stream data as a table:</p> +<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="k">import</span> <span class="nn">org.apache.spark.streaming._</span> +<span class="k">import</span> <span class="nn">org.apache.spark.streaming.twitter._</span> +<span class="k">import</span> <span class="nn">org.apache.spark.storage.StorageLevel</span> +<span class="k">import</span> <span class="nn">scala.io.Source</span> +<span class="k">import</span> <span class="nn">scala.collection.mutable.HashMap</span> +<span class="k">import</span> <span class="nn">java.io.File</span> +<span class="k">import</span> <span class="nn">org.apache.log4j.Logger</span> +<span class="k">import</span> <span class="nn">org.apache.log4j.Level</span> +<span class="k">import</span> <span class="nn">sys.process.stringSeqToProcess</span> + +<span class="cm">/** Configures the Oauth Credentials for accessing Twitter */</span> +<span class="k">def</span> <span class="n">configureTwitterCredentials</span><span class="o">(</span><span class="n">apiKey</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">apiSecret</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">accessToken</span><span class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span class="n">accessTokenSecret</span><span class="k">:</span> <span class="kt">String</span><span class="o">)</span> <span class="o">{</span> + <span class="k">val</span> <span class="n">configs</span> <span class="k">=</span> <span class="k">new</span> <span class="nc">HashMap</span><span class="o">[</span><span class="kt">String</span>, <span class="kt">String</span><span class="o">]</span> <span class="o">++=</span> <span class="nc">Seq</span><span class="o">(</span> + <span class="s">"apiKey"</span> <span class="o">-></span> <span class="n">apiKey</span><span class="o">,</span> <span class="s">"apiSecret"</span> <span class="o">-></span> <span class="n">apiSecret</span><span class="o">,</span> <span class="s">"accessToken"</span> <span class="o">-></span> <span class="n">accessToken</span><span class="o">,</span> <span class="s">"accessTokenSecret"</span> <span class="o">-></span> <span class="n">accessTokenSecret</span><span class="o">)</span> + <span class="n">println</span><span class="o">(</span><span class="s">"Configuring Twitter OAuth"</span><span class="o">)</span> + <span class="n">configs</span><span class="o">.</span><span class="n">foreach</span><span class="o">{</span> <span class="k">case</span><span class="o">(</span><span class="n">key</span><span class="o">,</span> <span class="n">value</span><span class="o">)</span> <span class="k">=></span> + <span class="k">if</span> <span class="o">(</span><span class="n">value</span><span class="o">.</span><span class="n">trim</span><span class="o">.</span><span class="n">isEmpty</span><span class="o">)</span> <span class="o">{</span> + <span class="k">throw</span> <span class="k">new</span> <span class="nc">Exception</span><span class="o">(</span><span class="s">"Error setting authentication - value for "</span> <span class="o">+</span> <span class="n">key</span> <span class="o">+</span> <span class="s">" not set"</span><span class="o">)</span> + <span class="o">}</span> + <span class="k">val</span> <span class="n">fullKey</span> <span class="k">=</span> <span class="s">"twitter4j.oauth."</span> <span class="o">+</span> <span class="n">key</span><span class="o">.</span><span class="n">replace</span><span class="o">(</span><span class="s">"api"</span><span class="o">,</span> <span class="s">"consumer"</span><span class="o">)</span> + <span class="nc">System</span><span class="o">.</span><span class="n">setProperty</span><span class="o">(</span><span class="n">fullKey</span><span class="o">,</span> <span class="n">value</span><span class="o">.</span><span class="n">trim</span><span class="o">)</span> + <span class="n">println</span><span class="o">(</span><span class="s">"\tProperty "</span> <span class="o">+</span> <span class="n">fullKey</span> <span class="o">+</span> <span class="s">" set as ["</span> <span class="o">+</span> <span class="n">value</span><span class="o">.</span><span class="n">trim</span> <span class="o">+</span> <span class="s">"]"</span><span class="o">)</span> + <span class="o">}</span> + <span class="n">println</span><span class="o">()</span> +<span class="o">}</span> + +<span class="c1">// Configure Twitter credentials</span> +<span class="k">val</span> <span class="n">apiKey</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxx"</span> +<span class="k">val</span> <span class="n">apiSecret</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</span> +<span class="k">val</span> <span class="n">accessToken</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</span> +<span class="k">val</span> <span class="n">accessTokenSecret</span> <span class="k">=</span> <span class="s">"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</span> +<span class="n">configureTwitterCredentials</span><span class="o">(</span><span class="n">apiKey</span><span class="o">,</span> <span class="n">apiSecret</span><span class="o">,</span> <span class="n">accessToken</span><span class="o">,</span> <span class="n">accessTokenSecret</span><span class="o">)</span> + +<span class="k">import</span> <span class="nn">org.apache.spark.streaming.twitter._</span> +<span class="k">val</span> <span class="n">ssc</span> <span class="k">=</span> <span class="k">new</span> <span class="nc">StreamingContext</span><span class="o">(</span><span class="n">sc</span><span class="o">,</span> <span class="nc">Seconds</span><span class="o">(</span><span class="mi">2</span><span class="o">))</span> +<span class="k">val</span> <span class="n">tweets</span> <span class="k">=</span> <span class="nc">TwitterUtils</span><span class="o">.</span><span class="n">createStream</span><span class="o">(</span><span class="n">ssc</span><span class="o">,</span> <span class="nc">None</span><span class="o">)</span> +<span class="k">val</span> <span class="n">twt</span> <span class="k">=</span> <span class="n">tweets</span><span class="o">.</span><span class="n">window</span><span class="o">(</span><span class="nc">Seconds</span><span class="o">(</span><span class="mi">60</span><span class="o">))</span> + +<span class="k">case</span> <span class="k">class</span> <span class="nc">Tweet</span><span class="o">(</span><span class="n">createdAt</span><span class="k">:</span><span class="kt">Long</span><span class="o">,</span> <span class="n">text</span><span class="k">:</span><span class="kt">String</span><span class="o">)</span> +<span class="n">twt</span><span class="o">.</span><span class="n">map</span><span class="o">(</span><span class="n">status</span><span class="k">=></span> + <span class="nc">Tweet</span><span class="o">(</span><span class="n">status</span><span class="o">.</span><span class="n">getCreatedAt</span><span class="o">().</span><span class="n">getTime</span><span class="o">()/</span><span class="mi">1000</span><span class="o">,</span> <span class="n">status</span><span class="o">.</span><span class="n">getText</span><span class="o">())</span> +<span class="o">).</span><span class="n">foreachRDD</span><span class="o">(</span><span class="n">rdd</span><span class="k">=></span> + <span class="c1">// Below line works only in spark 1.3.0.</span> + <span class="c1">// For spark 1.1.x and spark 1.2.x,</span> + <span class="c1">// use rdd.registerTempTable("tweets") instead.</span> + <span class="n">rdd</span><span class="o">.</span><span class="n">toDF</span><span class="o">().</span><span class="n">registerAsTable</span><span class="o">(</span><span class="s">"tweets"</span><span class="o">)</span> +<span class="o">)</span> + +<span class="n">twt</span><span class="o">.</span><span class="n">print</span> + +<span class="n">ssc</span><span class="o">.</span><span class="n">start</span><span class="o">()</span> +</code></pre></div> +<h3>Data Retrieval</h3> + +<p>For each following script, every time you click run button you will see different result since it is based on real-time data.</p> + +<p>Let's begin by extracting maximum 10 tweets which contain the word <strong>girl</strong>.</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">tweets</span> <span class="k">where</span> <span class="nb">text</span> <span class="k">like</span> <span class="s1">'%girl%'</span> <span class="k">limit</span> <span class="mi">10</span> +</code></pre></div> +<p>This time suppose we want to see how many tweets have been created per sec during last 60 sec. To do this, run:</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">createdAt</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">tweets</span> <span class="k">group</span> <span class="k">by</span> <span class="n">createdAt</span> <span class="k">order</span> <span class="k">by</span> <span class="n">createdAt</span> +</code></pre></div> +<p>You can make user-defined function and use it in Spark SQL. Let's try it by making function named <code>sentiment</code>. This function will return one of the three attitudes( positive, negative, neutral ) towards the parameter.</p> +<div class="highlight"><pre><code class="scala language-scala" data-lang="scala"><span class="k">def</span> <span class="n">sentiment</span><span class="o">(</span><span class="n">s</span><span class="k">:</span><span class="kt">String</span><span class="o">)</span> <span class="k">:</span> <span class="kt">String</span> <span class="o">=</span> <span class="o">{</span> + <span class="k">val</span> <span class="n">positive</span> <span class="k">=</span> <span class="nc">Array</span><span class="o">(</span><span class="s">"like"</span><span class="o">,</span> <span class="s">"love"</span><span class="o">,</span> <span class="s">"good"</span><span class="o">,</span> <span class="s">"great"</span><span class="o">,</span> <span class="s">"happy"</span><span class="o">,</span> <span class="s">"cool"</span><span class="o">,</span> <span class="s">"the"</span><span class="o">,</span> <span class="s">"one"</span><span class="o">,</span> <span class="s">"that"</span><span class="o">)</span> + <span class="k">val</span> <span class="n">negative</span> <span class="k">=</span> <span class="nc">Array</span><span class="o">(</span><span class="s">"hate"</span><span class="o">,</span> <span class="s">"bad"</span><span class="o">,</span> <span class="s">"stupid"</span><span class="o">,</span> <span class="s">"is"</span><span class="o">)</span> + + <span class="k">var</span> <span class="n">st</span> <span class="k">=</span> <span class="mi">0</span><span class="o">;</span> + + <span class="k">val</span> <span class="n">words</span> <span class="k">=</span> <span class="n">s</span><span class="o">.</span><span class="n">split</span><span class="o">(</span><span class="s">" "</span><span class="o">)</span> + <span class="n">positive</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">p</span> <span class="k">=></span> + <span class="n">words</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">w</span> <span class="k">=></span> + <span class="k">if</span><span class="o">(</span><span class="n">p</span><span class="o">==</span><span class="n">w</span><span class="o">)</span> <span class="n">st</span> <span class="k">=</span> <span class="n">st</span><span class="o">+</span><span class="mi">1</span> + <span class="o">)</span> + <span class="o">)</span> + + <span class="n">negative</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">p</span><span class="k">=></span> + <span class="n">words</span><span class="o">.</span><span class="n">foreach</span><span class="o">(</span><span class="n">w</span><span class="k">=></span> + <span class="k">if</span><span class="o">(</span><span class="n">p</span><span class="o">==</span><span class="n">w</span><span class="o">)</span> <span class="n">st</span> <span class="k">=</span> <span class="n">st</span><span class="o">-</span><span class="mi">1</span> + <span class="o">)</span> + <span class="o">)</span> + <span class="k">if</span><span class="o">(</span><span class="n">st</span><span class="o">></span><span class="mi">0</span><span class="o">)</span> + <span class="s">"positivie"</span> + <span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">st</span><span class="o"><</span><span class="mi">0</span><span class="o">)</span> + <span class="s">"negative"</span> + <span class="k">else</span> + <span class="s">"neutral"</span> +<span class="o">}</span> + +<span class="c1">// Below line works only in spark 1.3.0.</span> +<span class="c1">// For spark 1.1.x and spark 1.2.x,</span> +<span class="c1">// use sqlc.registerFunction("sentiment", sentiment _) instead.</span> +<span class="n">sqlc</span><span class="o">.</span><span class="n">udf</span><span class="o">.</span><span class="n">register</span><span class="o">(</span><span class="s">"sentiment"</span><span class="o">,</span> <span class="n">sentiment</span> <span class="k">_</span><span class="o">)</span> +</code></pre></div> +<p>To check how people think about girls using <code>sentiment</code> function we've made above, run this:</p> +<div class="highlight"><pre><code class="sql language-sql" data-lang="sql"><span class="o">%</span><span class="k">sql</span> <span class="k">select</span> <span class="n">sentiment</span><span class="p">(</span><span class="nb">text</span><span class="p">),</span> <span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="k">from</span> <span class="n">tweets</span> <span class="k">where</span> <span class="nb">text</span> <span class="k">like</span> <span class="s1">'%girl%'</span> <span class="k">group</span> <span class="k">by</span> <span class="n">sentiment</span><span class="p">(</span><span class="nb">text</span><span class="p">)</span> +</code></pre></div> + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 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> +
Propchange: zeppelin/site/docs/0.7.0-SNAPSHOT/quickstart/tutorial.html ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html (added) +++ zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,331 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Configuration REST API</title> + <meta name="description" content=""> + <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.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.7.0-SNAPSHOT/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> + <a class="navbar-brand" href="/docs/0.7.0-SNAPSHOT"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.7.0-SNAPSHOT</small></span> + </a> + </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.0-SNAPSHOT/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.0-SNAPSHOT/install/install.html">Install</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/install/upgrade.html">Upgrade Zeppelin Version</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.0-SNAPSHOT/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.0-SNAPSHOT/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.7.0-SNAPSHOT/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.7.0-SNAPSHOT/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/r.html">R</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html">Configuration API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html">Credential API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/writingzeppelinapplication.html">Writing Zeppelin Application</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Configuration REST API"> + <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>Apache Zeppelin Configuration REST API</h1> + +<div id="toc"></div> + +<h2>Overview</h2> + +<p>Apache Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality. +All REST APIs are available starting with the following endpoint <code>http://[zeppelin-server]:[zeppelin-port]/api</code>. +Note that Apache Zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as <a href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc">JSONView</a>.</p> + +<p>If you work with Apache Zeppelin and find a need for an additional REST API, please <a href="http://zeppelin.apache.org/community.html">file an issue or send us an email</a>. +nd a need for an additional REST API, please <a href="../../community.html">file an issue or send us mail</a>.</p> + +<h2>Configuration REST API list</h2> + +<h3>List all key/value pair of configurations</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method return all key/value pair of configurations on the server.<br/> + Note: For security reason, some pairs would not be shown.</td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/configurations/all</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response + </td> + <td> + <pre> +{ + "status": "OK", + "message": "", + "body": { + "zeppelin.war.tempdir": "webapps", + "zeppelin.notebook.homescreen.hide": "false", + "zeppelin.interpreter.remoterunner": "bin/interpreter.sh", + "zeppelin.notebook.s3.user": "user", + "zeppelin.server.port": "8089", + "zeppelin.dep.localrepo": "local-repo", + "zeppelin.ssl.truststore.type": "JKS", + "zeppelin.ssl.keystore.path": "keystore", + "zeppelin.notebook.s3.bucket": "zeppelin", + "zeppelin.server.addr": "0.0.0.0", + "zeppelin.ssl.client.auth": "false", + "zeppelin.server.context.path": "/", + "zeppelin.ssl.keystore.type": "JKS", + "zeppelin.ssl.truststore.path": "truststore", + "zeppelin.interpreters": "org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkRInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.angular.AngularInterpreter,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.flink.FlinkInterpreter,org.apache.zeppelin.lens.LensInterpreter,org.apache.zeppelin.ignite.IgniteInterpreter,org.apache.zeppelin.ignite.IgniteSqlInterpreter,org.apache.zeppelin.cassandra.CassandraInterpreter,org.apache.zeppelin.geode.GeodeOqlInterpreter,org.apache.zeppelin.postgresql.PostgreSqlInterpreter,org.apache.zeppelin.kylin.KylinInterpreter,org.apache.zeppelin.elasticsearch.ElasticsearchInterpreter,org.apache.zeppelin.scalding.ScaldingInterpreter", + "zeppelin.ssl": "false", + "zeppelin.notebook.autoInterpreterBinding": "true", + "zeppelin.notebook.homescreen": "", + "zeppelin.notebook.storage": "org.apache.zeppelin.notebook.repo.VFSNotebookRepo", + "zeppelin.interpreter.connect.timeout": "30000", + "zeppelin.anonymous.allowed": "true", + "zeppelin.server.allowed.origins":"*", + "zeppelin.encoding": "UTF-8" + } +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>List all prefix matched key/value pair of configurations</h3> + +<p><table class="table-configuration"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method return all prefix matched key/value pair of configurations on the server.<br/> + Note: For security reason, some pairs would not be shown.</td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/configurations/prefix/[prefix]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response + </td> + <td><pre> +{ + "status": "OK", + "message": "", + "body": { + "zeppelin.ssl.keystore.type": "JKS", + "zeppelin.ssl.truststore.path": "truststore", + "zeppelin.ssl.truststore.type": "JKS", + "zeppelin.ssl.keystore.path": "keystore", + "zeppelin.ssl": "false", + "zeppelin.ssl.client.auth": "false" + } +}</pre> + </td> + </tr> + </table></p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 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> + Propchange: zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html ------------------------------------------------------------------------------ svn:eol-style = native Added: zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html?rev=1751605&view=auto ============================================================================== --- zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html (added) +++ zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html Wed Jul 6 06:25:29 2016 @@ -0,0 +1,379 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Credentials REST API</title> + <meta name="description" content=""> + <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.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/css/bootstrap.css" rel="stylesheet"> + <link href="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/css/style.css?body=1" rel="stylesheet" type="text/css"> + <link href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/assets/themes/zeppelin/bootstrap/js/bootstrap.min.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/docs.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/anchor.min.js"></script> + <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/toc.js"></script> + + <!-- atom & rss feed --> + <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed"> + <link href="/docs/0.7.0-SNAPSHOT/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> + <a class="navbar-brand" href="/docs/0.7.0-SNAPSHOT"> + <img src="/assets/themes/zeppelin/img/zeppelin_logo.png" width="50" alt="I'm zeppelin"> + <span style="vertical-align:middle">Zeppelin</span> + <span style="vertical-align:baseline"><small>0.7.0-SNAPSHOT</small></span> + </a> + </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.0-SNAPSHOT/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.0-SNAPSHOT/install/install.html">Install</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/install/install.html#apache-zeppelin-configuration">Configuration</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/quickstart/explorezeppelinui.html">Explore Zeppelin UI</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/manual/dynamicform.html">Dynamic Form</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/manual/publish.html">Publish your Paragraph</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/install/virtual_machine.html">Zeppelin on Vagrant VM</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/install/upgrade.html">Upgrade Zeppelin Version</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.0-SNAPSHOT/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.0-SNAPSHOT/manual/interpreterinstallation.html">Interpreter Installation</a></li> + <!--<li><a href="/docs/0.7.0-SNAPSHOT/manual/dynamicinterpreterload.html">Dynamic Interpreter Loading</a></li>--> + <li><a href="/docs/0.7.0-SNAPSHOT/manual/dependencymanagement.html">Interpreter Dependency Management</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Available Interpreters</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/alluxio.html">Alluxio</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/cassandra.html">Cassandra</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/elasticsearch.html">Elasticsearch</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/flink.html">Flink</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/geode.html">Geode</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hbase.html">HBase</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hdfs.html">HDFS</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/hive.html">Hive</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/ignite.html">Ignite</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/jdbc.html">JDBC</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/lens.html">Lens</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/livy.html">Livy</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/markdown.html">Markdown</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/python.html">Python</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/postgresql.html">Postgresql, HAWQ</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/r.html">R</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/interpreter/scalding.html">Scalding</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/pleasecontribute.html">Shell</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/displaysystem/basicdisplaysystem.html#text">Text</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/displaysystem/basicdisplaysystem.html#html">Html</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/displaysystem/back-end-angular.html">Angular (backend API)</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/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.0-SNAPSHOT/rest-api/rest-interpreter.html">Interpreter API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-notebook.html">Notebook API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-configuration.html">Configuration API</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html">Credential API</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Security</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/authentication.html">Authentication for NGINX</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html">Shiro Authentication</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html">Notebook Authorization</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/security/interpreter_authorization.html">Interpreter & Data Resource Authorization</a></li> + <li role="separator" class="divider"></li> + <li class="title"><span><b>Contibute</b><span></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/writingzeppelininterpreter.html">Writing Zeppelin Interpreter</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/writingzeppelinapplication.html">Writing Zeppelin Application</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/howtocontribute.html">How to contribute (code)</a></li> + <li><a href="/docs/0.7.0-SNAPSHOT/development/howtocontributewebsite.html">How to contribute (website)</a></li> + </ul> + </li> + </ul> + </nav><!--/.navbar-collapse --> + </div> + </div> + + + <div class="content"> + +<!--<div class="hero-unit Credentials REST API"> + <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. +--> + +<h2>Zeppelin REST API</h2> + +<p>Zeppelin provides several REST APIs for interaction and remote activation of zeppelin functionality.</p> + +<p>All REST APIs are available starting with the following endpoint <code>http://[zeppelin-server]:[zeppelin-port]/api</code>. Note that zeppelin REST APIs receive or return JSON objects, it is recommended for you to install some JSON viewers such as <a href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc">JSONView</a>.</p> + +<p>If you work with Zeppelin and find a need for an additional REST API, please <a href="http://zeppelin.apache.org/community.html">file an issue or send us mail</a>.</p> + +<p><br /></p> + +<h2>Credential REST API List</h2> + +<h3>List Credential information</h3> + +<p><table class="table-credential"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>GET</code> method returns all key/value pairs of credential information on the server.</td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/credential</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td> sample JSON response + </td> + <td> + <pre> +{ + "status": "OK", + "message": "", + "body": { + "userCredentials":{ + "entity1":{ + "username":"user1", + "password":"password1" + }, + "entity2":{ + "username":"user2", + "password":"password2" + } + } + } +}</pre></td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Create an Credential Information</h3> + +<p><table class="table-credential"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>PUT</code> method creates an credential information with new properties.</td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/credential/</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td>Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td>Sample JSON input</td> + <td> + <pre> +{ + "entity": "e1", + "username": "user", + "password": "password" +} + </pre> + </td> + </tr> + <tr> + <td>Sample JSON response</td> + <td> + <pre> +{ + "status": "OK" +} + </pre> + </td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Delete all Credential Information</h3> + +<p><table class="table-credential"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method deletes credential information.</td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/credential</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td>Sample JSON response</td> + <td> + <code>{"status":"OK"}</code> + </td> + </tr> + </table></p> + +<p><br/></p> + +<h3>Delete an Credential entity</h3> + +<p><table class="table-credential"> + <col width="200"> + <tr> + <td>Description</td> + <td>This <code>DELETE</code> method deletes an given credential entity.</td> + </tr> + <tr> + <td>URL</td> + <td><code>http://[zeppelin-server]:[zeppelin-port]/api/credential/[entity]</code></td> + </tr> + <tr> + <td>Success code</td> + <td>200</td> + </tr> + <tr> + <td> Fail code</td> + <td> 500 </td> + </tr> + <tr> + <td>Sample JSON response</td> + <td> + <code>{"status":"OK"}</code> + </td> + </tr> + </table></p> + +<p><br/></p> + + </div> +</div> + + + <hr> + <footer> + <!-- <p>© 2016 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> + Propchange: zeppelin/site/docs/0.7.0-SNAPSHOT/rest-api/rest-credential.html ------------------------------------------------------------------------------ svn:eol-style = native