目录

Spark 可以和 Tachyon 配合使用,使用内存作为数据存储介质,可以有效提高大数据计算时的吞吐量,目前 Tachyon 的版本迭代较快,如果要使用最新功能或消除 bug 需要编译 master 版本,但是 Spark 也要对应的进行重新编译才可以使用。

简单来说,目前 Spark 的 release 版本 1.3.1 代码中支持的 tachyon-client 版本为 0.5.0,而 Tachyon 官方已发布到 0.6.4,这两个版本代码有很多改动,会导致使用错误。目前来说,要使用 Tachyon 0.6.3 以上版本的话,必须得使用 master 分支重新编译 Spark 才行,参考 patch SPARK-6122 。

编译 Spark

从 GitHub 上拉下 Spark 代码,在 master 分支编译 Spark 时,根据 http://spark.apache.org/docs/latest/building-spark.html,注意指定环境使用的 Hadoop 版本,我的环境是官方2.6.0版本。

首先增大一点参数,免得编译时候报错。

export MAVEN_OPTS=“-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m”

mvn package -Pyarn -Dyarn.version=2.6.0 -Phadoop-2.4 -Dhadoop.version=2.6.0 -Phive -DskipTests

编译 Tachyon

Spark master 使用的是 Tachyon 0.6.4 版本,所以这个版本不用编译直接可以用,我需要跟踪 Tachyon 的开发,每次都是直接编译 master 分支里的最新代码,编译时同样需要指定环境的 Hadoop 版本。

mvn -Dhadoop.version=2.6.0 -DskipTests package assembly:single