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 2016/08/24 16:51:54 UTC

svn commit: r1757551 [4/5] - in /zeppelin/site/docs: 0.6.1/ 0.6.1/assets/themes/zeppelin/img/ 0.7.0-SNAPSHOT/ 0.7.0-SNAPSHOT/assets/themes/zeppelin/css/ 0.7.0-SNAPSHOT/assets/themes/zeppelin/img/ 0.7.0-SNAPSHOT/assets/themes/zeppelin/js/ 0.7.0-SNAPSHOT...

Added: zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json?rev=1757551&view=auto
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json (added)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/search_data.json Wed Aug 24 16:51:53 2016
@@ -0,0 +1,602 @@
+{
+  
+  
+
+    "/atom.xml": {
+      "title": "Atom Feed",
+      "content"  : " Apache Zeppelin   2016-08-24T18:41:55+02:00 http://zeppelin.apache.org    The Apache Software Foundation   dev@zeppelin.apache.org  ",
+      "url": " /atom.xml",
+      "group": "",
+      "excerpt": ""
+    }
+    ,
+    
+  
+
+    "/development/howtocontribute.html": {
+      "title": "Contributing to Apache Zeppelin (Code)",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Contributing to Apache Zeppelin ( Code )NOTE : Apache Zeppelin is an Apache2 License Software.Any contributions to Zeppelin (Source code, Documents, Image, Website) means you agree with license all your contributions as Apache2 License.Setting upHere are some tools you will need to build and test Zeppelin.Software Configuration Management ( SCM )Since Zeppelin uses Git for it's SCM system, you need git client installed in y
 our development machine.Integrated Development Environment ( IDE )You are free to use whatever IDE you prefer, or your favorite command line editor.Build ToolsTo build the code, installOracle Java 7Apache MavenGetting the source codeFirst of all, you need Zeppelin source code. The official location of Zeppelin is http://git.apache.org/zeppelin.git.git accessGet the source code on your development machine using git.git clone git://git.apache.org/zeppelin.git zeppelinYou may also want to develop against a specific branch. For example, for branch-0.5.6git clone -b branch-0.5.6 git://git.apache.org/zeppelin.git zeppelinApache Zeppelin follows Fork & Pull as a source control workflow.If you want to not only build Zeppelin but also make any changes, then you need to fork Zeppelin github mirror repository and make a pull request.Buildmvn installTo skip testmvn install -DskipTestsTo build with specific spark / hadoop versionmvn install -Dspark.version=x.x.x -Dhadoop.version=x.x.xFor
  the further Run Zeppelin server in development modecd zeppelin-serverHADOOP_HOME=YOUR_HADOOP_HOME JAVA_HOME=YOUR_JAVA_HOME mvn exec:java -Dexec.mainClass="org.apache.zeppelin.server.ZeppelinServer" -Dexec.args=""Note: Make sure you first run mvn clean install -DskipTests on your zeppelin root directory, otherwise your server build will fail to find the required dependencies in the local repro.or use daemon scriptbin/zeppelin-daemon startServer will be run on http://localhost:8080.Generating Thrift CodeSome portions of the Zeppelin code are generated by Thrift. For most Zeppelin changes, you don't need to worry about this. But if you modify any of the Thrift IDL files (e.g. zeppelin-interpreter/src/main/thrift/*.thrift), then you also need to regenerate these files and submit their updated version as part of your patch.To regenerate the code, install thrift-0.9.2 and change directory into Zeppelin source directory. and then run following c
 ommandthrift -out zeppelin-interpreter/src/main/java/ --gen java zeppelin-interpreter/src/main/thrift/RemoteInterpreterService.thriftWhere to StartYou can find issues for beginner & newbieStay involvedContributors should join the Zeppelin mailing lists.dev@zeppelin.apache.org is for people who want to contribute code to Zeppelin. subscribe, unsubscribe, archivesIf you have any issues, create a ticket in JIRA.",
+      "url": " /development/howtocontribute.html",
+      "group": "development",
+      "excerpt": "How can you contribute to Apache Zeppelin project? This document covers from setting up your develop environment to making a pull request on Github."
+    }
+    ,
+    
+  
+
+    "/development/howtocontributewebsite.html": {
+      "title": "Contributing to Apache Zeppelin (Website)",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Contributing to Apache Zeppelin ( Website )This page will give you an overview of how to build and contribute to the documentation of Apache Zeppelin.The online documentation at zeppelin.apache.org is also generated from the files found here.NOTE : Apache Zeppelin is an Apache2 License Software.Any contributions to Zeppelin (Source code, Documents, Image, Website) means you agree with license all your contributions as Apache2 Licen
 se.Getting the source codeFirst of all, you need Zeppelin source code. The official location of Zeppelin is http://git.apache.org/zeppelin.git.Documentation website is hosted in 'master' branch under /docs/ dir.git accessFirst of all, you need the website source code. The official location of mirror for Zeppelin is http://git.apache.org/zeppelin.git.Get the source code on your development machine using git.git clone git://git.apache.org/zeppelin.gitcd docsApache Zeppelin follows Fork & Pull as a source control workflow.If you want to not only build Zeppelin but also make any changes, then you need to fork Zeppelin github mirror repository and make a pull request.BuildYou'll need to install some prerequisites to build the code. Please check Build documentation section in docs/README.md.Run website in development modeWhile you're modifying website, you might want to see preview of it. Please check Run website section in docs/README.md.Then you&a
 mp;#39;ll be able to access it on http://localhost:4000 with your web browser.Making a Pull RequestWhen you are ready, just make a pull-request.Alternative wayYou can directly edit .md files in /docs/ directory at the web interface of github and make pull-request immediatly.Stay involvedContributors should join the Zeppelin mailing lists.dev@zeppelin.apache.org is for people who want to contribute code to Zeppelin. subscribe, unsubscribe, archivesIf you have any issues, create a ticket in JIRA.",
+      "url": " /development/howtocontributewebsite.html",
+      "group": "development",
+      "excerpt": "How can you contribute to Apache Zeppelin project website? This document covers from building Zeppelin documentation site to making a pull request on Github."
+    }
+    ,
+    
+  
+
+    "/development/writingzeppelinapplication.html": {
+      "title": "Writing a new Application(Experimental)",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Writing a new Application (Experimental)What is Apache Zeppelin ApplicationApache Zeppelin Application is a package that runs on Interpreter process and displays it's output inside of the notebook. While application runs on Interpreter process, it's able to access resources provided by Interpreter through ResourcePool. Output is always rendered by AngularDisplaySystem. Therefore application provides all the possibli
 ties of making interactive graphical application that uses data and processing power of any Interpreter.Make your own ApplicationWriting Application means extending org.apache.zeppelin.helium.Application. You can use your favorite IDE and language while Java class files are packaged into jar. Application class looks like/** * Constructor. Invoked when application is loaded */public Application(ApplicationContext context);/** * Invoked when there're (possible) updates in required resource set. * i.e. invoked after application load and after paragraph finishes. */public abstract void run(ResourceSet args);/** * Invoked before application unload. * Application is automatically unloaded with paragraph/notebook removal */public abstract void unload();You can check example applications under ./zeppelin-examples directory.Development modeIn the development mode, you can run your Application in your IDE as a normal java application and see the result inside of Zeppelin notebook.org.
 apache.zeppelin.interpreter.dev.ZeppelinApplicationDevServer can run Zeppelin Application in development mode.// entry point for development modepublic static void main(String[] args) throws Exception {  // add resources for development mode  LocalResourcePool pool = new LocalResourcePool("dev");  pool.put("date", new Date());  // run application in devlopment mode with given resource  // in this case, Clock.class.getName() will be the application class name    ZeppelinApplicationDevServer devServer = new ZeppelinApplicationDevServer(    Clock.class.getName(), pool.getAll());  // start development mode  devServer.start();  devServer.join();}In the Zeppelin notebook, run %dev run will connect to application running in development mode.Package filePackage file is a json file that provides information about the application.Json file contains the following information{  name : "[organization].[name]",  description : "Descrip
 tion",  artifact : "groupId:artifactId:version",  className : "your.package.name.YourApplicationClass",  resources : [    ["resource.name", ":resource.class.name"],    ["alternative.resource.name", ":alternative.class.name"]  ],  icon : "<i class="icon"></i>"}nameName is a string in [group].[name] format.[group] and [name] allow only [A-Za-z0-9_].Group is normally the name of an organization who creates this application.descriptionA short description about the applicationartifactLocation of the jar artifact."groupId:artifactId:version" will load artifact from maven repository.If jar exists in the local filesystem, absolute/relative can be used.e.g.When artifact exists in Maven repositoryartifact: "org.apache.zeppelin:zeppelin-examples:0.6.0"When artifact exists in the l
 ocal filesystemartifact: "zeppelin-example/target/zeppelin-example-0.6.0.jar"classNameEntry point. Class that extends org.apache.zeppelin.helium.ApplicationresourcesTwo dimensional array that defines required resources by name or by className. Helium Application launcher will compare resources in the ResourcePool with the information in this field and suggest application only when all required resources are available in the ResourcePool.Resouce name is a string which will be compared with the name of objects in the ResourcePool. className is a string with ":" prepended, which will be compared with className of the objects in the ResourcePool.Application may require two or more resources. Required resources can be listed inside of the json array. For example, if the application requires object "name1", "name2" and "className1" type of object to run, resources field can beresources: [  [ &quo
 t;name1", "name2", ":className1", ...]]If Application can handle alternative combination of required resources, alternative set can be listed as below.resources: [  [ "name", ":className"],  [ "altName", ":altClassName1"],  ...]Easier way to understand this scheme isresources: [   [ 'resource' AND 'resource' AND ... ] OR   [ 'resource' AND 'resource' AND ... ] OR   ...]iconIcon to be used on the application button. String in this field will be rendered as a HTML tag.e.g.icon: "<i class='fa fa-clock-o'></i>"",
+      "url": " /development/writingzeppelinapplication.html",
+      "group": "development",
+      "excerpt": "Apache Zeppelin Application is a package that runs on Interpreter process and displays it's output inside of the notebook. Make your own Application in Apache Zeppelin is quite easy."
+    }
+    ,
+    
+  
+
+    "/development/writingzeppelininterpreter.html": {
+      "title": "Writing a New Interpreter",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Writing a New InterpreterWhat is Apache Zeppelin InterpreterApache Zeppelin Interpreter is a language backend. For example to use scala code in Zeppelin, you need a scala interpreter.Every Interpreters belongs to an InterpreterGroup.Interpreters in the same InterpreterGroup can reference each other. For example, SparkSqlInterpreter can reference SparkInterpreter to get SparkContext from it while they're in the same group.In
 terpreterSetting is configuration of a given InterpreterGroup and a unit of start/stop interpreter.All Interpreters in the same InterpreterSetting are launched in a single, separate JVM process. The Interpreter communicates with Zeppelin engine via Thrift.In 'Separate Interpreter(scoped / isolated) for each note' mode which you can see at the Interpreter Setting menu when you create a new interpreter, new interpreter instance will be created per notebook. But it still runs on the same JVM while they're in the same InterpreterSettings.Make your own InterpreterCreating a new interpreter is quite simple. Just extend org.apache.zeppelin.interpreter abstract class and implement some methods.You can include org.apache.zeppelin:zeppelin-interpreter:[VERSION] artifact in your build system. And you should put your jars under your interpreter directory with a specific directory name. Zeppelin server reads interpreter directories recursively and initializes interpreters
  including your own interpreter.There are three locations where you can store your interpreter group, name and other information. Zeppelin server tries to find the location below. Next, Zeppelin tries to find interpreter-setting.json in your interpreter jar. {ZEPPELIN_INTERPRETER_DIR}/{YOUR_OWN_INTERPRETER_DIR}/interpreter-setting.jsonHere is an example of interpreter-setting.json on your own interpreter.[  {    "group": "your-group",    "name": "your-name",    "className": "your.own.interpreter.class",    "properties": {      "properties1": {        "envName": null,        "propertyName": "property.1.name",        "defaultValue": "propertyDefaultValue",        "description": "Property description"      },      &q
 uot;properties2": {        "envName": PROPERTIES_2,        "propertyName": null,        "defaultValue": "property2DefaultValue",        "description": "Property 2 description"      }, ...    }  },  {    ...  } ]Finally, Zeppelin uses static initialization with the following:static {    Interpreter.register("MyInterpreterName", MyClassName.class.getName());  }Static initialization is deprecated and will be supported until 0.6.0.The name will appear later in the interpreter name option box during the interpreter configuration process.The name of the interpreter is what you later write to identify a paragraph which should be interpreted using this interpreter.%MyInterpreterNamesome interpreter specific code...Programming Languages for InterpreterIf the interpreter uses a specific programming language ( like Scala, Python, SQL ), it is generally recommen
 ded to add a syntax highlighting supported for that to the notebook paragraph editor.  To check out the list of languages supported, see the mode-*.js files under zeppelin-web/bower_components/ace-builds/src-noconflict or from github.com/ajaxorg/ace-builds.  If you want to add a new set of syntax highlighting,  Add the mode-*.js file to zeppelin-web/bower.json ( when built, zeppelin-web/src/index.html will be changed automatically. ).Add to the list of editorMode in zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js - it follows the pattern 'ace/mode/x' where x is the name.Add to the code that checks for % prefix and calls session.setMode(editorMode.x) in setParagraphMode located in zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js.Install your interpreter binaryOnce you have built your interpreter, you can place it under the interpreter directory with all its dependencies.[ZEPPELIN_HOME]/interpreter/[INTERPRETER_NAME]/Configure your interp
 reterTo configure your interpreter you need to follow these steps:Add your interpreter class name to the zeppelin.interpreters property in conf/zeppelin-site.xml.Property value is comma separated [INTERPRETER_CLASS_NAME].For example,<property><name>zeppelin.interpreters</name><value>org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.shell.ShellInterpreter,org.apache.zeppelin.hive.HiveInterpreter,com.me.MyNewInterpreter</value></property>Add your interpreter to the default configuration which is used when there is no zeppelin-site.xml.Start Zeppelin by running ./bin/zeppelin-daemon.sh start.In the interpreter page, click the +Create button and configure your interpreter properties.Now you are done and ready to use your int
 erpreter.Note : Interpreters released with zeppelin have a default configuration which is used when there is no conf/zeppelin-site.xml.Use your interpreter0.5.0Inside of a notebook, %[INTERPRETER_NAME] directive will call your interpreter.Note that the first interpreter configuration in zeppelin.interpreters will be the default one.For example,%myintpval a = "My interpreter"println(a)0.6.0 and laterInside of a notebook, %[INTERPRETER_GROUP].[INTERPRETER_NAME] directive will call your interpreter.You can omit either [INTERPRETER_GROUP] or [INTERPRETER_NAME]. If you omit [INTERPRETER_NAME], then first available interpreter will be selected in the [INTERPRETER_GROUP].Likewise, if you skip [INTERPRETER_GROUP], then [INTERPRETER_NAME] will be chosen from default interpreter group.For example, if you have two interpreter myintp1 and myintp2 in group mygrp, you can call myintp1 like%mygrp.myintp1codes for myintp1and you can call myintp2 like%mygrp.myintp2codes for myintp2
 If you omit your interpreter name, it'll select first available interpreter in the group ( myintp1 ).%mygrpcodes for myintp1You can only omit your interpreter group when your interpreter group is selected as a default group.%myintp2codes for myintp2ExamplesCheckout some interpreters released with Zeppelin by default.sparkmarkdownshelljdbcContributing a new Interpreter to Zeppelin releasesWe welcome contribution to a new interpreter. Please follow these few steps:First, check out the general contribution guide here.Follow the steps in Make your own Interpreter section above.Add your interpreter as in the Configure your interpreter section above; also add it to the example template zeppelin-site.xml.template.Add tests! They are run by Travis for all changes and it is important that they are self-contained.Include your interpreter as a module in pom.xml.Add documentation on how to use your interpreter under docs/interpreter/. Follow the Markdown style as this example. Make sure
  you list config settings and provide working examples on using your interpreter in code boxes in Markdown. Link to images as appropriate (images should go to docs/assets/themes/zeppelin/img/docs-img/). And add a link to your documentation in the navigation menu (docs/_includes/themes/zeppelin/_navigation.html).Most importantly, ensure licenses of the transitive closure of all dependencies are list in license file.Commit your changes and open a Pull Request on the project Mirror on GitHub; check to make sure Travis CI build is passing.",
+      "url": " /development/writingzeppelininterpreter.html",
+      "group": "development",
+      "excerpt": "Apache Zeppelin Interpreter is a language backend. Every Interpreters belongs to an InterpreterGroup. Interpreters in the same InterpreterGroup can reference each other."
+    }
+    ,
+    
+  
+
+    "/displaysystem/back-end-angular.html": {
+      "title": "Back-end Angular API in Apache Zeppelin",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Back-end Angular API in Apache ZeppelinOverviewAngular display system treats output as a view template for AngularJS.It compiles templates and displays them inside of Apache Zeppelin. Zeppelin provides a gateway between your interpreter and your compiled AngularJS view templates.Therefore, you can not only update scope variables from your interpreter but also watch them in the interpreter, which is JVM process.Basic UsagePrint Angu
 larJS viewTo use angular display system, you should start with %angular.Since name is not defined, Hello will display Hello.Please Note: Display system is backend independent.Bind / Unbind VariablesThrough ZeppelinContext, you can bind / unbind variables to AngularJS view. Currently, it only works in Spark Interpreter ( scala ).// bind my 'object' as angular scope variable 'name' in current notebook.z.angularBind(String name, Object object)// bind my 'object' as angular scope variable 'name' in all notebooks related to current interpreter.z.angularBindGlobal(String name, Object object)// unbind angular scope variable 'name' in current notebook.z.angularUnbind(String name)// unbind angular scope variable 'name' in all notebooks related to current interpreter.z.angularUnbindGlobal(String name)Using the above example, let's bind world variable to name. Then you can see AngularJs view
  is immediately updated.Watch / Unwatch VariablesThrough ZeppelinContext, you can watch / unwatch variables in AngularJs view. Currently, it only works in Spark Interpreter ( scala ).// register for angular scope variable 'name' (notebook)z.angularWatch(String name, (before, after) => { ... })// unregister watcher for angular variable 'name' (notebook)z.angularUnwatch(String name)// register for angular scope variable 'name' (global)z.angularWatchGlobal(String name, (before, after) => { ... })// unregister watcher for angular variable 'name' (global)z.angularUnwatchGlobal(String name)Let's make a button. When it is clicked, the value of run will be increased 1 by 1.z.angularBind("run", 0) will initialize run to zero. And then, it will be also applied to run in z.angularWatch().When the button is clicked, you'll see both run and numWatched are incremented by 1.Let's
  make it Simpler and more IntuitiveIn this section, we will introduce a simpler and more intuitive way of using Angular Display System in Zeppelin.Here are some usages.Import// In notebook scopeimport org.apache.zeppelin.display.angular.notebookscope._import AngularElem._// In paragraph scopeimport org.apache.zeppelin.display.angular.paragraphscope._import AngularElem._Display Element// automatically convert to string and print with %angular display system directive in front.<div><div>.displayEvent Handler// on click<div></div>.onClick(() => {   my callback routine}).display// on change<div></div>.onChange(() => {  my callback routine}).display// arbitrary event<div></div>.onEvent("ng-click", () => {  my callback routine}).displayBind Model// bind model<div></div>.model("myModel").display/
 / bind model with initial value<div></div>.model("myModel", initialValue).displayInteract with Model// read modelAngularModel("myModel")()// update modelAngularModel("myModel", "newValue")Example: Basic UsageUsing the above basic usages, you can apply them like below examples.Display Elements<div style="color:blue">  <h4>Hello Angular Display System</h4></div>.displayOnClick Event<div class="btn btn-success">  Click me</div>.onClick{() =>  // callback for button click}.displayBind Model  <div>{{{{myModel}}}}</div>.model("myModel", "Initial Value").displayInteract With Model// read the valueAngularModel("myModel")()// update the valueAngularModel("myModel", &
 quot;New value")Example: String ConverterUsing below example, you can convert the lowercase string to uppercase.// clear previously created angular object.AngularElem.disassociateval button = <div class="btn btn-success btn-sm">Convert</div>.onClick{() =>  val inputString = AngularModel("input")().toString  AngularModel("title", inputString.toUpperCase)}<div>  { <h4> {{{{title}}}}</h4>.model("title", "Please type text to convert uppercase") }   Your text { <input type="text"></input>.model("input", "") }  {button}</div>.display",
+      "url": " /displaysystem/back-end-angular.html",
+      "group": "display",
+      "excerpt": "Apache Zeppelin provides a gateway between your interpreter and your compiled AngularJS view templates. You can not only update scope variables from your interpreter but also watch them in the interpreter, which is JVM process."
+    }
+    ,
+    
+  
+
+    "/displaysystem/basicdisplaysystem.html": {
+      "title": "Basic Display System in Apache Zeppelin",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Basic Display System in Apache ZeppelinTextBy default, Apache Zeppelin prints interpreter responce as a plain text using text display system.You can explicitly say you're using text display system.HtmlWith %html directive, Zeppelin treats your output as HTMLTableIf you have data that row seprated by 'n' (newline) and column separated by 't' (tab) with first row as header row, for exampleYou c
 an simply use %table display system to leverage Zeppelin's built in visualization.If table contents start with %html, it is interpreted as an HTML.Note : Display system is backend independent.",
+      "url": " /displaysystem/basicdisplaysystem.html",
+      "group": "display",
+      "excerpt": "There are 3 basic display systems in Apache Zeppelin. By default, Zeppelin prints interpreter responce as a plain text using text display system. With %html directive, Zeppelin treats your output as HTML. You can also simply use %table display system..."
+    }
+    ,
+    
+  
+
+    "/displaysystem/front-end-angular.html": {
+      "title": "Front-end Angular API in Apache Zeppelin",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Front-end Angular API in Apache ZeppelinBasic UsageIn addition to the back-end API to handle Angular objects binding, Apache Zeppelin also exposes a simple AngularJS z object on the front-end side to expose the same capabilities.This z object is accessible in the Angular isolated scope for each paragraph.Bind / Unbind VariablesThrough the z, you can bind / unbind variables to AngularJS view.Bind a value to an angular object and a m
 andatory target paragraph:%angular<form class="form-inline">  <div class="form-group">    <label for="superheroId">Super Hero: </label>    <input type="text" class="form-control" id="superheroId" placeholder="Superhero name ..." ng-model="superhero"></input>  </div>  <button type="submit" class="btn btn-primary" ng-click="z.angularBind('superhero',superhero,'20160222-232336_1472609686')"> Bind</button></form>Unbind/remove a value from angular object and a mandatory target paragraph:%angular<form class="form-inline">  <button type="submit" class="btn btn-p
 rimary" ng-click="z.angularUnbind('superhero','20160222-232336_1472609686')"> UnBind</button></form>The signature for the z.angularBind() / z.angularUnbind() functions are:// Bindz.angularBind(angularObjectName, angularObjectValue, paragraphId);// Unbindz.angularUnbind(angularObjectName, angularObjectValue, paragraphId);All the parameters are mandatory.Run ParagraphYou can also trigger paragraph execution by calling z.runParagraph() function passing the appropriate paragraphId: %angular<form class="form-inline">  <div class="form-group">    <label for="paragraphId">Paragraph Id: </label>    <input type="text" class="form-control" id="paragraphId" placeholder="Paragraph Id ..." ng-model="paragraph
 "></input>  </div>  <button type="submit" class="btn btn-primary" ng-click="z.runParagraph(paragraph)"> Run Paragraph</button></form>Overriding dynamic form with Angular ObjectThe front-end Angular Interaction API has been designed to offer richer form capabilities and variable binding. With the existing Dynamic Form system you can already create input text, select and checkbox forms but the choice is rather limited and the look & feel cannot be changed.The idea is to create a custom form using plain HTML/AngularJS code and bind actions on this form to push/remove Angular variables to targeted paragraphs using this new API. Consequently if you use the Dynamic Form syntax in a paragraph and there is a bound Angular object having the same name as the ${formName}, the Angular object will have higher priority and the Dynamic Form will not be
  displayed. Example: Feature matrix comparisonHow does the front-end AngularJS API compares to the back-end API ? Below is a comparison matrix for both APIs:                        Actions            Front-end API            Back-end API                                Initiate binding            z.angularbind(var, initialValue, paragraphId)            z.angularBind(var, initialValue)                            Update value            same to ordinary angularjs scope variable, or z.angularbind(var, newValue, paragraphId)            z.angularBind(var, newValue)                            Watching value            same to ordinary angularjs scope variable            z.angularWatch(var, (oldVal, newVal) => ...)                            Destroy binding            z.angularUnbind(var, paragraphId)            z.angularUnbind(var)                            Executing Paragraph            z.runParagraph(paragraphId)            z.run(paragraphId)                                          
           Both APIs are pretty similar, except for value watching where it is done naturally by AngularJS internals on the front-end and by user custom watcher functions in the back-end.There is also a slight difference in term of scope. Front-end API limits the Angular object binding to a paragraph scope whereas back-end API allows you to bind an Angular object at the global or note scope. This restriction has been designed purposely to avoid Angular object leaks and scope pollution.",
+      "url": " /displaysystem/front-end-angular.html",
+      "group": "display",
+      "excerpt": "In addition to the back-end API to handle Angular objects binding, Apache Zeppelin exposes a simple AngularJS z object on the front-end side to expose the same capabilities."
+    }
+    ,
+    
+  
+  
+
+    "/install/install.html": {
+      "title": "Quick Start",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Quick StartWelcome to your first trial to explore Apache Zeppelin! This page will help you to get started and here is the list of topics covered.InstallationApache Zeppelin officially supports and is tested on next environments.      Name    Value        Oracle JDK    1.7  (set JAVA_HOME)        OS    Mac OSX  Ubuntu 14.X  CentOS 6.X  Windows 7 Pro SP1  There are two options to install Apache Zeppelin on your machine. One is downlo
 ading pre-built binary package from the archive. You can download not only the latest stable version but also the older one if you need. The other option is building from the source.Although it can be unstable somehow since it is on development status, you can explore newly added feature and change it as you want.Downloading Binary PackageIf you want to install Apache Zeppelin with a stable binary package, please visit Apache Zeppelin download Page. If you have downloaded netinst binary, install additional interpreters before you start Zeppelin. Or simply run ./bin/install-interpreter.sh --all.After unpacking, jump to Starting Apache Zeppelin with Command Line section.Building from SourceIf you want to build from the source, the software below needs to be installed on your system.      Name    Value        Git            Maven    3.1.x or higher  If you don't have it installed yet, please check Before Build section and follow step by step instructions from there.1. Clone Apa
 che Zeppelin repositorygit clone https://github.com/apache/zeppelin.git2. Build source with optionsEach interpreters requires different build options. For the further information about options, please see Build section.mvn clean package -DskipTests [Options]Here are some examples with several options# build with spark-2.0, scala-2.11./dev/change_scala_version.sh 2.11mvn clean package -Pspark-2.0 -Phadoop-2.4 -Pyarn -Ppyspark -Psparkr -Pscala-2.11# build with spark-1.6, scala-2.10mvn clean package -Pspark-1.6 -Phadoop-2.4 -Pyarn -Ppyspark -Psparkr# spark-cassandra integrationmvn clean package -Pcassandra-spark-1.5 -Dhadoop.version=2.6.0 -Phadoop-2.6 -DskipTests# with CDHmvn clean package -Pspark-1.5 -Dhadoop.version=2.6.0-cdh5.5.0 -Phadoop-2.6 -Pvendor-repo -DskipTests# with MapRmvn clean package -Pspark-1.5 -Pmapr50 -DskipTestsFor the further information about building with source, please see README.md in Zeppelin repository.Starting Apache Zeppelin with Command LineStart Zeppelinbi
 n/zeppelin-daemon.sh startIf you are using Windows binzeppelin.cmdAfter successful start, visit http://localhost:8080 with your web browser.Stop Zeppelinbin/zeppelin-daemon.sh stop(Optional) Start Apache Zeppelin with a service managerNote : The below description was written based on Ubuntu Linux.Apache Zeppelin can be auto started as a service with an init script, such as services managed by upstart.The following is an example of upstart script to be saved as /etc/init/zeppelin.confThis also allows the service to be managed with commands such assudo service zeppelin start  sudo service zeppelin stop  sudo service zeppelin restartOther service managers could use a similar approach with the upstart argument passed to the zeppelin-daemon.sh script.bin/zeppelin-daemon.sh upstartzeppelin.confdescription "zeppelin"start on (local-filesystems and net-device-up IFACE!=lo)stop on shutdown# Respawn the process on unexpected terminationrespawn# respawn the job up to 7 times 
 within a 5 second period.# If the job exceeds these values, it will be stopped and marked as failed.respawn limit 7 5# zeppelin was installed in /usr/share/zeppelin in this examplechdir /usr/share/zeppelinexec bin/zeppelin-daemon.sh upstartWhat is the next?Congratulation on your successful Apache Zeppelin installation! Here are two next steps you might need.If you are new to Apache ZeppelinFor an in-depth overview of Apache Zeppelin UI, head to Explore Apache Zeppelin UI.After getting familiar with Apache Zeppelin UI, have fun with a short walk-through Tutorial that uses Apache Spark backend.If you need more configuration setting for Apache Zeppelin, jump to the next section: Apache Zeppelin Configuration.If you need more information about Spark or JDBC interpreter settingApache Zeppelin provides deep integration with Apache Spark. For the further informtation, see Spark Interpreter for Apache Zeppelin. Also, you can use generic JDBC connections in Apache Zeppelin. Go to Generic JDB
 C Interpreter for Apache Zeppelin.If you are in multi-user environmentYou can set permissions for your notebooks and secure data resource in multi-user environment. Go to More -> Security section.Apache Zeppelin ConfigurationYou can configure Apache Zeppelin with both environment variables in conf/zeppelin-env.sh (confzeppelin-env.cmd for Windows) and Java properties in conf/zeppelin-site.xml. If both are defined, then the environment variables will take priority.      zepplin-env.sh    zepplin-site.xml    Default value    Description        ZEPPELIN_PORT    zeppelin.server.port    8080    Zeppelin server port        ZEPPELIN_MEM    N/A    -Xmx1024m -XX:MaxPermSize=512m    JVM mem options        ZEPPELIN_INTP_MEM    N/A    ZEPPELIN_MEM    JVM mem options for interpreter process        ZEPPELIN_JAVA_OPTS    N/A        JVM options        ZEPPELIN_ALLOWED_ORIGINS    zeppelin.server.allowed.origins    *    Enables a way to specify a ',' separated list of allowed origins f
 or rest and websockets.  i.e. http://localhost:8080           N/A    zeppelin.anonymous.allowed    true    Anonymous user is allowed by default.        ZEPPELIN_SERVER_CONTEXT_PATH    zeppelin.server.context.path    /    A context path of the web application        ZEPPELIN_SSL    zeppelin.ssl    false            ZEPPELIN_SSL_CLIENT_AUTH    zeppelin.ssl.client.auth    false            ZEPPELIN_SSL_KEYSTORE_PATH    zeppelin.ssl.keystore.path    keystore            ZEPPELIN_SSL_KEYSTORE_TYPE    zeppelin.ssl.keystore.type    JKS            ZEPPELIN_SSL_KEYSTORE_PASSWORD    zeppelin.ssl.keystore.password                ZEPPELIN_SSL_KEY_MANAGER_PASSWORD    zeppelin.ssl.key.manager.password                ZEPPELIN_SSL_TRUSTSTORE_PATH    zeppelin.ssl.truststore.path                ZEPPELIN_SSL_TRUSTSTORE_TYPE    zeppelin.ssl.truststore.type                ZEPPELIN_SSL_TRUSTSTORE_PASSWORD    zeppelin.ssl.truststore.password                ZEPPELIN_NOTEBOOK_HOMESCREEN    zeppelin.notebook.ho
 mescreen        A notebook id displayed in Apache Zeppelin homescreen i.e. 2A94M5J1Z        ZEPPELIN_NOTEBOOK_HOMESCREEN_HIDE    zeppelin.notebook.homescreen.hide    false    This value can be "true" when to hide the notebook id set by ZEPPELIN_NOTEBOOK_HOMESCREEN on the Apache Zeppelin homescreen. For the further information, please read Customize your Zeppelin homepage.        ZEPPELIN_WAR_TEMPDIR    zeppelin.war.tempdir    webapps    A location of jetty temporary directory        ZEPPELIN_NOTEBOOK_DIR    zeppelin.notebook.dir    notebook    The root directory where notebook directories are saved        ZEPPELIN_NOTEBOOK_S3_BUCKET    zeppelin.notebook.s3.bucket    zeppelin    S3 Bucket where notebook files will be saved        ZEPPELIN_NOTEBOOK_S3_USER    zeppelin.notebook.s3.user    user    A user name of S3 bucketi.e. bucket/user/notebook/2A94M5J1Z/note.json        ZEPPELIN_NOTEBOOK_S3_ENDPOINT    zeppelin.notebook.s3.endpoint    s3.amazonaws.com    Endpoint for the bu
 cket        ZEPPELIN_NOTEBOOK_S3_KMS_KEY_ID    zeppelin.notebook.s3.kmsKeyID        AWS KMS Key ID to use for encrypting data in S3 (optional)        ZEPPELIN_NOTEBOOK_S3_EMP    zeppelin.notebook.s3.encryptionMaterialsProvider        Class name of a custom S3 encryption materials provider implementation to use for encrypting data in S3 (optional)        ZEPPELIN_NOTEBOOK_AZURE_CONNECTION_STRING    zeppelin.notebook.azure.connectionString        The Azure storage account connection stringi.e. DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>        ZEPPELIN_NOTEBOOK_AZURE_SHARE    zeppelin.notebook.azure.share    zeppelin    Share where the notebook files will be saved        ZEPPELIN_NOTEBOOK_AZURE_USER    zeppelin.notebook.azure.user    user    An optional user name of Azure file sharei.e. share/user/notebook/2A94M5J1Z/note.json        ZEPPELIN_NOTEBOOK_STORAGE    zeppelin.notebook.storage    org.apache.zeppelin.notebook.re
 po.VFSNotebookRepo    Comma separated list of notebook storage        ZEPPELIN_NOTEBOOK_ONE_WAY_SYNC    zeppelin.notebook.one.way.sync    false    If there are multiple notebook storages, should we treat the first one as the only source of truth?        ZEPPELIN_INTERPRETERS    zeppelin.interpreters      org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.shell.ShellInterpreter,    ...              Comma separated interpreter configurations [Class]       NOTE: This property is deprecated since Zeppelin-0.6.0 and will not be supported from Zeppelin-0.7.0            ZEPPELIN_INTERPRETER_DIR    zeppelin.interpreter.dir    interpreter    Interpreter directory        ZEPPELIN_WEBSOCKET_MAX_TEXT_MESSAGE_SIZE    zeppelin.websocket.max.text.message.size    1024000    Size in characters of the maximum text message
  to be received by websocket.  ",
+      "url": " /install/install.html",
+      "group": "install",
+      "excerpt": "This page will help you to get started and guide you through installation of Apache Zeppelin, running it in the command line and basic configuration options."
+    }
+    ,
+    
+  
+
+    "/install/spark_cluster_mode.html": {
+      "title": "Apache Zeppelin on Spark cluster mode",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Apache Zeppelin on Spark Cluster ModeOverviewApache Spark has supported three cluster manager types(Standalone, Apache Mesos and Hadoop YARN) so far.This document will guide you how you can build and configure the environment on 3 types of Spark cluster manager with Apache Zeppelin using Docker scripts.So install docker on the machine first.Spark standalone modeSpark standalone is a simple cluster manager included with Spark that m
 akes it easy to set up a cluster.You can simply set up Spark standalone environment with below steps. Note : Since Apache Zeppelin and Spark use same 8080 port for their web UI, you might need to change zeppelin.server.port in conf/zeppelin-site.xml.1. Build Docker fileYou can find docker script files under scripts/docker/spark-cluster-managers.cd $ZEPPELIN_HOME/scripts/docker/spark-cluster-managers/spark_standalonedocker build -t "spark_standalone" .2. Run dockerdocker run -it -p 8080:8080 -p 7077:7077 -p 8888:8888 -p 8081:8081 -h sparkmaster --name spark_standalone spark_standalone bash; 3. Configure Spark interpreter in ZeppelinSet Spark master as spark://localhost:7077 in Zeppelin Interpreters setting page.4. Run Zeppelin with Spark interpreterAfter running single paragraph with Spark interpreter in Zeppelin, browse https://localhost:8080 and check whether Spark cluster is running well or not.You can also simply verify that Spark is running well in Docker with 
 below command.ps -ef | grep spark",
+      "url": " /install/spark_cluster_mode.html",
+      "group": "install",
+      "excerpt": ""
+    }
+    ,
+    
+  
+
+    "/install/upgrade.html": {
+      "title": "Manual Zeppelin version upgrade procedure",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Manual upgrade procedure for ZeppelinBasically, newer version of Zeppelin works with previous version notebook directory and configurations.So, copying notebook and conf directory should be enough.InstructionsStop Zeppelinbin/zeppelin-daemon.sh stopCopy your notebook and conf directory into a backup directoryDownload newer version of Zeppelin and Install. See Install page.Copy backup notebook and conf directory into newer version o
 f Zeppelin notebook and conf directoryStart Zeppelinbin/zeppelin-daemon.sh start",
+      "url": " /install/upgrade.html",
+      "group": "install",
+      "excerpt": "This document will guide you through a procedure of manual upgrade your Apache Zeppelin instance to a newer version. Apache Zeppelin keeps backward compatibility for the notebook file format."
+    }
+    ,
+    
+  
+
+    "/install/virtual_machine.html": {
+      "title": "Apache Zeppelin on Vagrant Virtual Machine",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Apache Zeppelin on Vagrant Virtual MachineOverviewApache Zeppelin distribution includes a script directoryscripts/vagrant/zeppelin-devThis script creates a virtual machine that launches a repeatable, known set of core dependencies required for developing Zeppelin. It can also be used to run an existing Zeppelin build if you don't plan to build from source.For PySpark users, this script includes several helpful Python Librar
 ies.For SparkR users, this script includes several helpful R Libraries.PrerequisitesThis script requires three applications, Ansible, Vagrant and Virtual Box.  All of these applications are freely available as Open Source projects and extremely easy to set up on most operating systems.Create a Zeppelin Ready VMIf you are running Windows and don't yet have python installed, install Python 2.7.x first.Download and Install Vagrant:  Vagrant DownloadsInstall Ansible:  Ansible Python pip installsudo easy_install pipsudo pip install ansibleansible --versionAfter then, please check whether it reports ansible version 1.9.2 or higher.Install Virtual Box: Virtual Box DownloadsType vagrant up  from within the /scripts/vagrant/zeppelin-dev directoryThats it ! You can now run vagrant ssh and this will place you into the guest machines terminal prompt.If you don't wish to build Zeppelin from scratch, run the z-manager installer script while running in the guest VM:curl -fsSL https
 ://raw.githubusercontent.com/NFLabs/z-manager/master/zeppelin-installer.sh | bashBuilding ZeppelinYou can now git clone git://git.apache.org/zeppelin.gitinto a directory on your host machine, or directly in your virtual machine.Cloning Zeppelin into the /scripts/vagrant/zeppelin-dev directory from the host, will allow the directory to be shared between your host and the guest machine.Cloning the project again may seem counter intuitive, since this script likley originated from the project repository.  Consider copying just the vagrant/zeppelin-dev script from the Zeppelin project as a stand alone directory, then once again clone the specific branch you wish to build.Synced folders enable Vagrant to sync a folder on the host machine to the guest machine, allowing you to continue working on your project's files on your host machine, but use the resources in the guest machine to compile or run your project. (1) Synced Folder Description from Vagrant UpBy default, Vagrant will s
 hare your project directory (the directory with the Vagrantfile) to /vagrant.  Which means you should be able to build within the guest machine after youcd /vagrant/zeppelinWhat's in this VM?Running the following commands in the guest machine should display these expected versions:node --version should report v0.12.7mvn --version should report Apache Maven 3.3.9 and Java version: 1.7.0_85The virtual machine consists of:Ubuntu Server 14.04 LTSNode.js 0.12.7npm 2.11.3ruby 1.9.3 + rake, make and bundler (only required if building jekyll documentation)Maven 3.3.9GitUnziplibfontconfig to avoid phatomJs missing dependency issuesopenjdk-7-jdkPython addons: pip, matplotlib, scipy, numpy, pandasR and R Packages required to run the R Interpreter and the related R tutorial notebook, including:  Knitr, devtools, repr, rCharts, ggplot2, googleVis, mplot, htmltools, base64enc, data.tableHow to build & run ZeppelinThis assumes you've already cloned the project either on the
  host machine in the zeppelin-dev directory (to be shared with the guest machine) or cloned directly into a directory while running inside the guest machine.  The following build steps will also include Python and R support via PySpark and SparkR:cd /zeppelinmvn clean package -Pspark-1.6 -Ppyspark -Phadoop-2.4 -Psparkr -DskipTests./bin/zeppelin-daemon.sh startOn your host machine browse to http://localhost:8080/If you turned off port forwarding in the Vagrantfile browse to http://192.168.51.52:8080Tweaking the Virtual MachineIf you plan to run this virtual machine along side other Vagrant images, you may wish to bind the virtual machine to a specific IP address, and not use port fowarding from your local host.Comment out the forward_port line, and uncomment the private_network line in Vagrantfile.  The subnet that works best for your local network will vary so adjust 192.168.*.* accordingly.#config.vm.network "forwarded_port", guest: 8080, host: 8080config.vm.netwo
 rk "private_network", ip: "192.168.51.52"vagrant halt followed by vagrant up will restart the guest machine bound to the IP address of 192.168.51.52.This approach usually is typically required if running other virtual machines that discover each other directly by IP address, such as Spark Masters and Slaves as well as Cassandra Nodes, Elasticsearch Nodes, and other Spark data sources.  You may wish to launch nodes in virtual machines with IP addresses in a subnet that works for your local network, such as: 192.168.51.53, 192.168.51.54, 192.168.51.53, etc..ExtrasPython ExtrasWith Zeppelin running, Numpy, SciPy, Pandas and Matplotlib will be available.  Create a pyspark notebook, and try the below code.%pysparkimport numpyimport scipyimport pandasimport matplotlibprint "numpy " + numpy.__version__print "scipy " + scipy.__version__print "pandas " + pandas.__version__print "matplotlib &amp
 ;quot; + matplotlib.__version__To Test plotting using Matplotlib into a rendered %html SVG image, try%pysparkimport matplotlibmatplotlib.use('Agg')   # turn off interactive charting so this works for server side SVG renderingimport matplotlib.pyplot as pltimport numpy as npimport StringIO# clear out any previous plots on this notebookplt.clf()def show(p):    img = StringIO.StringIO()    p.savefig(img, format='svg')    img.seek(0)    print "%html <div style='width:600px'>" + img.buf + "</div>"# Example datapeople = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')y_pos = np.arange(len(people))performance = 3 + 10 * np.random.rand(len(people))error = np.random.rand(len(people))plt.barh(y_pos, performance, xerr=error, align='center', alpha=0.4)plt.yticks(y_pos, people)plt.xlabel('Per
 formance')plt.title('How fast do you want to go today?')show(plt)R ExtrasWith zeppelin running, an R Tutorial notebook will be available.  The R packages required to run the examples and graphs in this tutorial notebook were installed by this virtual machine.The installed R Packages include: Knitr, devtools, repr, rCharts, ggplot2, googleVis, mplot, htmltools, base64enc, data.table",
+      "url": " /install/virtual_machine.html",
+      "group": "install",
+      "excerpt": "Apache Zeppelin provides a script for running a virtual machine for development through Vagrant. The script will create a virtual machine with core dependencies pre-installed, required for developing Apache Zeppelin."
+    }
+    ,
+    
+  
+
+    "/install/yarn_install.html": {
+      "title": "Install Zeppelin to connect with existing YARN cluster",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->IntroductionThis page describes how to pre-configure a bare metal node, configure Zeppelin and connect it to existing YARN cluster running Hortonworks flavour of Hadoop. It also describes steps to configure Spark interpreter of Zeppelin.Prepare NodeZeppelin user (Optional)This step is optional, however its nice to run Zeppelin under its own user. In case you do not like to use Zeppelin (hope not) the user could be deleted along wit
 h all the packages that were installed for Zeppelin, Zeppelin binary itself and associated directories.Create a zeppelin user and switch to zeppelin user or if zeppelin user is already created then login as zeppelin.useradd zeppelinsu - zeppelinwhoamiAssuming a zeppelin user is created then running whoami command must returnzeppelinIts assumed in the rest of the document that zeppelin user is indeed created and below installation instructions are performed as zeppelin user.List of PrerequisitesCentOS 6.x, Mac OSX, Ubuntu 14.XJava 1.7Hadoop clientSparkInternet connection is required.It's assumed that the node has CentOS 6.x installed on it. Although any version of Linux distribution should work fine.Hadoop clientZeppelin can work with multiple versions & distributions of Hadoop. A complete list is available here. This document assumes Hadoop 2.7.x client libraries including configuration files are installed on Zeppelin node. It also assumes /etc/hadoop/conf contains v
 arious Hadoop configuration files. The location of Hadoop configuration files may vary, hence use appropriate location.hadoop versionHadoop 2.7.1.2.3.1.0-2574Subversion git@github.com:hortonworks/hadoop.git -r f66cf95e2e9367a74b0ec88b2df33458b6cff2d0Compiled by jenkins on 2015-07-25T22:36ZCompiled with protoc 2.5.0From source with checksum 54f9bbb4492f92975e84e390599b881dThis command was run using /usr/hdp/2.3.1.0-2574/hadoop/lib/hadoop-common-2.7.1.2.3.1.0-2574.jarSparkSpark is supported out of the box and to take advantage of this, you need to Download appropriate version of Spark binary packages from Spark Download page and unzip it.Zeppelin can work with multiple versions of Spark. A complete list is available here.This document assumes Spark 1.6.0 is installed at /usr/lib/spark.Note: Spark should be installed on the same node as Zeppelin.Note: Spark's pre-built package for CDH 4 doesn't support yarn.ZeppelinCheckout source code from git://git.apache.org/zeppelin
 .git or download binary package from Download page.You can refer Install page for the details.This document assumes that Zeppelin is located under /home/zeppelin/zeppelin.Zeppelin ConfigurationZeppelin configuration needs to be modified to connect to YARN cluster. Create a copy of zeppelin environment shell script.cp /home/zeppelin/zeppelin/conf/zeppelin-env.sh.template /home/zeppelin/zeppelin/conf/zeppelin-env.shSet the following propertiesexport JAVA_HOME="/usr/java/jdk1.7.0_79"export HADOOP_CONF_DIR="/etc/hadoop/conf"export ZEPPELIN_JAVA_OPTS="-Dhdp.version=2.3.1.0-2574"export SPARK_HOME="/usr/lib/spark"As /etc/hadoop/conf contains various configurations of YARN cluster, Zeppelin can now submit Spark/Hive jobs on YARN cluster form its web interface. The value of hdp.version is set to 2.3.1.0-2574. This can be obtained by running the following commandhdp-select status hadoop-client | sed 's/hadoop-clie
 nt - (.*)/1/'# It returned  2.3.1.0-2574Start/StopStart Zeppelincd /home/zeppelin/zeppelinbin/zeppelin-daemon.sh startAfter successful start, visit http://[zeppelin-server-host-name]:8080 with your web browser.Stop Zeppelinbin/zeppelin-daemon.sh stopInterpreterZeppelin provides various distributed processing frameworks to process data that ranges from Spark, JDBC, Ignite and Lens to name a few. This document describes to configure JDBC & Spark interpreters.HiveZeppelin supports Hive through JDBC interpreter. You might need the information to use Hive and can find in your hive-site.xmlOnce Zeppelin server has started successfully, visit http://[zeppelin-server-host-name]:8080 with your web browser. Click on Interpreter tab next to Notebook dropdown. Look for Hive configurations and set them appropriately. Set them as per Hive installation on YARN cluster.Click on Save button. Once these configurations are updated, Zeppelin will prompt you to restart the interpreter. A
 ccept the prompt and the interpreter will reload the configurations.SparkIt was assumed that 1.6.0 version of Spark is installed at /usr/lib/spark. Look for Spark configurations and click edit button to add the following properties      Property Name    Property Value    Remarks        master    yarn-client    In yarn-client mode, the driver runs in the client process, and the application master is only used for requesting resources from YARN.        spark.driver.extraJavaOptions    -Dhdp.version=2.3.1.0-2574            spark.yarn.am.extraJavaOptions    -Dhdp.version=2.3.1.0-2574      Click on Save button. Once these configurations are updated, Zeppelin will prompt you to restart the interpreter. Accept the prompt and the interpreter will reload the configurations.Spark & Hive notebooks can be written with Zeppelin now. The resulting Spark & Hive jobs will run on configured YARN cluster.DebugZeppelin does not emit any kind of error messages on web interface when note
 book/paragraph is run. If a paragraph fails it only displays ERROR. The reason for failure needs to be looked into log files which is present in logs directory under zeppelin installation base directory. Zeppelin creates a log file for each kind of interpreter.[zeppelin@zeppelin-3529 logs]$ pwd/home/zeppelin/zeppelin/logs[zeppelin@zeppelin-3529 logs]$ ls -ltotal 844-rw-rw-r-- 1 zeppelin zeppelin  14648 Aug  3 14:45 zeppelin-interpreter-hive-zeppelin-zeppelin-3529.log-rw-rw-r-- 1 zeppelin zeppelin 625050 Aug  3 16:05 zeppelin-interpreter-spark-zeppelin-zeppelin-3529.log-rw-rw-r-- 1 zeppelin zeppelin 200394 Aug  3 21:15 zeppelin-zeppelin-zeppelin-3529.log-rw-rw-r-- 1 zeppelin zeppelin  16162 Aug  3 14:03 zeppelin-zeppelin-zeppelin-3529.out[zeppelin@zeppelin-3529 logs]$",
+      "url": " /install/yarn_install.html",
+      "group": "install",
+      "excerpt": "This page describes how to pre-configure a bare metal node, configure Apache Zeppelin and connect it to existing YARN cluster running Hortonworks flavour of Hadoop."
+    }
+    ,
+    
+  
+
+    "/interpreter/alluxio.html": {
+      "title": "Alluxio Interpreter for Apache Zeppelin",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->Alluxio Interpreter for Apache ZeppelinOverviewAlluxio is a memory-centric distributed storage system enabling reliable data sharing at memory-speed across cluster frameworks.Configuration      Name    Class    Description        alluxio.master.hostname    localhost    Alluxio master hostname        alluxio.master.port    19998    Alluxio master port  Enabling Alluxio InterpreterIn a notebook, to enable the Alluxio interpreter, cli
 ck on the Gear icon and select Alluxio.Using the Alluxio InterpreterIn a paragraph, use %alluxio to select the Alluxio interpreter and then input all commands.%alluxiohelpTip : Use ( Ctrl + . ) for autocompletion.Interpreter CommandsThe Alluxio interpreter accepts the following commands.            Operation      Syntax      Description              cat      cat "path"      Print the content of the file to the console.              chgrp      chgrp "group" "path"      Change the group of the directory or file.              chmod      chmod "permission" "path"      Change the permission of the directory or file.              chown      chown "owner" "path"      Change the owner of the directory or file.              copyFromLocal      copyFromLocal "source path" "remote path"      Copy the specified file specified by &qu
 ot;source path" to the path specified by "remote path".      This command will fail if "remote path" already exists.              copyToLocal      copyToLocal "remote path" "local path"      Copy the specified file from the path specified by "remote path" to a local destination.              count      count "path"      Display the number of folders and files matching the specified prefix in "path".              du      du "path"      Display the size of a file or a directory specified by the input path.              fileInfo      fileInfo "path"      Print the information of the blocks of a specified file.              free      free "path"      Free a file or all files under a directory from Alluxio. If the file/directory is also      in under storage, it will still be available there.          
     getCapacityBytes      getCapacityBytes      Get the capacity of the AlluxioFS.              getUsedBytes      getUsedBytes      Get number of bytes used in the AlluxioFS.              load      load "path"      Load the data of a file or a directory from under storage into Alluxio.              loadMetadata      loadMetadata "path"      Load the metadata of a file or a directory from under storage into Alluxio.              location      location "path"      Display a list of hosts that have the file data.              ls      ls "path"      List all the files and directories directly under the given path with information such as      size.              mkdir      mkdir "path1" ... "pathn"      Create directory(ies) under the given paths, along with any necessary parent directories.      Multiple paths separated by spaces or tabs. This command will fail if any of the given
  paths      already exist.              mount      mount "path" "uri"      Mount the underlying file system path "uri" into the Alluxio namespace as "path". The "path"      is assumed not to exist and is created by the operation. No data or metadata is loaded from under      storage into Alluxio. After a path is mounted, operations on objects under the mounted path are      mirror to the mounted under storage.              mv      mv "source" "destination"      Move a file or directory specified by "source" to a new location "destination". This command      will fail if "destination" already exists.              persist      persist "path"      Persist a file or directory currently stored only in Alluxio to the underlying file system.              pin      pin "path"    
   Pin the given file to avoid evicting it from memory. If the given path is a directory, it      recursively pins all the files contained and any new files created within this directory.              report      report "path"      Report to the master that a file is lost.              rm      rm "path"      Remove a file. This command will fail if the given path is a directory rather than a file.              setTtl      setTtl "time"      Set the TTL (time to live) in milliseconds to a file.              tail      tail "path"      Print the last 1KB of the specified file to the console.              touch      touch "path"      Create a 0-byte file at the specified location.              unmount      unmount "path"      Unmount the underlying file system path mounted in the Alluxio namespace as "path". Alluxio      objects under "path" are 
 removed from Alluxio, but they still exist in the previously mounted      under storage.              unpin      unpin "path"      Unpin the given file to allow Alluxio to evict this file again. If the given path is a      directory, it recursively unpins all files contained and any new files created within this      directory.              unsetTtl      unsetTtl      Remove the TTL (time to live) setting from a file.      How to test it's workingBe sure to have configured correctly the Alluxio interpreter, then open a new paragraph and type one of the above commands.Below a simple example to show how to interact with Alluxio interpreter.Following steps are performed:using sh interpreter a new text file is created on local machineusing Alluxio interpreter:is listed the content of the afs (Alluxio File System) rootthe file previously created is copied to afsis listed again the content of the afs root to check the existence of the new copied fileis showed the
  content of the copied file (using the tail command)the file previously copied to afs is copied to local machine using sh interpreter it's checked the existence of the new file copied from Alluxio and its content is showed  ",
+      "url": " /interpreter/alluxio.html",
+      "group": "interpreter",
+      "excerpt": "Alluxio is a memory-centric distributed storage system enabling reliable data sharing at memory-speed across cluster frameworks."
+    }
+    ,
+    
+  
+
+    "/interpreter/bigquery.html": {
+      "title": "BigQuery Interpreter for Apache Zeppelin",
+      "content"  : "<!--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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.-->BigQuery Interpreter for Apache ZeppelinOverviewBigQuery is a highly scalable no-ops data warehouse in the Google Cloud Platform. Querying massive datasets can be time consuming and expensive without the right hardware and infrastructure. Google BigQuery solves this problem by enabling super-fast SQL queries against append-only tables using the processing power of Google's infrastructure. Simply move your data into BigQuery
  and let us handle the hard work. You can control access to both the project and your data based on your business needs, such as giving others the ability to view or query your data.  Configuration      Name    Default Value    Description        zeppelin.bigquery.project_id          Google Project Id        zeppelin.bigquery.wait_time    5000    Query Timeout in Milliseconds        zeppelin.bigquery.max_no_of_rows    100000    Max result set size  BigQuery APIZeppelin is built against BigQuery API version v2-rev265-1.21.0 - API JavadocsEnabling the BigQuery InterpreterIn a notebook, to enable the BigQuery interpreter, click the Gear icon and select bigquery.Setup service account credentialsIn order to run BigQuery interpreter outside of Google Cloud Engine you need to provide authentication credentials,by following this instructions:Go to the API Console Credentials pageFrom the project drop-down, select your project.On the Credentials page, select the Create credentials drop-down,
  then select Service account key.From the Service account drop-down, select an existing service account or create a new one.For Key type, select the JSON key option, then select Create. The file automatically downloads to your computer.Put the *.json file you just downloaded in a directory of your choosing. This directory must be private (you can't let anyone get access to this), but accessible to your Zeppelin instance.Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file downloaded.either though GUI: in interpreter configuration page property names in CAPITAL_CASE set up env varsor though zeppelin-env.sh: just add it to the end of the file.Using the BigQuery InterpreterIn a paragraph, use %bigquery.sql to select the BigQuery interpreter and then input SQL statements against your datasets stored in BigQuery.You can use BigQuery SQL Reference to build your own SQL.For Example, SQL to query for top 10 departure delays across airports using t
 he flights public dataset%bigquery.sqlSELECT departure_airport,count(case when departure_delay>0 then 1 else 0 end) as no_of_delays FROM [bigquery-samples:airline_ontime_data.flights] group by departure_airport order by 2 desc limit 10Another Example, SQL to query for most commonly used java packages from the github data hosted in BigQuery %bigquery.sqlSELECT  package,  COUNT(*) countFROM (  SELECT    REGEXP_EXTRACT(line, r' ([a-z0-9._]*).') package,    id  FROM (    SELECT      SPLIT(content, 'n') line,      id    FROM      [bigquery-public-data:github_repos.sample_contents]    WHERE      content CONTAINS 'import'      AND sample_path LIKE '%.java'    HAVING      LEFT(line, 6)='import' )  GROUP BY    package,    id )GROUP BY  1ORDER BY  count DESCLIMIT  40Technical descriptionFor in-depth technical details on current implementation please refer to bigquery/README.md.",
+      "url": " /interpreter/bigquery.html",
+      "group": "interpreter",
+      "excerpt": "BigQuery is a highly scalable no-ops data warehouse in the Google Cloud Platform."
+    }
+    ,
+    
+  
+
+    "/interpreter/cassandra.html": {
+      "title": "Cassandra CQL Interpreter for Apache Zeppelin",

[... 431 lines stripped ...]
Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/security/authentication.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/security/authentication.html?rev=1757551&r1=1757550&r2=1757551&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/security/authentication.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/security/authentication.html Wed Aug 24 16:51:53 2016
@@ -3,8 +3,8 @@
 <html lang="en">
   <head>
     <meta charset="utf-8">
-    <title>Authentication for NGINX</title>
-    <meta name="description" content="Authentication for NGINX">
+    <title>Apache Zeppelin 0.7.0-SNAPSHOT Documentation: Authentication for NGINX</title>
+    <meta name="description" content="There are multiple ways to enable authentication in Apache Zeppelin. This page describes HTTP basic auth using NGINX.">
     <meta name="author" content="The Apache Software Foundation">
 
     <!-- Enable responsive viewport -->
@@ -35,6 +35,8 @@
     <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>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/lunr.min.js"></script>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/search.js"></script>    
 
     <!-- atom & rss feed -->
     <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
@@ -159,10 +161,17 @@
               </ul>
             </li>
           </ul>
+          <ul class="nav navbar-nav">
+            <li>
+              <a href="/docs/0.7.0-SNAPSHOT/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">
@@ -192,7 +201,7 @@ limitations under the License.
 
 <div id="toc"></div>
 
-<p>Authentication is company-specific.
+<p>There are multiple ways to enable authentication in Apache Zeppelin. This page describes HTTP basic auth using NGINX.
 One option is to use <a href="https://en.wikipedia.org/wiki/Basic_access_authentication">Basic Access Authentication</a>.</p>
 
 <h2>HTTP Basic Authentication using NGINX</h2>

Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/security/datasource_authorization.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/security/datasource_authorization.html?rev=1757551&r1=1757550&r2=1757551&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/security/datasource_authorization.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/security/datasource_authorization.html Wed Aug 24 16:51:53 2016
@@ -3,8 +3,8 @@
 <html lang="en">
   <head>
     <meta charset="utf-8">
-    <title>Data Source Authorization</title>
-    <meta name="description" content="Data Source Authorization">
+    <title>Apache Zeppelin 0.7.0-SNAPSHOT Documentation: Data Source Authorization in Apache Zeppelin</title>
+    <meta name="description" content="Apache Zeppelin supports protected data sources. In case of a MySql database, every users can set up their own credentials to access it.">
     <meta name="author" content="The Apache Software Foundation">
 
     <!-- Enable responsive viewport -->
@@ -35,6 +35,8 @@
     <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>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/lunr.min.js"></script>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/search.js"></script>    
 
     <!-- atom & rss feed -->
     <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
@@ -159,15 +161,22 @@
               </ul>
             </li>
           </ul>
+          <ul class="nav navbar-nav">
+            <li>
+              <a href="/docs/0.7.0-SNAPSHOT/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 Data Source Authorization">
+<!--<div class="hero-unit Data Source Authorization in Apache Zeppelin">
   <h1></h1>
 </div>
 -->

Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html?rev=1757551&r1=1757550&r2=1757551&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/security/notebook_authorization.html Wed Aug 24 16:51:53 2016
@@ -3,8 +3,8 @@
 <html lang="en">
   <head>
     <meta charset="utf-8">
-    <title>Notebook Authorization</title>
-    <meta name="description" content="Notebook Authorization">
+    <title>Apache Zeppelin 0.7.0-SNAPSHOT Documentation: Notebook Authorization in Apache Zeppelin</title>
+    <meta name="description" content="This page will guide you how you can set the permission for Zeppelin notebooks. This document assumes that Apache Shiro authentication was set up.">
     <meta name="author" content="The Apache Software Foundation">
 
     <!-- Enable responsive viewport -->
@@ -35,6 +35,8 @@
     <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>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/lunr.min.js"></script>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/search.js"></script>    
 
     <!-- atom & rss feed -->
     <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
@@ -159,15 +161,22 @@
               </ul>
             </li>
           </ul>
+          <ul class="nav navbar-nav">
+            <li>
+              <a href="/docs/0.7.0-SNAPSHOT/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 Notebook Authorization">
+<!--<div class="hero-unit Notebook Authorization in Apache Zeppelin">
   <h1></h1>
 </div>
 -->

Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html?rev=1757551&r1=1757550&r2=1757551&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/security/shiroauthentication.html Wed Aug 24 16:51:53 2016
@@ -3,8 +3,8 @@
 <html lang="en">
   <head>
     <meta charset="utf-8">
-    <title>Shiro Security for Apache Zeppelin</title>
-    <meta name="description" content="">
+    <title>Apache Zeppelin 0.7.0-SNAPSHOT Documentation: Apache Shiro Authentication for Apache Zeppelin</title>
+    <meta name="description" content="Apache Shiro is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. This document explains step by step how Shiro can be used for Zeppelin notebook authentication.">
     <meta name="author" content="The Apache Software Foundation">
 
     <!-- Enable responsive viewport -->
@@ -35,6 +35,8 @@
     <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>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/lunr.min.js"></script>
+    <script src="/docs/0.7.0-SNAPSHOT/assets/themes/zeppelin/js/search.js"></script>    
 
     <!-- atom & rss feed -->
     <link href="/docs/0.7.0-SNAPSHOT/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
@@ -159,15 +161,22 @@
               </ul>
             </li>
           </ul>
+          <ul class="nav navbar-nav">
+            <li>
+              <a href="/docs/0.7.0-SNAPSHOT/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 Shiro Security for Apache Zeppelin">
+<!--<div class="hero-unit Apache Shiro Authentication for Apache Zeppelin">
   <h1></h1>
 </div>
 -->
@@ -188,7 +197,7 @@ See the License for the specific languag
 limitations under the License.
 -->
 
-<h1>Shiro authentication for Apache Zeppelin</h1>
+<h1>Apache Shiro authentication for Apache Zeppelin</h1>
 
 <div id="toc"></div>
 

Modified: zeppelin/site/docs/0.7.0-SNAPSHOT/sitemap.txt
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.7.0-SNAPSHOT/sitemap.txt?rev=1757551&r1=1757550&r2=1757551&view=diff
==============================================================================
--- zeppelin/site/docs/0.7.0-SNAPSHOT/sitemap.txt (original)
+++ zeppelin/site/docs/0.7.0-SNAPSHOT/sitemap.txt Wed Aug 24 16:51:53 2016
@@ -1,4 +1,5 @@
 
+http://zeppelin.apache.org/assets/themes/zeppelin/js/search.js
 http://zeppelin.apache.org/atom.xml
 http://zeppelin.apache.org/development/howtocontribute.html
 http://zeppelin.apache.org/development/howtocontributewebsite.html
@@ -49,6 +50,8 @@ http://zeppelin.apache.org/rest-api/rest
 http://zeppelin.apache.org/rest-api/rest-notebook.html
 http://zeppelin.apache.org/rss.xml
 http://zeppelin.apache.org/screenshots.html
+http://zeppelin.apache.org/search.html
+http://zeppelin.apache.org/search_data.json
 http://zeppelin.apache.org/security/authentication.html
 http://zeppelin.apache.org/security/datasource_authorization.html
 http://zeppelin.apache.org/security/notebook_authorization.html