spark hive結合雜記(hive-site.xml)


1.下載spark源碼,在spark源碼目錄下面有個make-distribution.sh文件,修改里面的參數,使編譯后能支持hive,修改后執行該文件。(要預先安裝好maven才能編譯)。

2.將編譯好的spark源碼部署到機器上,然后將hive/conf中的hive-site.xml拷貝到spark/conf目錄下。然后可以通過spark-shell來測試一下,詳見:http://www.cnblogs.com/hseagle/p/3758922.html

3.spark中使用hive要時,要啟動hive server服務,在hive/bin目錄下建立一個腳步文件,添加 chmod u+x filename

nohup ./hive --service hiveserver >> hiveserver.log 2>&1 &
echo $! > hive-server.pid

4.在eclipse中編寫spark程序時,要將spark/lib中的包倒入,spark-examples。。。.jar不用導入。如果要操作hive可能還要倒入對應的數據庫jdbc驅動。

5.在eclipse中直接運行java 版的spark hive程序時可能會會先hive的metastore不正確的,而是鏈接的默認metastore此時就會出現各種錯誤eg.no table TABLENAME, can't fetch table ...,類似的錯誤,我的解決辦法是,將java程序打包成jar,將導出的jar包拷貝到spark/lib目錄下。,然后通過參考spark/bin中的spark-submit腳本命令來執行jar程序,參考spark/bin/run-examples腳步,做了如下簡化,測試后可以進行簡單的無參數輸入執行:

SCALA_VERSION=2.10

FWDIR="$(cd `dirname $0`/..; pwd)"
export SPARK_HOME="$FWDIR"
export SPARK_EXAMPLES_JAR=$SPARK_HOME/lib/YOUR_EXPORT_JAR_NAME.jar
EXAMPLE_MASTER=${MASTER:-"local[*]"}
EXAMPLE_CLASS=demo.wrencai.cup.SparkHiveDemo

"$FWDIR"/bin/spark-submit \
  --master $EXAMPLE_MASTER \
  --class $EXAMPLE_CLASS \
  --name SparkSubmit_Demo \
  "$SPARK_EXAMPLES_JAR" \

注意:上面的腳本中需要修改藍色標注的兩行,將紅色字體分別改成你所導出的jar包名和你要執行的類名g(格式:YourPacketName.YourClassName)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM