Repository: incubator-zeppelin Updated Branches: refs/heads/gh-pages b375526ea -> f8a119da9
updates to make your own interpreter I have updated the language in the "What is Zeppelin Interpreter" as the separate JVM process is the default. Also updated the "Make your own Interpreter" and "Configure your interpreter" to better explain the process. Author: cto <[email protected]> Closes #155 from goi/gh-pages and squashes the following commits: 4338310 [cto] update wording about separete jvm process and add note about name of the interpreter 5614606 [cto] change wording about default configuration for zeppelin interpreters a121857 [cto] updates to make your own interpreter Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/f8a119da Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/f8a119da Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/f8a119da Branch: refs/heads/gh-pages Commit: f8a119da9343458068c8bc9ce8ea26fa02ed785f Parents: b375526 Author: cto <[email protected]> Authored: Thu Jul 16 10:25:16 2015 +0300 Committer: Lee moon soo <[email protected]> Committed: Fri Jul 17 09:34:42 2015 -0700 ---------------------------------------------------------------------- docs/development/writingzeppelininterpreter.md | 44 ++++++++++++++++----- 1 file changed, 35 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/f8a119da/docs/development/writingzeppelininterpreter.md ---------------------------------------------------------------------- diff --git a/docs/development/writingzeppelininterpreter.md b/docs/development/writingzeppelininterpreter.md index 4e185ee..95ca5ab 100644 --- a/docs/development/writingzeppelininterpreter.md +++ b/docs/development/writingzeppelininterpreter.md @@ -14,7 +14,7 @@ Interpreters in the same InterpreterGroup can reference each other. For example, <img class="img-responsive" style="width:50%; border: 1px solid #ecf0f1;" height="auto" src="../../assets/themes/zeppelin/img/interpreter.png" /> -Interpreter can be launched either using separate classloader or separate JVM process. Sometimes separate classloader causes problem especially when your interpreter uses reflections or trying to grab standard out/err. In this case, separate JVM process is the option you can select. (by checking 'fork' in Interpreter menu, which is default value) When Interpreter is running in separate JVM process, it's communicating with Zeppelin via thrift. +All Interpreters in the same interpreter group are launched in a single, separate JVM process. The Interpreter communicates with Zeppelin engine via thrift. ### Make your own Interpreter @@ -22,6 +22,22 @@ Creating a new interpreter is quite simple. Just extend [org.apache.zeppelin.int You can include org.apache.zeppelin:zeppelin-interpreter:[VERSION] artifact in your build system. +Your interpreter name is derived from the static register method + +``` +static { + Interpreter.register("MyInterpreterName", MyClassName.class.getName()); + } +``` + +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. + +``` +%MyInterpreterName +some interpreter spesific code... +``` ### Install your interpreter binary Once you have build your interpreter, you can place your interpreter under directory with all the dependencies. @@ -32,17 +48,27 @@ Once you have build your interpreter, you can place your interpreter under direc ### Configure your interpreter -You can configure zeppelin.interpreters property in conf/zeppelin-site.xml -Property value is comma separated [INTERPRETER_CLASS_NAME] +To configure your interpreter you need to follow these steps: -for example, +1. create conf/zeppelin-site.xml by copying conf/zeppelin-site.xml.template to conf/zeppelin-site.xml -``` +2. 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> ``` +3. start zeppelin by running ```./bin/zeppelin-deamon start``` + +4. in the interpreter page, click the +Create button and configure your interpreter properties. +Now you are done and ready to use your interpreter. + +Note that the interpreters shipped with zeppelin have a [default configuration](https://github.com/apache/incubator-zeppelin/blob/master/zeppelin-zengine/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java#L397) which is used when there is no zeppelin-site.xml. ### Use your interpreter @@ -61,11 +87,11 @@ println(a) <br /> #### 0.6.0 and later -Inside of a noteobok, %[INTERPRETER\_GROUP].[INTERPRETER\_NAME] directive will call your interpreter. +Inside of a notebook, %[INTERPRETER\_GROUP].[INTERPRETER\_NAME] directive will call your interpreter. Note that the first interpreter configuration in zeppelin.interpreters will be the default one. You can omit either [INTERPRETER\_GROUP] or [INTERPRETER\_NAME]. Omit [INTERPRETER\_NAME] selects first available interpreter in the [INTERPRETER\_GROUP]. -Omit '[INTERPRETER\_GROUP]' will selects [INTERPRETER\_NAME] from defualt interpreter group. +Omit '[INTERPRETER\_GROUP]' will selects [INTERPRETER\_NAME] from default interpreter group. For example, if you have two interpreter myintp1 and myintp2 in group mygrp, @@ -86,7 +112,7 @@ and you can call myintp2 like codes for myintp2 ``` -If you ommit your interpreter name, it'll selects first available interpreter in the group (myintp1) +If you omit your interpreter name, it'll selects first available interpreter in the group (myintp1) ``` %mygrp @@ -95,7 +121,7 @@ codes for myintp1 ``` -You can only ommit your interpreter group when your interpreter group is selected as a default group. +You can only omit your interpreter group when your interpreter group is selected as a default group. ``` %myintp2
