Spark on hive編譯以及簡單使用
分別下載了spark 和hive 配置好 發現在元數據庫裏面 這2個是不通的 是需要編譯spark的源碼以支持hive的
在這裏我用的是一臺centos7的虛擬機
準備工作:
jdk的安裝配置
hadoop的安裝配置
maven的配置 我這用的是apache-maven-3.5.4 maven列表:https://archive.apache.org/dist/maven/maven-3/
spark的版本spark-2.3.1這個版本支持到hive1.2.1 我本機用1.2.2好像也闊以
配置好環境變量就開幹,我這裏的環境變量是:
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#hadoop env
export HADOOP_HOME=/opt/env/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin
#hive env
export HIVE_HOME=/opt/env/apache-hive-1.2.2-bin
export PATH=$PATH:$HIVE_HOME/bin
#maven
export M2_HOME=/opt/env/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
#scala
export SCALA_HOME=/opt/env/scala-2.11.6
export PATH=$PATH:$SCALA_HOME/bin
其中這幾個必須安裝吧 java,spark是scala寫的 所以也必須安裝 下載源代碼
下載 spark-2.3.1.tgz
然後解壓
cd spark-2.3.1 進dev目錄
cd dev
vi make-distribution.sh 把 MVN=的值改成我們下載的mvn配置目錄
在進入 spark-2.3.1目錄
mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.5 -Phive -Phive-thriftserver -DskipTests
編譯中。。。。大概有26個task
編譯完成:
編譯了這麽多個模塊 要了個把小時。。。。
編譯成功後然後打包 打成 2.7.5hive.tar包---------------------下面打包的步驟花了2個半小時。。。。
./dev/./make-distribution.sh --name 2.7.5hive --tgz -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.5 -Phive -Phive-thriftserver -DskipTests
然後捏配置好spark vi /etc/profile
增加環境變量
export SPARK_HOME=/opt/env/spark-2.3.1-bin-h27hive
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
寫個腳本用spark執行一下 然後去hive查詢一把 看是在spark創建的表在hive也能直接看到 命名
from pyspark import SparkContext
from pyspark.sql import HiveContext
sc=SparkContext.getOrCreate()
sqlContext = HiveContext(sc)
sqlContext.sql(‘use default‘)
sqlContext.sql(‘CREATE TABLE IF NOT EXISTS test(key INT, value STRING)‘)
sqlContext.sql(‘show tables‘).show()
在spark用pyspark執行下看:
在hive下看看表
當然先啟動hadoop
到hadoop/sbin/start-dfs.sh
參考網站
Spark on hive編譯以及簡單使用