Update description around interpreter according to change https://github.com/NFLabs/zeppelin/pull/364
Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/3bfa5dd8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/3bfa5dd8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/3bfa5dd8 Branch: refs/heads/gh-pages Commit: 3bfa5dd81f47cab5027bcd4d019ca38521609ad7 Parents: 9501579 Author: Lee moon soo <[email protected]> Authored: Sat Mar 7 22:54:15 2015 +0900 Committer: Lee moon soo <[email protected]> Committed: Sat Mar 7 22:54:15 2015 +0900 ---------------------------------------------------------------------- assets/themes/zeppelin/img/interpreter.png | Bin 0 -> 36035 bytes docs/development/howtocontribute.md | 13 +++++++++++++ docs/development/writingzeppelininterpreter.md | 9 +++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/3bfa5dd8/assets/themes/zeppelin/img/interpreter.png ---------------------------------------------------------------------- diff --git a/assets/themes/zeppelin/img/interpreter.png b/assets/themes/zeppelin/img/interpreter.png new file mode 100644 index 0000000..28d92f6 Binary files /dev/null and b/assets/themes/zeppelin/img/interpreter.png differ http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/3bfa5dd8/docs/development/howtocontribute.md ---------------------------------------------------------------------- diff --git a/docs/development/howtocontribute.md b/docs/development/howtocontribute.md index 3959aba..417eb5a 100644 --- a/docs/development/howtocontribute.md +++ b/docs/development/howtocontribute.md @@ -86,6 +86,19 @@ bin/zeppelin-daemon start Server will be run on http://localhost:8080 + +### Generating Thrift Code + +Some portions of the Zeppelin code are generated by [Thrift](http://thrift.apache.org). 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.0 and change directory into Zeppelin source directory. and then run following command + + +``` +thrift -out zeppelin-interpreter/src/main/java/ --gen java zeppelin-interpreter/src/main/thrift/RemoteInterpreterService.thrift +``` + + ### JIRA Zeppelin manages it's issues in Jira. [https://issues.apache.org/jira/browse/ZEPPELIN](https://issues.apache.org/jira/browse/ZEPPELIN) http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/3bfa5dd8/docs/development/writingzeppelininterpreter.md ---------------------------------------------------------------------- diff --git a/docs/development/writingzeppelininterpreter.md b/docs/development/writingzeppelininterpreter.md index d427edb..c4d718b 100644 --- a/docs/development/writingzeppelininterpreter.md +++ b/docs/development/writingzeppelininterpreter.md @@ -9,13 +9,18 @@ group: development ### What is Zeppelin Interpreter Zeppelin Interpreter is language backend. For example to use scala code in Zeppelin, you need scala interpreter. +Every Interpreter's are belongs to InterpreterGroup. InterpreterGroup is unit of start/stop interpreter. +Interpreters in the same InterpreterGroup can reference each other. For example, SparkSqlInterpreter can refernece SparkInterpreter to get SparkContext from it while they're in the same group. +<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 cause 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. ### Make your own Interpreter -Creating a new interpreter is quite simple. Just implementing [com.nflabs.zeppelin.interpreter](https://github.com/NFLabs/zeppelin/blob/master/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/interpreter/Interpreter.java) interface. +Creating a new interpreter is quite simple. Just extends [com.nflabs.zeppelin.interpreter](https://github.com/NFLabs/zeppelin/blob/master/zeppelin-interpreter/src/main/java/com/nflabs/zeppelin/interpreter/Interpreter.java) abstract class and implement some methods. -You can include com.nflabs.zeppelin:zeppelin-zengine:[VERSION] artifact in your build system. +You can include com.nflabs.zeppelin:zeppelin-interpreter:[VERSION] artifact in your build system. ### Install your interpreter binary
