<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Writing a new Application (Experimental) ( 寫一個新的應用程序( 實驗 ) ) 原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/development/writingzeppelinapplication.html](http://zeppelin.apache.org/docs/0.7.2/development/writingzeppelinapplication.html) 譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10031114](http://www.apache.wiki/pages/viewpage.action?pageId=10031114) 貢獻者 : [小瑤](/display/~chenyao) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina) ## 什么是 Apache Zeppelin Application ? **Apache Zeppelin Application** 是一個運行于解釋器進程的軟件包,并將其顯示在筆記本計算機的內部。當應用程序運行在解釋器進程時,它能夠通過 **ResourcePool** 訪問解釋器提供的資源。輸出始終由 **AngularDisplaySystem** 呈現。因此,應用程序提供使用任何解釋器的數據和處理能力的交互式圖形應用程序的所有可能性。 ## Make your own Application ( 創建你自己的 Application ) 寫入應用程序意味著擴展 **org.apache.zeppelin.helium.Application** 。當 **Java** 類文件打包到 **jar** 中時,您可以使用自己喜歡的 **IDE** 和語言。應用程序類看起來像 ``` /** * 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(); ``` 您可以檢查 **./zeppelin-examples** 目錄下的示例應用程序。 ## Development mode ( 開發模式 ) 在開發模式下,您可以將 **Application** 作為普通的 **Java** 應用程序在 **IDE** 中運行,并查看 **Zeppelin notebook** 中的結果。 **org.apache.zeppelin.helium.ZeppelinApplicationDevServer** 可以在開發模式下運行 **Zeppelin Application** 。 ``` // entry point for development mode public 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 org.apache.zeppelin.helium.ZeppelinApplicationDevServer devServer = new org.apache.zeppelin.helium.ZeppelinApplicationDevServer( Clock.class.getName(), pool.getAll()); // start development mode devServer.start(); devServer.join(); } ``` 在 **Zeppelin notebook** 中,運行 **%dev run** 將連接到在開發模式下運行的應用程序。 ## Package file ( 包文件 ) 軟件包文件是一個 **json** 文件,提供有關應用程序的信息。 **Json** 文件包含以下信息 ``` { name : "[organization].[name]", description : "Description", 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>" } ``` ### name ( 名稱 ) **Name** 是 **[group] ?[name]** 格式的字符串。 **[group]** 和 **[name]** 只允許 **[A-Za-z0-9_]** 。組通常是創建此應用程序的組織的名稱。 ### description ( 描述 ) 有關應用程序的簡短描述。 ### artifact **jar artifac**t 的位置。 **“groupId:artifactId:version”** 將從 **maven** 倉庫加載工件。如果本地文件系統中存在 **jar** ,則可以使用 **absolute / relative** 。 例如 當 **artifact** 存在于 **Maven** 存儲庫中時 ``` artifact: "org.apache.zeppelin:zeppelin-examples:0.6.0" ``` 當 **artifact** 存在于本地文件系統中時 ``` artifact: "zeppelin-example/target/zeppelin-example-0.6.0.jar" ``` ### className ( 類名 ) 入口點。擴展 **org.apache.zeppelin.helium.Application** 的類。 ### resources ( 資源 ) 二維數組,按名稱或類名定義所需的資源。 **Helium** 應用程序啟動器將比較 **ResourcePool** 中的資源與該字段中的信息,并在 **ResourcePool** 中提供所有必需資源時才建議應用程序。 資源名稱是一個字符串,它將與 **ResourcePool** 中的對象名稱進行比較。 **className** 是一個前綴為“:”的字符串,它將與 **ResourcePool** 中對象的 **className** 進行比較。 應用程序可能需要兩個或更多資源。所需的資源可以在json數組中列出。例如,如果應用程序需要對象 “**name1**” , “**name2**” 和 “**className1**” 類型的對象運行,則資源字段可以是 ``` resources: [ [ "name1", "name2", ":className1", ...] ] ``` 如果應用程序可以處理所需資源的替代組合,則可以列出替代集合。 ``` resources: [ [ "name", ":className"], [ "altName", ":altClassName1"], ... ] ``` 更容易理解這個方案 ``` resources: [ [ 'resource' AND 'resource' AND ... ] OR [ 'resource' AND 'resource' AND ... ] OR ... ] ``` ### icon ( 圖標 ) 在應用程序按鈕上使用的圖標。此字段中的字符串將被呈現為 **HTML** 標記。 例如 ``` icon: "<i class='fa fa-clock-o'></i>" ```
                  <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>

                              哎呀哎呀视频在线观看