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叢集即可。
相關文章
- Spark 儲存模組原始碼學習Spark原始碼
- spark 原始碼分析之十八 -- Spark儲存體系剖析Spark原始碼
- spark 原始碼分析之十六 -- Spark記憶體儲存剖析Spark原始碼記憶體
- Spark Parquet詳解Spark
- Spark原始碼編譯與匯入IDEA除錯Spark原始碼編譯Idea除錯
- Spark儲存Parquet資料到Hive,對map、array、struct欄位型別的處理SparkHiveStruct型別
- OceanBase 原始碼解讀(九):儲存層程式碼解讀之「巨集塊儲存格式」原始碼
- PHP 編譯引數儲存PHP編譯
- C#支援的編碼格式C#
- 使用 IntelliJ IDEA 匯入 Spark 最新原始碼及編譯 Spark 原始碼(博主強烈推薦)IntelliJIdeaSpark原始碼編譯
- 從NSM到Parquet:儲存結構的衍化
- 儲存過程編譯時卡死儲存過程編譯
- oracle 儲存過程重新編譯方法Oracle儲存過程編譯
- 儲存過程編譯時會卡死儲存過程編譯
- Hbase儲存格式
- Redis儲存結構以及儲存格式Redis
- OceanBase 儲存層程式碼解讀(三)巨集塊儲存格式
- OceanBase 儲存層程式碼解讀(二)微塊儲存格式
- 原始碼編譯Vim 8原始碼編譯
- MongoDB(0)- 原始碼編譯MongoDB原始碼編譯
- 編譯Android原始碼編譯Android原始碼
- 編譯hibernate原始碼編譯原始碼
- Docker編譯Azerothcore原始碼Docker編譯原始碼
- Spring原始碼編譯Spring原始碼編譯
- Laravel 儲存 (Storage) 原始碼分析Laravel原始碼
- 建立儲存過程編譯無效物件儲存過程編譯物件
- Hive之儲存格式Hive
- MyISAM表的儲存格式---行格式
- 編譯FFMPEG原始碼的指令碼編寫案例編譯原始碼指令碼
- WebRTC研究 (一) 編譯原始碼Web編譯原始碼
- 原始碼編譯 apache2.4原始碼編譯Apache
- Kubernetes原始碼編譯原始碼編譯
- Swift原始碼專案編譯Swift原始碼編譯
- 龍芯原始碼編譯MySQL原始碼編譯MySql
- Ceph原始碼編譯與打包原始碼編譯
- nvme driver 原始碼修改、編譯原始碼編譯
- 原始碼編譯安裝Redis原始碼編譯Redis
- LAMP原始碼編譯安裝LAMP原始碼編譯