<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Writing a New Interpreter ( 寫一個新的解釋器 ) 原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/development/writingzeppelininterpreter.html](http://zeppelin.apache.org/docs/0.7.2/development/writingzeppelininterpreter.html) 譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030728](http://www.apache.wiki/pages/viewpage.action?pageId=10030728) 貢獻者 : [小瑤](/display/~chenyao) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina) ## 什么是 Apache Zeppelin?Interpreter **Apache Zeppelin Interpreter**?是一種語言后端。例如,在?**Zeppelin**?中使用?**scala**?代碼,您需要一個?**scala**?解釋器。每個解釋器都屬于一個解釋器組。相同的解釋器中的解釋器可以互相引用。例如,**SparkSqlInterpreter**?可以引用?**SparkInterpreter**?,以便在它們在同一個組中時從其獲取**SparkContext**?。 ![](https://img.kancloud.cn/43/9d/439db3d80402bf8b59c3fccfec5380ca_566x352.jpg) [**InterpreterSetting**?](https://github.com/apache/zeppelin/blob/master/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java)是給定的**[?InterpreterGroup](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterGroup.java)**?和一個啟動/停止解釋器的單元的配置。同一個?**InterpreterSetting**?中的所有解釋器都在單獨的?**JVM**?進程中啟動。解釋器通過?[**Thrift**?](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/thrift/RemoteInterpreterService.thrift)與?**Zeppelin engine**?通信。 在創建新的解釋器時,您可以在 “解釋器設置” 菜單中看到“每個音符”模式的“單獨的解釋器(范圍/隔離)”,每個音符將創建新的解釋器實例。但是它們在同一個?**InterpreterSettings**?中仍然運行在同一個?**JVM**?上。 ## 制作你自己的 Interpreter 創建一個新的?**interpreter**?是非常簡單的。只需擴展?[**org.apache.zeppelin.interpreter**?](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java)抽象類并實現一些方法。您可以在構建系統中包含?**org.apache.zeppelin:zeppelin-interpreter:[VERSION]?artifact**。您應該將您的 jar 放在您的解釋器目錄下,并具有特定的目錄名稱。?**Zeppelin**?服務器遞歸地讀取解釋器目錄,并初始化包括您自己的解釋器在內的?**interpreter**?。 有三個位置可以存儲您的?**interpreter group**,**name**?和 其他信息。?**Zeppelin**?服務器嘗試找到以下位置。接下來,?**Zeppelin**?嘗試在您的解釋器?**jar**?中找到**?interpreter-setting.json**。 ``` {ZEPPELIN_INTERPRETER_DIR}/{YOUR_OWN_INTERPRETER_DIR}/interpreter-setting.json ``` 以下是您自己的?**interpreter**?上的?**interpreter-setting.json**?的例子。 ``` [ { "group": "your-group", "name": "your-name", "className": "your.own.interpreter.class", "properties": { "properties1": { "envName": null, "propertyName": "property.1.name", "defaultValue": "propertyDefaultValue", "description": "Property description" }, "properties2": { "envName": PROPERTIES_2, "propertyName": null, "defaultValue": "property2DefaultValue", "description": "Property 2 description" }, ... }, "editor": { "language": "your-syntax-highlight-language", "editOnDblClick": false } }, { ... } ] ``` 最后,?**Zeppelin**?使用以下靜態初始化: ``` static { Interpreter.register("MyInterpreterName", MyClassName.class.getName()); } ``` **靜態初始化已被棄用,直到 0.6.0 才會被支持。** 在解釋器配置過程中,名稱將會稍后出現在解釋器名稱選項框中。解釋器的名字是您以后寫的,以確定應使用此解釋器解釋的段落。 ``` %MyInterpreterName some interpreter specific code... ``` ## Editor setting for Interpreter ( 解釋器的編輯器設置 ) 您可以將編輯器對象添加到**?interpreter-setting.json**?文件中以指定段落編輯器設置。 ### Language ( 語言 ) 如果解釋器使用特定的編程語言(如 Scala , Python , SQL ),則通常建議將語法突出顯示添加到注釋段落編輯器中。 要查看支持的語言列表,請參閱?**zeppelin-web / bower_components / ace-builds / src-noconflict**?或?[**github.com/ajaxorg/ace-builds**?](https://github.com/ajaxorg/ace-builds/tree/master/src-noconflict)下的?**model?- *.js**?文件。 如果要添加一組新的語法高亮: 1. 將?**model-*.js**?文件添加到**?zeppelin-web / bower.json**?(當內置時,?**zeppelin-web / src / index.html**?將自動更改)。 將語言字段添加到編輯對象。請注意,如果您不指定語言字段,則您的解釋器將使用純文本模式進行語法突出顯示。假設您要將語言設置為?**java**?,然后添加: ``` "editor": { "language": "java" } ``` ### Edit on double click ( 雙擊編輯 ) 如果您的解釋器使用標記語言(如?**markdown**?或?**HTML**?),請將?**editOnDblClick**?設置為?**true**?,以便文本編輯器在對話框上雙擊并在段落運行中關閉。否則將其設置為?**false**?。 ``` "editor": { "editOnDblClick": false } ``` ## Install your interpreter binary ( 安裝你的解釋器二進制文件?) 一旦您構建了您的解釋器,您可以將其放在解釋器目錄下,并具有所有的依賴關系。 ``` [ZEPPELIN_HOME]/interpreter/[INTERPRETER_NAME]/ ``` ## Configure your interpreter ( 配置您的解釋器?) 要配置您的解釋器,您需要遵循以下步驟: 1. 將解釋器類名添加到?**conf / zeppelin-site.xml**?中的?**zeppelin.interpreters**?屬性。屬性值以逗號分隔?**[INTERPRETER_CLASS_NAME]**?。例如, ``` &lt;property&gt; &lt;name&gt;zeppelin.interpreters&lt;/name&gt; &lt;value&gt;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&lt;/value&gt; &lt;/property&gt; ``` 2. 將您的解釋器添加到當沒有?**zeppelin-site.xml**?時使用的默認配置。 3. 通過運行**?./bin/zeppelin-daemon.sh**?啟動?**Zeppelin**?。 在解釋器頁面中,單擊+創建按鈕并配置您的解釋器屬性。現在你已經完成并準備好使用你的解釋器。 注意 使用 **zeppelin** 發布的解釋器有一個默認配置,當沒有 **conf / zeppelin-site.xml** 時使用。 ## Use your interpreter ( 使用你的解釋器 ) ### 0.5.0 在?**[NOTE]**?的指令中,**%[INTERPRETER_NAME]**?指令會調用您的解釋器。請注意,**zeppelin.interpreters**?中的第一個解釋器配置將是默認配置。 例如: ``` %myintp val a = "My interpreter" println(a) ``` ### 0.6.0 and later 在一個注釋的內部,**%INTERPRETER_GROUP].[INTERPRETER_NAME]**?指令將會調用您的解釋器。 您可以省略?**[INTERPRETER_GROUP]**?或**?[INTERPRETER_NAME]**?。如果您忽略**?[INTERPRETER_NAME]**?,則會在**?[INTERPRETER_GROUP]**?中選擇第一個可用的解釋器。同樣,如果您跳過**?[INTERPRETER_GROUP]**?,則會從默認解釋器組中選擇?**[INTERPRETER_NAME]**?。 例如,如果**?mygrp group**?中有兩個解釋器?**myintp1**?和?**myintp2**?,可以像?**myintp1**?一樣調用: ``` %mygrp.myintp1 codes for myintp1 ``` 你可以像?**myintp2**?一樣調用 ``` %mygrp.myintp2 codes for myintp2 ``` 如果省略您的解釋器名稱,它將在?**group ( myintp1?)**?中選擇第一個可用的解釋器。 ``` %mygrp codes for myintp1 ``` 當您的**?interpreter group**?被選為 默認組 時,您只能省略您的**?interpreter group**?。 ``` %myintp2 codes for myintp2 ``` ## Examples ( 示例 ) 查看一些與?**Zeppelin**?發布的?**interpreters**?。 * [spark](https://github.com/apache/zeppelin/tree/master/spark) * [markdown](https://github.com/apache/zeppelin/tree/master/markdown) * [shell](https://github.com/apache/zeppelin/tree/master/shell) * [jdbc](https://github.com/apache/zeppelin/tree/master/jdbc) ## Contributing a new Interpreter to Zeppelin releases ( 為 Zeppelin 發行新的解釋器 ) 我們歡迎對新的解釋器的貢獻。請按照以下幾個步驟進行: * 首先,在?[這里](https://zeppelin.apache.org/contribution/contributions.html)?查看一般性貢獻指南。 * 按照上述[?“解釋器自己的解釋器部分”](/pages/viewpage.action?pageId=10031094)?和?[“編輯器設置”](/pages/viewpage.action?pageId=10031094)?中的步驟進行。 * 添加您的解釋器,如上面的?[配置您的解釋器部分](/pages/viewpage.action?pageId=10031094)?;還將其添加到示例模板?**[zeppelin-site.xml.template](https://github.com/apache/zeppelin/blob/master/conf/zeppelin-site.xml.template)**?中。 * 添加測試!他們由?[Travis?](https://travis-ci.org/apache/zeppelin)經營所有變化,重要的是他們是獨立的。 * 將您的解釋器作為**?pom.xml**?中的模塊。 * 添加有關如何在?**docs / interpreter /**?下使用解釋器的文檔。以?**Markdown**?風格[為例](https://github.com/apache/zeppelin/blob/master/docs/interpreter/elasticsearch.md)。確保您列出配置設置,并提供在?**Markdown**?的代碼框中使用解釋器的工作示例。根據需要鏈接到圖片(圖片應轉到**?docs / assets / themes / zeppelin / img / docs-img /**?)。并在導航菜單(**docs / _includes / themes / zeppelin / _navigation.html**)中添加您的文檔的鏈接。 * 最重要的是,確保所有依賴關系的傳遞關閉的許可證在?[許可證文件?](https://github.com/apache/zeppelin/blob/master/zeppelin-distribution/src/bin_license/LICENSE)中列出。 * 提交您的更改,并在?[**GitHub**?上的項目?**Mirror**](https://github.com/apache/zeppelin)?上打開一個[**?Pull**?請求](https://github.com/apache/zeppelin/pulls);檢查以確保?**Travis CI**?構建正在通過。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看