Spark源码编译支持Parquet存储格式

Spark源码编译

Spark源码编译方式部署Spark时,为了支持Parquet功能,需要在源码编译时指定支持Parquet功能(即在编译命令中带上”parquet-provided“参数),具体的编译命令如下:

./dev/make-distribution.sh --name "hadoop310-without-hive" --tgz "-Pyarn,-Phadoop-3.1,-Dhadoop.version=3.1.0,parquet-provided,orc-provided"

具体Spark的部署可以参考:https://blog.csdn.net/wangkai_123456/article/details/87348161#3Spark_25

Hadoop-Parquet相关jar包下载

查找与系统(此处以hive为例)的parquet版本号

环境信息:
hadoop版本:3.1.0
spark版本:2.3.3
hive版本:3.1.1
为了保证Parquet的jar包与版本的兼容性,可以在hive源码根目录下的pom.xml文件中查看与hive相兼容的parquet版本号,查找parquet.version,以hive-3.1.1为例,查找的结果如下:

    <parquet.version>1.10.0</parquet.version>
    <pig.version>0.16.0</pig.version>
    <plexus.version>1.5.6</plexus.version>
    <protobuf.version>2.5.0</protobuf.version>
    <stax.version>1.0.1</stax.version>
    <slf4j.version>1.7.10</slf4j.version>
    <ST4.version>4.0.4</ST4.version>
    <storage-api.version>2.7.0</storage-api.version>
    <tez.version>0.9.1</tez.version>
    <super-csv.version>2.2.0</super-csv.version>
    <spark.version>2.3.0</spark.version>
    <scala.binary.version>2.11</scala.binary.version>
    <scala.version>2.11.8</scala.version>

查找到的parquet版本为1.10.0版本

下载hadoop-parquet相关jar包

下载地址:https://mvnrepository.com/artifact/org.apache.parquet/parquet-hadoop
使用maven下载Apache Parquet Hadoop 1.10.0版本的jar包,下载下来的jar包如下:

commons-codec-1.10.jar       
jackson-mapper-asl-1.9.13.jar  
parquet-encoding-1.10.0.jar  
parquet-jackson-1.10.0.jar
commons-pool-1.6.jar         
parquet-column-1.10.0.jar      
parquet-format-2.4.0.jar     
slf4j-api-1.7.2.jar
jackson-core-asl-1.9.13.jar  
parquet-common-1.10.0.jar      
parquet-hadoop-1.10.0.jar    
snappy-java-1.1.2.6.jar

Spark配置

将下载的Parquet Hadoop相关的所有jar包加入到spark的classpath里面:将下载的Parquet Hadoop相关的所有jar包保存到/usr/local/parquet-hadoop-jars目录下,并在${SPARK_HOME}/conf/spark-defaults.conf文件中新增如下配置:

spark.driver.extraClassPath	/usr/local/parquet-hadoop-jars/*
spark.executor.extraClassPath	/usr/local/parquet-hadoop-jars/*

spark集群所有节点都做同样的配置,最后重启spark集群即可。

猜你喜欢

转载自blog.csdn.net/wangkai_123456/article/details/88196770