欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

hiveonspark安装配置详解

时间:2023-04-19
hive on spark spark 安装配置

安装对应版本scala
spark和scala的版本需要匹配,不然安装后启动会报错
官网下载源码包
http://spark.apache.org/downloads.html

其他版本可以去https://archive.apache.org/dist/spark/下载
解压后修改pom.xml中对应的scala、Hadoop版本
去dev/make-distribution.sh修改对应版本号,编译时会快一点

改为:

下载之后在pom.xml目录点击git bash here使用git编译 编译过程会有点久
./dev/make-distribution.sh --name “hadoop321-without-hive” --tgz “-Pyarn,hadoop-provided,hadoop-3.2.1”
指定hadoop版本,不带hive编译
编译成功后会生成一个安装包

解压安装包后修改配置文件
cd $SPARK_HOME/conf
mv spark-env.sh.template spark-env.sh
mv spark-defaults.conf.template spark-defaults.conf
vim spark-env.sh

加上配置:
export JAVA_HOME=/opt/jdk1.8.0_181
export SCALA_HOME=/opt/scala-2.11.12
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_LAUNCH_WITH_SCALA=0
export SPARK_MASTER_IP=10.241.19.7
export SPARK_LIBRARY_PATH=/opt/spark-2.4.4-bin-hadoop321-without-hive/lib

export SPARK_MASTER_WEBUI_PORT=8082
export SPARK_WORKER_DIR=/opt/spark-2.4.4-bin-hadoop321-without-hive/work

export SPARK_MASTER_PORT=7077
export SPARK_WORKER_PORT=7078
export SPARK_LOG_DIR=/opt/spark-2.4.4-bin-hadoop321-without-hive/log
export SPARK_PID_DIR=/opt/spark-2.4.4-bin-hadoop321-without-hive/run
export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath)

vim spark-defaults.conf
加上配置:
spark.master yarn-cluster
spark.home /opt/spark-2.4.4-bin-hadoop321-without-hive
spark.eventLog.enabled true
spark.eventLog.dir hdfs://10.××.××.7:9000/spark-log
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.executor.memory 2g
spark.driver.memory 2g
spark.executor.cores 2
spark.cores.max 2
spark.default.parallelism 36
spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers=“one two three”
spark.executor.extraClassPath /opt/spark-2.4.4-bin-hadoop321-without-hive/jars/*
spark.dirver.extraClassPath /opt/spark-2.4.4-bin-hadoop321-without-hive/jars/*

cd $SPARK_HOME/sbin
启动/停止 spark命令:
start-all.sh/stop.all.sh
访问 spark-env.sh配置的ui地址可以查看spark运行情况

然后再hive-site.xml 配置spark作为引擎
cd $HIVE_HOME/conf
vim hive-site.xml

hive.execution.engine spark spark.master spark://10.××.××.7:7077 spark.enentLog.enabled true spark.enentLog.dir hdfs://10.××.××.7:9000/spark-log spark.executor.memeory 2g spark.executor.cores 2 spark.cores.max 2```重启hivenetstat -nltp | grep 10000 netstat -nltp | grep 9083kill -9 ********hive --service metastore &hiveserver2 &**默认没有参数直接指定使用多少个executor数。而是按照如下方式计算而来executor 数量 = spark.cores.max/spark.executor.cores****spark.cores.max 默认没有设置,这时它使用的是 spark.deploy.defaultCores,而这个的默认值是Int.max,也就是不限制,这样应用就会获取所有可用的CPU资源,****spark.executor.cores (适用于ON YARN和standalone模式) 可以指定每个executor的cup这个配置在hive-site.xml中配置****如果spark.cores.max不配置,spark.executor.cores配置为1,机器cup总数16,连接一个hive使用spark时就会占用所有资源,其他连接会等待直至失败。**spark-env.sh的export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath)指定后 需要hadoop jar包时会去hadoop目录获取使用spark-submit的命令格式:spark-submit --conf "spark.eventLog.enabled=true" --conf "spark.eventLog.dir=hdfs://10.××.××.7:9000/spark-log" --master spark://10.××.××.7:7077 /opt/spark-2.4.4-bin-hadoop321-without-hive/examples/src/main/python/pi.py开启spark的history-server以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息;但该WEBUI随着Application的完成(成功/失败)而关闭,也就是说,Spark Application运行完(成功/失败)后,将无法查看Application的历史记录;Spark运行在yarn或者mesos之上,通过spark的history server仍然可以重构出一个已经完成的Application的运行时参数信息(假如Application运行的事件日志信息已经记录下来)在spark-env.sh加上配置:export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://10.××.××.7:9000/spark-log"spark-defaults.conf加上配置:spark.yarn.historyServer.address 10.××.××.7:18080spark.history.ui.port 18080spark.history.fs.logDirector hdfs://10.××.××.7:9000/spark-log 注:该目录需要事先在hdfs上创建好,否则history-server启动报错spark.yarn.preserve.staging.files truespark.eventLog.enabledtruespark.eventLog.dirhdfs://10.××.××.7:9000/spark-log 启动命令:${SPARK_HOME}/sbin/start-history-server.sh停止命令:${SPARK_HOME}/sbin/stop-history-server.sh启动成功后就可以访问webui在spark history-server里面查看日志是会跳转到hadoop 的jobHistoryServer服务的,因此需要开启hadoop的jobHistoryServer服务才能查看日志。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。