pc做任務(wù)賺錢(qián)的網(wǎng)站優(yōu)化搜狗排名
前提條件
1、安裝好Hive,參考:Hive安裝部署-CSDN博客
2、下載好Spark安裝包,鏈接:https://pan.baidu.com/s/1plIBKPUAv79WJxBSbdPODw?pwd=6666
3、將Spark安裝包通過(guò)xftp上傳到/opt/software
安裝部署Spark
1、解壓spark-3.3.1-bin-without-hadoop.tgz
進(jìn)入安裝包所在目錄
cd /opt/software
解壓縮
tar -zxvf spark-3.3.1-bin-without-hadoop.tgz -C /opt/moudle
進(jìn)入解壓后的目錄,修改文件名
cd /opt/moudle
mv spark-3.3.1-bin-without-hadoop/ spark
2、修改spark-env.sh配置文件
進(jìn)入配置目錄
cd /opt/moudle/spark/conf/
編輯文件
vim spark-env.sh.template
末尾增加如下內(nèi)容
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
?將配置文件.template(不訪問(wèn))去掉
mv spark-env.sh.template? spark-env.sh
3、配置SPARK_HOME環(huán)境變量
vim /etc/profile.d/my_env.sh
添加如下內(nèi)容
# SPARK_HOME
export SPARK_HOME=/opt/moudle/spark
export PATH=$PATH:$SPARK_HOME/bin
source 使其生效
?source /etc/profile.d/my_env.sh
4、在hive中創(chuàng)建spark配置文件
vim /opt/moudle/hive/conf/spark-defaults.conf
添加如下內(nèi)容(在執(zhí)行任務(wù)時(shí),會(huì)根據(jù)如下參數(shù)執(zhí)行)。
spark.master?????????????????????????????? yarn
spark.eventLog.enabled?????????????????? true
spark.eventLog.dir??????????????????????? hdfs://mycluster/spark-history
spark.executor.memory??????????????????? 1g
spark.driver.memory????????????? ???? 1g
在HDFS創(chuàng)建如下路徑,用于存儲(chǔ)歷史日志
hadoop fs -mkdir /spark-history
5、向HDFS上傳Spark純凈版jar包
??????? 說(shuō)明1:采用Spark純凈版jar包,不包含hadoop和hive相關(guān)依賴,能避免依賴沖突。
??????? 說(shuō)明2:Hive任務(wù)最終由Spark來(lái)執(zhí)行,Spark任務(wù)資源分配由Yarn來(lái)調(diào)度,該任務(wù)有可能被分配到集群的任何一個(gè)節(jié)點(diǎn)。所以需要將Spark的依賴上傳到HDFS集群路徑,這樣集群中任何一個(gè)節(jié)點(diǎn)都能獲取到。
hadoop fs -mkdir /spark-jars
hadoop fs -put /opt/moudle/spark/jars/* /spark-jars
6、修改hive-site.xml文件
vim /opt/moudle/hive/conf/hive-site.xml
添加如下內(nèi)容
?<!--Spark依賴位置(注意:端口號(hào)8020必須和namenode的端口號(hào)一致)-->
<property>
??? <name>spark.yarn.jars</name>
??? <value>hdfs://mycluster/spark-jars/*</value>
</property>
<!--Hive執(zhí)行引擎-->
<property>
??? <name>hive.execution.engine</name>
??? <value>spark</value>
</property>?
Hive on Spark測(cè)試
啟動(dòng)hive客戶端
hive
創(chuàng)建一張測(cè)試表
create table student(id int, name string);
通過(guò)insert測(cè)試效果
insert into table student values(1,'abc');
若結(jié)果如下,則說(shuō)明配置成功。