配置hive on spark後啟動報錯

2021-10-09 04:56:15 字數 2141 閱讀 6704

因為hive底層用的執行引擎是mapreduce,所以導致了執行起來非常慢,所以我們要更換執行引擎,就有了hive on spark,基於hive的基礎上將執行引擎換成spark

版本:hive 3.1.2

spark3.0.0

需要配置的資訊

在spark的配置檔案spark-defaults.conf中

spark.master                               yarn

spark.eventlog.enabled true

spark.eventlog.dir hdfs:

//hadoop102:

8020

/spark-history

spark.executor.memory 1g

spark.driver.memory 1g

在hive所在的節點上配置spark的環境變數,保證hive和spark是在同一臺機器上的

然後增加hive的配置資訊

>

>

spark.yarn.jarsname

>

>

hdfs://hadoop102:8020/spark-jars/*value

>

property

>

>

>

hive.execution.enginename

>

>

sparkvalue

>

property

>

>

>

hive.spark.client.connect.timeoutname

>

>

10000msvalue

>

property

>

這樣基礎的就已經配好了,下面我們來測試一下

進入hive

建立乙個表

create

table student(id int

,name string)

;

插入一條語句試試

insert

into student values(1

,'lili'

);

發現執行一會後報錯,報錯資訊:

noclassdeferror:org/apache/spark/accumulatorparam
我們檢視yarn上程式執行的log日誌,看到報錯資訊

是在hive-exec.jar包中報的錯

exception:org/apache/hive/spark/counter/sparkcounters.

createcounter

()

public

class

sparkcounter

implements

serializable

{private string name;

private string displayname;

private accumulator

accumulator;

private

long accumvalue;

我們可以知道應該是hive的包的問題,我們去hive官網上看,可以看到hive on spark的版本匹配**

hive spark

1.1.x 1.2.0

1.2.x 1.3.1

2.0.x 1.5.0

2.1.x 1.6.0

2.2.x 1.6.0

2.3.x 2.0.0

3.0.x 2.3.0

master 2.3.0

我們看到基於hive3.x版本官方只測試了基於spark2.3.0版本的,所以我們用hive3.1.2版本會先去找spark2.3.0版本的類,但是我們又沒有,所以報錯

對於版本不匹配的問題的都可以嘗試按照這個方法去查詢一下問題

keepalive啟動後,haproxy啟動失敗

最近搭建mha,keepalive搭建成功虛擬出ip,但是haproxy卻沒有成功啟動監聽埠。原理是 keepalive如果是以master啟動則在5秒鐘以後查檢是否已經正常虛擬出指定ip 如果已正常虛擬出ip,則啟動haproxy。排查 1,確認虛擬出ip以後,手工啟動haproxy,正常監聽埠。...

django uwsgi nginx 配置並啟動

os ubuntu 18.04 django 2.0.4 python 3.6 uwsgi 2.0.17 nginx 1.14.0 django 是後端框架,主要進行的是邏輯處理 其自帶 wsgi伺服器 位置 project name wsgi.py 可用於除錯,但高併發情況無法達到要求。uwsgi...

程式異常退出後自啟

在windows上,許多服務或者展示類的客戶端往往都會附帶開機自啟 程式異常退出後自啟這一功能。功能很簡單,實現起來也不複雜,只需要建立乙個監控程式來一直檢測其是否正在執行,沒執行則啟動它 開機自啟只需將程式路徑新增到登錄檔中即可。include stdafx.h include include i...