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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Spark 解釋器 原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/spark.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/spark.html) 譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030923](http://www.apache.wiki/pages/viewpage.action?pageId=10030923) 貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina) ## 概述 [Apache Spark](http://spark.apache.org/)是一種快速和通用的集群計算系統。它提供Java,Scala,Python和R中的高級API,以及支持一般執行圖的優化引擎。Zeppelin支持Apache Spark,Spark解釋器組由5個解釋器組成。 | 名稱 | 類 | 描述 | | --- | --- | --- | | %spark | SparkInterpreter | 創建一個SparkContext并提供Scala環境 | | %spark.pyspark | PySparkInterpreter | 提供Python環境 | | %spark.r | SparkRInterpreter | 提供具有SparkR支持的R環境 | | %spark.sql | SparkSQLInterpreter | 提供SQL環境 | | %spark.dep | DepInterpreter | 依賴加載器 | [?](http://zeppelin.apache.org/docs/0.7.1/interpreter/spark.html#configuration) ## 配置 Spark解釋器可以配置為由Zeppelin提供的屬性。您還可以設置表中未列出的其他Spark屬性。有關其他屬性的列表,請參閱[Spark可用屬性](http://spark.apache.org/docs/latest/configuration.html#available-properties)。 | 屬性 | 默認 | 描述 | | --- | --- | --- | | ARGS | ? | Spark命令行參考 | | master | local[*] | Spark master uri. 例如:spark://masterhost:7077 | | spark.app.name | Zeppelin | Spark應用的名稱。 | | spark.cores.max | ? | 要使用的核心總數。 空值使用所有可用的核心。 | | spark.executor.memory | 1g | 每個worker實例的執行程序內存。 ex)512m,32g | | zeppelin.dep.additionalRemoteRepository | spark-packages,? [http://dl.bintray.com/spark-packages/maven](http://dl.bintray.com/spark-packages/maven),? false; | ?`id,remote-repository-URL,is-snapshot;` 每個遠程存儲庫的列表。 | | zeppelin.dep.localrepo | local-repo | 依賴加載器的本地存儲庫 | | zeppelin.pyspark.python | python | Python命令來運行pyspark | | zeppelin.spark.concurrentSQL | python | 如果設置為true,則同時執行多個SQL。 | | zeppelin.spark.maxResult | 1000 | 要顯示的Spark SQL結果的最大數量。 | | zeppelin.spark.printREPLOutput | true | 打印REPL輸出 | | zeppelin.spark.useHiveContext | true | 如果它是真的,使用HiveContext而不是SQLContext。 | | zeppelin.spark.importImplicit | true | 導入含義,UDF集合和sql如果設置為true。 | 沒有任何配置,Spark解釋器在本地模式下開箱即用。但是,如果要連接到Spark群集,則需要按照以下兩個簡單步驟進行操作。 ### 1.導出SPARK_HOME 在`conf/zeppelin-env.sh`,導出`SPARK_HOME`環境變量與您的Spark安裝路徑。 例如, ``` export SPARK_HOME=/usr/lib/spark? ``` 您可以選擇設置更多的環境變量 ``` # set hadoop conf dir export HADOOP_CONF_DIR=/usr/lib/hadoop # set options to pass spark-submit command export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0" # extra classpath. e.g. set classpath for hive-site.xml export ZEPPELIN_INTP_CLASSPATH_OVERRIDES=/etc/hive/conf? ``` 對于Windows,確保你`winutils.exe`在`%HADOOP_HOME%\bin`。有關詳細信息,請參閱[在Windows上運行Hadoop的問題](https://wiki.apache.org/hadoop/WindowsProblems)。 ### 2.在“解釋器”菜單中設置主機 啟動Zeppelin后,轉到**解釋器**菜單并在Spark解釋器設置中編輯**主**屬性。該值可能因您的Spark群集部署類型而異。 例如, * **local[*]**? 本地模式 * **spark://master:7077**?standalone?集群模式 * **yarn-client**?Yarn 客戶端模式 * **mesos://host:5050**?Mesos 集群模式 而已。Zeppelin將使用任何版本的Spark和任何部署類型,而不用這種方式重建Zeppelin。有關Spark&Zeppelin版本兼容性的更多信息,請參閱[Zeppelin下載頁面](https://zeppelin.apache.org/download.html)中的“可用的口譯員”部分。 > 請注意,不導出`SPARK_HOME`,它以本地模式運行,包含版本的Spark。附帶的版本可能因構建配置文件而異。 ## SparkContext,SQLContext,SparkSession,ZeppelinContext SparkContext,SQLContext和ZeppelinContext會自動創建并顯示為變量名`sc`,`sqlContext`并`z`分別在Scala,Python和R環境中公開。從0.6.1起,`spark`當您使用Spark 2.x時,SparkSession可以作為變量使用。 > 請注意,Scala / Python / R環境共享相同的SparkContext,SQLContext和ZeppelinContext實例。 ## 依賴管理? 在Spark解釋器中加載外部庫有兩種方法。首先是使用解釋器設置菜單,其次是加載Spark屬性。 ### 1.通過解釋器設置設置依賴關系 有關詳細信息,請參閱[解釋器依賴管理](http://www.apache.wiki/pages/viewpage.action?pageId=10030743)。 ### 2.加載Spark屬性 一旦`SPARK_HOME`被設置`conf/zeppelin-env.sh`,Zeppelin使用`spark-submit`作為Spark解釋賽跑者。`spark-submit`支持兩種方式來加載配置。第一個是命令行選項,如--master和飛艇可以通過這些選項`spark-submit`通過導出`SPARK_SUBMIT_OPTIONS`在`conf/zeppelin-env.sh`。二是從中讀取配置選項`SPARK_HOME/conf/spark-defaults.conf`。用戶可以設置分發庫的Spark屬性有: | 火花defaults.conf | SPARK_SUBMIT_OPTIONS | 描述 | | --- | --- | --- | | spark.jars | --jars | 包含在驅動程序和執行器類路徑上的本地jar的逗號分隔列表。 | | spark.jars.packages | --packages | 逗號分隔列表,用于包含在驅動程序和執行器類路徑上的jar的maven坐標。將搜索當地的maven repo,然后搜索maven中心和由–repositories提供的任何其他遠程存儲庫。坐標的格式應該是`groupId:artifactId:version`。 | | spark.files | --files | 要放置在每個執行器的工作目錄中的逗號分隔的文件列表。 | 以下是幾個例子: * `SPARK_SUBMIT_OPTIONS`?在?`conf/zeppelin-env.sh` ``` export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0 --jars /path/mylib1.jar,/path/mylib2.jar --files /path/mylib1.py,/path/mylib2.zip,/path/mylib3.egg"? ``` * `SPARK_HOME/conf/spark-defaults.conf` ``` spark.jars /path/mylib1.jar,/path/mylib2.jar spark.jars.packages com.databricks:spark-csv_2.10:1.2.0 spark.files /path/mylib1.py,/path/mylib2.egg,/path/mylib3.zip ? ``` ### 3.通過%spark.dep解釋器加載動態依賴關系 > 注:`%spark.dep`解釋負載庫`%spark`和`%spark.pyspark`而不是?`%spark.sql`翻譯。所以我們建議你改用第一個選項。 當你的代碼需要外部庫,而不是下載/復制/重新啟動Zeppelin,你可以使用`%spark.dep`解釋器輕松地完成以下工作。 * 從maven庫遞歸加載庫 * 從本地文件系統加載庫 * 添加額外的maven倉庫 * 自動將庫添加到SparkCluster(可以關閉) 解釋器利用Scala環境。所以你可以在這里編寫任何Scala代碼。需要注意的是`%spark.dep`解釋前應使用`%spark`,`%spark.pyspark`,`%spark.sql`。 這是用法 ``` %spark.dep z.reset() // clean up previously added artifact and repository // add maven repository z.addRepo("RepoName").url("RepoURL") // add maven snapshot repository z.addRepo("RepoName").url("RepoURL").snapshot() // add credentials for private maven repository z.addRepo("RepoName").url("RepoURL").username("username").password("password") // add artifact from filesystem z.load("/path/to.jar") // add artifact from maven repository, with no dependency z.load("groupId:artifactId:version").excludeAll() // add artifact recursively z.load("groupId:artifactId:version") // add artifact recursively except comma separated GroupID:ArtifactId list z.load("groupId:artifactId:version").exclude("groupId:artifactId,groupId:artifactId, ...") // exclude with pattern z.load("groupId:artifactId:version").exclude(*) z.load("groupId:artifactId:version").exclude("groupId:artifactId:*") z.load("groupId:artifactId:version").exclude("groupId:*") // local() skips adding artifact to spark clusters (skipping sc.addJar()) z.load("groupId:artifactId:version").local()? ``` ## ZeppelinContext Zeppelin?在Scala / Python環境中自動注入`ZeppelinContext`變量`z`。`ZeppelinContext`提供了一些額外的功能和實用程序。 ### 對象交換 `ZeppelinContext`擴展地圖,它在Scala和Python環境之間共享。所以你可以把Scala的一些對象從Python中讀出來,反之亦然。 **Scala** ``` // Put object from scala %spark val myObject = ... z.put("objName", myObject) // Exchanging data frames myScalaDataFrame = ... z.put("myScalaDataFrame", myScalaDataFrame) val myPythonDataFrame = z.get("myPythonDataFrame").asInstanceOf[DataFrame]? ``` **Python** ?展開原碼 ``` # Get object from python %spark.pyspark myObject = z.get("objName") # Exchanging data frames myPythonDataFrame = ... z.put("myPythonDataFrame", postsDf._jdf) myScalaDataFrame = DataFrame(z.get("myScalaDataFrame"), sqlContext)? ``` ### 表格創作 `ZeppelinContext`提供了創建表單的功能。在Scala和Python環境中,您可以以編程方式創建表單。 **Scala** ``` %spark /* Create text input form */ z.input("formName") /* Create text input form with default value */ z.input("formName", "defaultValue") /* Create select form */ z.select("formName", Seq(("option1", "option1DisplayName"), ("option2", "option2DisplayName"))) /* Create select form with default value*/ z.select("formName", "option1", Seq(("option1", "option1DisplayName"), ("option2", "option2DisplayName")))? ``` ``` %spark.pyspark # Create text input form z.input("formName") # Create text input form with default value z.input("formName", "defaultValue") # Create select form z.select("formName", [("option1", "option1DisplayName"), ("option2", "option2DisplayName")]) # Create select form with default value z.select("formName", [("option1", "option1DisplayName"), ("option2", "option2DisplayName")], "option1")? ``` ``` 在sql環境中,可以在簡單的模板中創建表單。 ``` ``` %spark.sql select * from ${table=defaultTableName} where text like '%${search}%'? ``` 要了解有關動態表單的更多信息,請檢查[Zeppelin 動態表單](http://www.apache.wiki/pages/viewpage.action?pageId=10030585)。 [?](http://zeppelin.apache.org/docs/0.7.1/interpreter/spark.html#matplotlib-integration-pyspark) ## Matplotlib集成(pyspark) 這兩個`python`和`pyspark`解釋器都內置了對內聯可視化的支持`matplotlib`,這是一個流行的python繪圖庫。更多細節可以在[python解釋器文檔中找到](http://zeppelin.apache.org/docs/0.7.1/interpreter/python.html),因為matplotlib的支持是相同的。通過利用齊柏林內置的[角度顯示系統](http://zeppelin.apache.org/docs/0.7.1/displaysystem/back-end-angular.html),可以通過pyspark進行更先進的交互式繪圖,如下所示: ![](https://img.kancloud.cn/62/fb/62fb08e98cb66984d2e7868d9f981d92_566x364.jpg) ## 解釋器設置選項 您可以選擇其中之一`shared`,`scoped`以及`isolated`配置Spark解釋器的選項。Spark解釋器為每個筆記本創建分離的Scala編譯器,但在`scoped`模式(實驗)中共享一個SparkContext。它在每個筆記本`isolated`模式下創建分離的SparkContext?。 ## 用Kerberos設置Zeppelin 使用Zeppelin,Kerberos Key Distribution Center(KDC)和Spark on YARN進行邏輯設置: ![](https://img.kancloud.cn/43/f8/43f8467eb9feb07ef7fa4cc80b11fb13_359x209.jpg) ### 配置設置 1. 在安裝Zeppelin的服務器上,安裝Kerberos客戶端模塊和配置,krb5.conf。這是為了使服務器與KDC進行通信。 2. 設置`SPARK_HOME`在`[ZEPPELIN_HOME]/conf/zeppelin-env.sh`使用火花提交(此外,您可能需要設置`export HADOOP_CONF_DIR=/etc/hadoop/conf`) 3. 將以下兩個屬性添加到Spark configuration(`[SPARK_HOME]/conf/spark-defaults.conf`)中: ``` spark.yarn.principal spark.yarn.keytab ``` &gt; **注意:**如果您沒有訪問以上spark-defaults.conf文件的權限,可以選擇地,您可以通過Zeppelin UI中的“解釋器”選項卡將上述行添加到“Spark Interpreter”設置。 4. 而已。玩Zeppelin!
                  <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>

                              哎呀哎呀视频在线观看