1. 程式人生 > >Hive On Spark 安裝成功之後的總結

Hive On Spark 安裝成功之後的總結

Hive On Spark官方文件:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

首先,之前憑藉自己的錯覺以為使用官網提供好的安裝包之後就可以,後來各種實驗各種問題。最後下決心進行自己編譯原始碼進行安裝。經過兩天的摸索最終還是成功了!!功夫還是不負有心人的,以後要多多有耐心,細心做事。

接下來言歸正傳,正如hive官網說的hive on spark,hive的版本要without hadoop,所以需要自行編譯spark。此處沒有想象那麼困難,要有動手的勇氣和激情,很多問題都會迎刃而解,編譯原始碼,第一步就是下載原始碼,個人推薦去GitHub上下載需要的原始碼包,因為這個更新的及時,官網下載的原始碼有時候沒有及時更新,會讓你走很多彎路。下面就說一下原始碼編譯過程:

由於國內使用maven非常卡,所以推薦maven倉庫配置成阿里巴巴的倉庫,速度非常給力的。

倉庫地址如下:

      <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>


編譯Spark原始碼一定要參考官網文件,網上部落格有時候老舊可能讓你陷入困境。筆者深有體會。

如果想修改Spark的scala類庫版本等可以修改Saprk-source根目錄的pom檔案。

配置一下maven的引數,防止編譯過程記憶體溢位。

export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

使用如下指令碼:

make-distribution.sh --name custom-spark --tgz  --mvn ${MAVEN_HOME}/bin/mvn -Phadoop-2.4 -Phive -Phive-thriftserver -Pmesos -Pyarn
其中引數含義分別為:
--name custom-spark //指定壓縮包名字
--tgz   //生成tgz的部署包
--mvn ${MAVEN_HOME}/bin/mvn   //指定使用自己本地配置的mvn,不指定預設使用spark-source/build下面的mvn

最後生成的安裝包早Spark原始碼根目錄。

到此,假設你已經編譯好了Spark安裝包,部署即可。

接下來,Github下載hive原始碼,此處要修改Hive依賴的Spark版本和Hadoop以及Scala類庫版本。

修改好版本(修改pom.xml)之後便可以進行編譯,使用mvn clean package -Pdist -Dmaven.test.skip=true編譯即可。(可以跳過測試步驟,否則太慢)

Hive官方編譯文件:

  $ git clone https://git-wip-us.apache.org/repos/asf/hive.git
  $ cd hive
  $ mvn clean package -Pdist
  $ cd packaging/target/apache-hive-{version}-SNAPSHOT-bin/apache-hive-{version}-SNAPSHOT-bin
  $ ls
  LICENSE
  NOTICE
  README.txt
  RELEASE_NOTES.txt
  bin/ (all the shell scripts)
  lib/ (required jar files)
  conf/ (configuration files)
  examples/ (sample input and query files)
  hcatalog / (hcatalog installation)
  scripts / (upgrade scripts for hive-metastore)

最後輸出目錄:

packaging/target/apache-hive-{version}-SNAPSHOT-bin/apache-hive-{version}-SNAPSHOT-bin
例如我的輸出目錄:
/home/daxin/installData/source/hive-2.1.1/packaging/target/apache-hive-2.2.0-SNAPSHOT-bin/apache-hive-2.2.0-SNAPSHOT-bin
(Hive編譯遇見的問題‘參見:http://blog.csdn.net/dax1n/article/details/58594789)

假定此時你已經編譯好Hive原始碼。

安裝MySQL資料庫,建立資料庫,同時安裝Hive(安裝過程另寫博文補充)。

安裝好執行:schematool -dbType MySQL -initSchema  把之前建立的元資料都同步到mysql 裡。

此處遇見的:“schematool -dbType MySQL -initSchema ” 命令直接複製輸入進去之後,竟然報錯。

File /home/daxin/bigdata/Hive/scripts/metastore/upgrade/MySQL/upgrade.order.MySQLnot found 

參見:http://blog.csdn.net/dax1n/article/details/58614516

後來去 /home/daxin/bigdata/Hive/scripts/metastore/upgrade/MySQL/看檔案也確實存在,只不過檔名字大小寫不一致,後來

懷疑schematool -dbType MySQL -initSchema中MySQL的問題,自己改成:schematool -dbType mysql -initSchema

最後元資料同步資料庫完畢之後啟動元資料服務,之後啟動Hive指令碼設定set hive.execution.engine=spark;

啟動元資料服務:hive --service metastore &

建立表:

create table t_u(id string,age int ,salary double) row format delimited   fields terminated by ' '  lines terminated by '\n' stored as textfile ;

create table t_s(id string,age int ,salary double) row format delimited   fields terminated by ' '  lines terminated by '\n' stored as textfile ;

匯入資料:

load data   inpath '/uu' into table t_s;

load data   inpath '/uu' into table t_u;

之後寫一個查詢測試:select u.age from t_u u ,t_s s where u.age =s.age;

竟然又報錯了:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Iterable

此時不過還是喜悅的,感覺離success已經不遠了。最後發現是hive沒有載入spark jars原因,解決方案:在hive指令碼中載入spark jars即可,具體步驟參見:

http://blog.csdn.net/dax1n/article/details/58252094

此時在輸入:select u.age from t_u u ,t_s s where u.age =s.age;


Hadoop YARN 介面:


Spark Job介面:


到此已經完成安裝!

相關推薦

Hive On Spark 安裝成功之後總結

Hive On Spark官方文件:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started 首先,之前憑藉自己的錯覺以為使用官網提供好的安裝包之後就可以,後來各種實

Hive on Spark安裝配置詳解(都是坑啊)

簡介 本文主要記錄如何安裝配置Hive on Spark,在執行以下步驟之前,請先確保已經安裝Hadoop叢集,Hive,MySQL,JDK,Scala,具體安裝步驟不再贅述。 背景 Hive預設使用MapReduce作為執行引擎,即Hive on mr。實際上,H

hive on spark安裝

Hive on spark安裝 1.      下載apache-hive-2.0.0-bin.tar.gz,安裝。(儘量安裝和hive相對應的版本spark和hadoop) 2.      編譯spark(不帶hive的) ./make-distribution.sh--

hive on spark通過YARN-client提交任務不成功

在Hive on spark中  設定spark.master 為 yarn-client , 提交HiveQL任務到yarn上執行,發現任務無法執行 輸出一下錯誤: 可以看到 Hive on S

hive on spark安裝及問題

配置hive hive-site <property> <name>hive.metastore.uris</name> <value>thrift://database:9083</value>

spark 2.0.0集群安裝hive on spark配置

3.6 temp format info port urn mysql5.7 del cnblogs 1. 環境準備: JDK1.8 hive 2.3.4 hadoop 2.7.3 hbase 1.3.3 scala 2.11.12 mysql5.7

Hive On Spark執行計劃總結

1、  Hive on Spark EXPLAIN statement在Hive中,命令Explain可以用來檢視查詢的執行計劃。對於Hive on Spark,這個命令本身不會改變,還會表現的和以前一樣。它仍然會顯示依賴語法樹和每個stage階段的執行計劃。然後,如果hiv

SparkSQL與Hive on Spark的比較

.cn local 順序 沒有 針對 ast custom spark manager 簡要介紹了SparkSQL與Hive on Spark的區別與聯系一、關於Spark簡介在Hadoop的整個生態系統中,Spark和MapReduce在同一個層級,即主要解決分布式計算框

hive on spark VS SparkSQL VS hive on tez

dir csdn cluster 並且 http 緩沖 快速 bsp pos http://blog.csdn.net/wtq1993/article/details/52435563 http://blog.csdn.net/yeruby/article/details

hive on spark

技術分享 engine sele park cut bsp 配置 spark lec hive on spark 的配置及設置CDH都已配置好,直接使用就行,但是我在用的時候報錯,如下:    具體操作如下時報的錯: 在hive 裏執行以下命令: set

sparksql\hive on spark\hive on mr

Hive on Mapreduce Hive的原理大家可以參考這篇大資料時代的技術hive:hive介紹,實際的一些操作可以看這篇筆記:新手的Hive指南,至於還有興趣看Hive優化方法可以看看我總結的這篇Hive效能優化上的一些總結 Hive on Mapreduce執行流程

hive on spark 效能引數調優

select * from stg_bankcard_auth_apply where length(idcardno) >= 1 and length(idcardno) <> 32; --該表儲存檔案格式為txt格式,是原始檔直接load進來的,mapreduce執行不管任何s

Hive on Spark調優

之前在Hive on Spark跑TPCx-BB測試時,100g的資料量要跑十幾個小時,一看CPU和記憶體的監控,發現 POWER_TEST階段(依次執行30個查詢)CPU只用了百分之十幾,也就是沒有把整個叢集的效能利用起來,導致跑得很慢。因此,如何調整引數,使整個叢集發揮最大效能顯得尤為

第四天 -- Accumulator累加器 -- Spark SQL -- DataFrame -- Hive on Spark

第四天 – Accumulator累加器 – Spark SQL – DataFrame – Hive on Spark 文章目錄 第四天 -- Accumulator累加器 -- Spark SQL -- DataFrame -- Hive on Spark

SparkSQL和hive on Spark

SparkSQL簡介 SparkSQL的前身是Shark,給熟悉RDBMS但又不理解MapReduce的技術人員提供快速上手的工具,hive應運而生,它是當時唯一執行在Hadoop上的SQL-on-hadoop工具。但是MapReduce計算過程中大量的中間磁碟落地過程消耗了大量的I/O,降低的執行效率,為

Hive on spark 報錯FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark

cp /opt/cloudera/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/lib/spark/lib/spark-assembly.jar /opt/cloudera/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/lib/hive/lib

大資料利用hive on spark程式操作hive

hive on spark 作者:小濤 Hive是資料倉庫,他是處理有結構化的資料,當資料沒有結構化時hive就無法匯入資料,而它也是遠行在mr程式之上

Hive on Spark 偽分散式環境搭建過程記錄

進入hive cli是,會有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. s

hive on spark開發demo

public class SparkHiveTest { public static void main(String[] args) { String warehous

基於Spark2.0搭建Hive on Spark環境(Mysql本地和遠端兩種情況)

Hive的出現可以讓那些精通SQL技能、但是不熟悉MapReduce 、程式設計能力較弱與不擅長Java語言的使用者能夠在HDFS大規模資料集上很方便地利用SQL 語言查詢、彙總、分析資料,畢竟精通SQL語言的人要比精通Java語言的多得多。Hive適合處理離線非實時資料。h