1. 程式人生 > >Spark on hive編譯以及簡單使用

Spark on hive編譯以及簡單使用

com nbsp http imp 列表 需要 -a rift usr

分別下載了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編譯以及簡單使用