<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 * [構建 Apache Spark](#構建-apache-spark) * [Apache Maven](#apache-maven) * [設置 Maven 的內存使用](#設置-maven-的內存使用) * [build/mvn](#buildmvn) * [構建一個可運行的 Distribution 版本](#構建一個可運行的-distribution-版本) * [指定 Hadoop 版本并啟用 YARN](#指定-hadoop-版本并啟用-yarn) * [使用 Hive 和 JDBC 支持構建](#使用-hive-和-jdbc-支持構建) * [打包沒有 Hadoop 依賴關系的 YARN](#打包沒有-hadoop-依賴關系的-yarn) * [使用 Mesos 構建](#使用-mesos-構建) * [使用 Scala 2.10 構建](#使用-scala-210-構建) * [單獨構建子模塊](#單獨構建子模塊) * [Continuous Compilation(連續編譯)](#continuous-compilation連續編譯) * [使用 SBT 構建](#使用-sbt-構建) * [加速編譯](#加速編譯) * [加密文件系統](#加密文件系統) * [IntelliJ IDEA 或 Eclipse](#intellij-idea-或-eclipse) * [運行測試](#運行測試) * [使用 SBT 測試](#使用-sbt-測試) * [運行獨立測試](#運行獨立測試) * [PySpark pip 可安裝](#pyspark-pip-可安裝) * [使用 Maven 進行 PySpark 測試](#使用-maven-進行-pyspark-測試) * [運行 R 測試](#運行-r-測試) * [運行基于 Docker 的集成測試套裝](#運行基于-docker-的集成測試套裝) # 構建 Apache Spark ## Apache Maven 基于 Maven 的構建是 Apache Spark 的參考構建。構建 Spark 需要 Maven 3.3.9 或者更高版本和 Java 8+。請注意,Spark 2.2.0 對于 Java 7 的支持已經刪除了。 ### 設置 Maven 的內存使用 您需要通過設置 `MAVEN_OPTS` 將 Maven 配置為比通常使用更多的內存: ``` export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m" ``` (`ReservedCodeCacheSize` 設置是可選的,但是建議使用。) 如果您不講這些參數加入到 `MAVEN_OPTS` 中,則可能會看到以下錯誤和警告: ``` [INFO] Compiling 203 Scala sources and 9 Java sources to /Users/me/Development/spark/core/target/scala-2.11/classes... [ERROR] Java heap space -> [Help 1] ``` 您可以通過如前所述設置 `MAVEN_OPTS` 變量來解決這些問題。 **注意:** * 如果使用 `build/mvn` 但是沒有設置 `MAVEN_OPTS`,那么腳本會自動地將以上選項添加到 `MAVEN_OPTS` 環境變量。 * 即使不適用 `build/mvn`,Spark 構建的 `test` 階段也會自動將這些選項加入到 `MAVEN_OPTS` 中。 ### build/mvn Spark 現在與一個獨立的 Maven 安裝包封裝到了一起,以便從位于 `build/` 目錄下的源代碼構建和部署 Spark。該腳本將自動下載并設置所有必要的構建需求([Maven](https://maven.apache.org/),[Scala](http://www.scala-lang.org/) 和 [Zinc](https://github.com/typesafehub/zinc))到本身的 `build/` 目錄下。其尊重任何已經存在的 `mvn` 二進制文件,但是將會 pull down 其自己的 Scala 和 Zinc 的副本,不管是否滿足適當的版本需求。`build/mvn` 的執行作為傳遞到 `mvn` 的調用,允許從以前的構建方法輕松轉換。例如,可以像下邊這樣構建 Spark 的版本: ``` ./build/mvn -DskipTests clean package ``` 其他的構建例子可以在下邊找到。 ## 構建一個可運行的 Distribution 版本 想要創建一個像 [Spark 下載](http://spark.apache.org/downloads.html) 頁面中的 Spark distribution 版本,并且使其能夠運行,請使用項目 root 目錄下的 `./dev/make-distribution.sh`。它可以使用 Maven 的配置文件等等進行配置,如直接使用 Maven 構建。例如: ``` ./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn ``` 這將構建 Spark distribution 以及 Python pip 和 R 包。有關使用情況的更多信息,請運行 `./dev/make-distribution.sh --help` ## 指定 Hadoop 版本并啟用 YARN 您可以通過 `hadoop.version` 屬性指定要編譯的 Hadoop 的確切版本。如果未指定,Spark 將默認構建為 Hadoop 2.6.X。 您可以啟用 `yarn` 配置文件,如果與 `hadoop.version` 不同的話,可以選擇設置 `yarn.version` 屬性。 示例: ``` # Apache Hadoop 2.6.X ./build/mvn -Pyarn -DskipTests clean package # Apache Hadoop 2.7.X and later ./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package ``` ## 使用 Hive 和 JDBC 支持構建 要啟用 Spark SQL 及其 JDBC server 和 CLI 的 Hive 集成,將 `-Phive` 和 `Phive-thriftserver` 配置文件添加到現有的構建選項中。默認情況下,Spark 將使用 Hive 1.2.1 綁定構建。 ``` # With Hive 1.2.1 support ./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package ``` ## 打包沒有 Hadoop 依賴關系的 YARN 默認情況下,由 `mvn package` 生成的 assembly directory(組件目錄)將包含所有的Spark 依賴,包括 Hadoop 及其一些生態系統項目。在 YARN 部署中,導致這些的多個版本顯示在執行器 classpaths 上: Spark 組件的打包的版本和每個節點上的版本,包含在 `yarn.application.classpath` 中。`hadoop-provided` 配置文件構建了不包括 Hadoop 生態系統項目的組件,就像 ZooKeeper 和 Hadoop 本身。 ## 使用 Mesos 構建 ``` ./build/mvn -Pmesos -DskipTests clean package ``` ## 使用 Scala 2.10 構建 要使用 Scala 2.10 編譯的 Spark 軟件包,請使用 `-Dscala-2.10` 屬性: ``` ./dev/change-scala-version.sh 2.10 ./build/mvn -Pyarn -Dscala-2.10 -DskipTests clean package ``` 請注意,Scala 2.10 的支持已經不再適用于 Spark 2.1.0,并且可能在 Spark 2.2.0 中被刪除。 ## 單獨構建子模塊 可以使用 `mvn -pl` 選項來構建 Spark 的子模塊。 例如,您可以使用下面打代碼來構建 Spark Streaming 模塊: ``` ./build/mvn -pl :spark-streaming_2.11 clean install ``` 其中 `spark-streaming_2.11` 是在 `streaming/pom.xml` 文件中定義的 `artifactId`。 ## Continuous Compilation(連續編譯) 我們使用支持增量和連續編譯的 scala-maven-plugin 插件。例如: ``` ./build/mvn scala:cc ``` 這里應該運行連續編譯(即等待更改)。然而這并沒有得到廣泛的測試。有幾個需要注意的事情: * 它只掃描路徑 `src/main` 和 `src/test`(查看 [docs](http://scala-tools.org/mvnsites/maven-scala-plugin/usage_cc.html)),所以其只對含有該結構的某些子模塊起作用。 * 您通常需要在工程的根目錄運行 `mvn install` 在編譯某些特定子模塊時。這是因為依賴于其他子模塊的子模塊需要通過 `spark-parent` 模塊實現。 因此,運行 `core` 子模塊的連續編譯總流程會像下邊這樣: ``` $ ./build/mvn install $ cd core $ ../build/mvn scala:cc ``` ## 使用 SBT 構建 Maven 是推薦用于打包 Spark 的官方構建工具,是 _build of reference_。但是 SBT 支持日常開發,因為它可以提供更快的迭代編譯。更多高級的開發者可能希望使用 SBT。SBT 構建是從 Maven POM 文件導出的,因此也是相同的 Maven 配置文件和變量可以設置來控制 SBT 構建。例如: ``` ./build/sbt package ``` 為了避免在每次需要重新編譯時啟動 sbt 的開銷,可以啟動 sbt 在交互模式下運行 `build/sbt`,然后在命令中運行所有構建命令提示。 ## 加速編譯 經常編譯 Spark 的開發人員可能希望加快編譯速度; 例如通過使用 Zinc(對于使用 Maven 構建的開發人員)或避免重新編譯組件 JAR(對于使用 SBT 構建的開發人員)。有關如何執行此操作的更多信息,請參閱 [有用的開發工具頁面](http://spark.apache.org/developer-tools.html#reducing-build-times)。 ## 加密文件系統 當在加密文件系統上構建時(例如,如果您的 home 目錄是加密的),則 Spark 構建可能會失敗,并導致 “Filename too long” 錯誤。作為解決方法,在項目 `pom.xml` 中的 `scala-maven-plugin` 的配置參數中添加以下內容: ``` <arg>-Xmax-classfile-name</arg> <arg>128</arg> ``` 在 `project/SparkBuild.scala` 添加: ``` scalacOptions in Compile ++= Seq("-Xmax-classfile-name", "128"), ``` 到 `sharedSettings` val。如果您不確定添加這些行的位置,請參閱 [this PR](https://github.com/apache/spark/pull/2883/files)。 ## IntelliJ IDEA 或 Eclipse 有關設置 IntelliJ IDEA 或 Eclipse 用于 Spark 開發和故障排除的幫助,請參閱 [有用的開發工具頁面](http://spark.apache.org/developer-tools.html)。 # 運行測試 默認情況下通過 [ScalaTest Maven plugin](http://www.scalatest.org/user_guide/using_the_scalatest_maven_plugin) 進行測試。請注意,測試不應該以 root 用戶或者 admin 用戶運行。 以下是運行測試的命令示例: ``` ./build/mvn test ``` ## 使用 SBT 測試 以下是運行測試的命令示例: ``` ./build/sbt test ``` ## 運行獨立測試 有關如何運行獨立測試的信息,請參閱 [有用的開發工具頁面](http://spark.apache.org/developer-tools.html#running-individual-tests)。 ## PySpark pip 可安裝 如果您正在構建 Spark 以在 Python 環境中使用,并且希望對其進行 pip 安裝,那么您將首先需要如上所述構建 Spark JARs。然后,您可以構建適合于 setup.py 和 pip 可安裝軟件包的 sdist 軟件包。 ``` cd python; python setup.py sdist ``` **注意:** 由于打包要求,您無法直接從 Python 目錄中進行 pip 安裝,而是必須首先按照上述方式構建 sdist 包。 或者,您還可以使用 –pip 選項運行 make-distribution。 ## 使用 Maven 進行 PySpark 測試 如果您正在構建 PySpark 并希望運行 PySpark 測試,則需要使用 Hive 支持構建 Spark。 ``` ./build/mvn -DskipTests clean package -Phive ./python/run-tests ``` run-tests 腳本也可以限于特定的 Python 版本或者特定的模塊。 ``` ./python/run-tests --python-executables=python --modules=pyspark-sql ``` **注意:** 您還可以使用 sbt 構建來運行 Python 測試,只要您使用 Hive 支持構建 Spark。 ## 運行 R 測試 要運行 SparkR 測試,您需要首先安裝 [knitr](https://cran.r-project.org/package=knitr),[rmarkdown](https://cran.r-project.org/package=rmarkdown),[testthat](https://cran.r-project.org/package=testthat),[e1071](https://cran.r-project.org/package=e1071) and [survival](https://cran.r-project.org/package=survival) 包: ``` R -e "install.packages(c('knitr', 'rmarkdown', 'testthat', 'e1071', 'survival'), repos='http://cran.us.r-project.org')" ``` 您可以使用以下命令只運行 SparkR 測試: ``` ./R/run-tests.sh ``` ## 運行基于 Docker 的集成測試套裝 為了運行 Docker 集成測試,你必須在你的 box 上安裝 `docker` engine(引擎)。有關安裝說明,請參見 [Docker 站點](https://docs.docker.com/engine/installation/)。一旦安裝,如果還沒有運行 Docker 服務,`docker` service 就需要啟動。在 Linux 上,這可以通過 `sudo service docker start` 來完成。 ``` ./build/mvn install -DskipTests ./build/mvn test -Pdocker-integration-tests -pl :spark-docker-integration-tests_2.11 ``` 或者 ``` ./build/sbt docker-integration-tests/test ```
                  <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>

                              哎呀哎呀视频在线观看