学习 Alluxio(二):Spark 读写 Alluxio

环境:

  • Spark 2.2.2
  • Alluxio 1.8

开发环境

以使用 Maven 的 Java 工程为例,如果,有以下三种方式:

第一种方式:将 <ALLUXIO_HOME>/client/alluxio-1.8.0-client.jar JAR 文件上传到 Nexus 服务器

第二种方式:添加 <ALLUXIO_HOME>/client/alluxio-1.8.0-client.jar JAR 文件作为系统依赖:

<dependency>  
    <groupId>org.alluxio</groupId>
    <artifactId>client</artifactId>
    <version>1.8.0</version>
    <scope>system</scope>
    <systemPath>${ALLUXIO_HOME}/client/alluxio-1.8.0-client.jar</systemPath>
</dependency>  

第三种方式:安装 <ALLUXIO_HOME>/client/alluxio-1.8.0-client.jar 到本地仓库。

执行命令:

mvn install:install-file -Dfile=$ALLUXIO_HOME/client/alluxio-1.8.0-client.jar -DgroupId=org.alluxio -DartifactId=client -Dversion=1.8.0 -Dpackaging=jar -DgeneratePom=true  

添加依赖:

<dependency>  
    <groupId>org.alluxio</groupId>
    <artifactId>client</artifactId>
    <version>1.8.0</version>
    <scope>provided</scope>
</dependency>  

部署环境

为了 Spark 可以读写 Alluxio,Alluxio 客户端 JAR 文件需要分发到 Spark 集群下各个节点,可以在 Spark 客户端进行配置:

编辑 <SPARK_HOME>/confspark-defaults.conf 文件:

spark.driver.extraClassPath /${ALLUXIO_HOME}/client/alluxio-1.8.0-client.jar  
spark.executor.extraClassPath /<ALLUXIO_HOME>/client/alluxio-1.8.0-client.jar

使用

读数据:

spark.read  
  .json("alluxio://alluxio_master:19998/data/users")

写数据:

spark.write.json("alluxio://alluxio_master:19998/data/users")