如何使用SparkSQL在hive中使用Spark的引擎计算

        在hive中,由于hive自带的计算引擎计算比较慢,这个时候可以使用spark替换hive的计算引擎,可以增加hive的计算速度。

在替换之前,首先虚拟机上要有spark的集群模式,spark 的yarn集群模式,需要hdfs,yran,hive

# 启动HDFS服务:NameNode和DataNodes

# 启动HiveMetaStore 服务

hive-server-manager.sh start 

我这里hive的服务全部启动了,也可以单独启动iveMetaStore

# 设置Spark日志级别
cd /opt/installs/spark/conf/(这里的路径是你集群spark的配置文件设置)
mv log4j.properties.template log4j.properties
vi log4j.properties 
#修改19行INFO为WARN
log4j.rootCategory=WARN, console

 然后启动客户端(测试,是否可以通过spark进入hive的数据库)

spark-sql --master yarn --conf spark.sql.shuffle.partitions=2

 进入之后测试一下能否打开看到数据库和打开数据库

然后启动spark在hive的引擎

/opt/installs/spark/sbin/start-thriftserver.sh \  (这个是我的spark配置的位置,按自己的位置配置)
--hiveconf hive.server2.thrift.port=10001 \
--hiveconf hive.server2.thrift.bind.host=bigdata01 \
--master yarn \
--conf spark.sql.shuffle.partitions=2

 启动服务,该服务不会停止,一直在后台启动,假如启动不了,记得查看日志。

然后用dataGrip远程链接

然后下载驱动,之前设置的端口是10001,默认的10000和hive的冲突,所以改成10001

 然后进入spark中测试一下

这时候,在spark中的操作,hive中也会同步,速度很快,到这里就算结束了

关闭thiftServer:

/opt/installs/spark/sbin/stop-thriftserver.sh 

但是在这之中可能会遇到问题:

hive中的数据库和sparksql 操作的数据库不是同一个

 解决方案:在hive 下修改hive-site.xml

<property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>

 将hive-site.xml 复制到 spark的conf 下

 cp /opt/installs/hive/conf/hive-site.xml /opt/installs/spark/conf

 修改spark下的hive-site.xml

 <property>
        <name>hive.server2.thrift.port</name>
        <value>10001</value>
        <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
      </property>

 接着分发一下:

 xsync.sh /opt/installs/spark/conf/hive-site.xml

 重启thrift服务:

 

/opt/installs/spark/sbin/stop-thriftserver.sh

/opt/installs/spark/sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.server2.thrift.bind.host=bigdata01 --master yarn --conf spark.sql.shuffle.partitions=2

 配置spark集群的yarn模式

配置第一台虚拟机‘

cd /opt/modules/
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-yarn
rm -rf /opt/installs/spark
ln -s /opt/installs/spark-yarn /opt/installs/spark

 修改spark-env.sh配置文件

 cd /opt/installs/spark/conf
mv spark-env.sh.template spark-env.sh
vim /opt/installs/spark/conf/spark-env.sh
## 22行左右设置JAVA安装目录、HADOOP和YARN配置文件
目录
export JAVA_HOME=/opt/installs/jdk
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
export YARN_CONF_DIR=/opt/installs/hadoop/etc/hadoop
## 历史日志服务器
export SPARK_DAEMON_MEMORY=1g
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"

修改spark-defaults.conf 文件: 

 

cd /opt/installs/spark/conf
mv spark-defaults.conf.template spark-defaults.conf

vim spark-defaults.conf
## 添加内容:
spark.eventLog.enabled           true
spark.eventLog.dir           hdfs://bigdata01:9820/spark/eventLogs
spark.eventLog.compress           true
spark.yarn.historyServer.address bigdata01:18080
spark.yarn.jars           hdfs://bigdata01:9820/spark/jars/*

 修改log4j.properties

 

mv log4j.properties.template log4j.properties

修改级别为WARN,打印日志少一点。

 上传spark jar包:

 #因为YARN中运行Spark,需要用到Spark的一些类和方法
#如果不上传到HDFS,每次运行YARN都要上传一次,比较慢
#所以自己手动上传一次,以后每次YARN直接读取即可
hdfs dfs -mkdir -p /spark/jars/
hdfs dfs -put /opt/installs/spark/jars/* /spark/jars/

 修改yarn-site.xml

 cd /opt/installs/hadoop/etc/hadoop

 

检查以下内置少什么,就配什么。
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 历史日志在HDFS保存的时间,单位是秒 -->
<!-- 默认的是-1,表示永久保存 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

<property>
  <name>yarn.log.server.url</name>
  <value>http://bigdata01:19888/jobhistory/logs</value>
</property>

<!-- 关闭yarn内存检查 -->
<property>
  <name>yarn.nodemanager.pmem-check-enabled</name>
  <value>false</value>
</property>
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
</property>

 分发一下yarn-site.xml(分发给其他虚拟机)

 xsync.sh yarn-site.xml

 将第一台机器的spark-yarn分发到第二台和第三台

xsync.sh /opt/installs/spark-yarn

超链接也分发一下:
xsync.sh /opt/installs/spark

 

 启动

 # 启动yarn
start-yarn.sh
# 启动MR的JobHistoryServer:19888
mapred --daemon start historyserver
# 启动Spark的HistoryServer:18080
/opt/installs/spark/sbin/start-history-server.sh

 测试

 测试官方给的PI值的计算:

/opt/installs/spark/bin/spark-submit --master yarn /opt/installs/spark/examples/src/main/python/pi.py 10

假如你遇到这个输出,说明资源有限,可以等一等 

 

 测试自己编写的wordcount案例

 

/opt/installs/spark/bin/spark-submit \
--master yarn \
--deploy-mode client \
--driver-memory 512M \
--driver-cores 1 \
--supervise \
--executor-memory 1G \
--executor-cores 1 \
--total-executor-cores 2 \
 /home/pyspark_core_word_args.py \
/spark/wordcount/input \
/spark/wordcount/output001

你也可以测试一下cluster模式,看是否支持?
经过测试,yarn集群下,cluster模式是支持的。在standalone模式下,不支持cluster

 

假如你没有配置 SPARK_HOME 那么,你每次提交 spark_submit 的时候,记得写全路径,否则呢?你的那些配置都没有生效。或者你直接写 spark_submit 的全路径。

假如你运行任务的时候,或者启动yarn的时候,报 /bin/java 没有这个文件。

这个问题的本质是缺少java 。

ln -s /opt/installs/jdk/bin/java /bin/java (软连接到你虚拟机的Java的地址)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11597.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库: 初始MySQL +Navicat (学习笔记)

目录 一&#xff0c;MySQL数据库基本概念 1&#xff0c;数据 2&#xff0c;数据库 3&#xff0c;数据库管理系统 4&#xff0c;数据库应用程序 5&#xff0c;数据库管理员 6&#xff0c;最终用户 7&#xff0c;数据库系统 二&#xff0c;MySQL数据库的分类 1&#xf…

22.04Ubuntu---ROS2创建python节点

创建工作空间 mkdir -p 02_ros_ws/src 然后cd到该目录 创建功能包 在这条命令里&#xff0c;tom就是你的功能包 ros2 pkg create tom --build-type ament_python --dependencies rclpy 可以看到tom功能包已经被创建成功了。 使用tree命令&#xff0c;得到如下文件结构 此时…

多模态大模型技术方向和应用场景

多模态大模型&#xff08;Multimodal Large Language Models&#xff0c;MLLM&#xff09;是一种结合了大型语言模型&#xff08;LLM&#xff09;和大型视觉模型&#xff08;LVM&#xff09;的深度学习模型&#xff0c;它们能够处理和理解多种类型的数据&#xff0c;如文本、图…

力扣 LeetCode 977. 有序数组的平方

解题思路&#xff1a; 方法一&#xff1a;先平方再快排 方法二&#xff1a;双指针 因为可能有负数&#xff0c;所以对于一个数组 [ -5 , -3 , 0 , 2 , 4 ] 可以从两边向内靠拢&#xff0c;最大值一定出现在两端 设置指针 i 和指针 j 分别从左右两边靠拢 因为要从小到大排序…

程序员必备的几款爬虫软件,搞定复杂数据抓取任务

作为一名数据工程师&#xff0c;三天两头要采集数据&#xff0c;用过十几种爬虫软件&#xff0c;也用过Python爬虫库&#xff0c;还是建议新手使用现成的软件比较方便。 这里推荐3款不错的自动化爬虫工具&#xff0c;八爪鱼、亮数据、Web Scraper 1. 八爪鱼爬虫 八爪鱼爬虫是一…

008_SSH_Sqlserverl图书管理系统(学生注册 借书 还书)_lwplus87(免费送)

目 录 Abstract IV 第1章 概述... 1 1.1 课题背景... 1 1.2 课题意义... 1 1.3 文献综述... 2 1.3.1 技术综述... 2 1.4 总体设计原则... 2 第2章 系统分析... 4 2.1 系统的需求分析... 4 2.2 业务流程分析... 5 2.2.1 系统管理员业务流程分析... 5 2.3 数据流程分析... 7 2…

EM是什么?如何修复EM violation?

芯冰乐知识星球入口:芯冰乐 EM就electric-migration,即电迁移。电子在金属导体内迁移时,会与金属原子发生碰撞。时间久了,金属原子便会往电子方向进行移动,导致金属导体发生断裂的现象,我们称之为电迁移现象。 如果金属导体内的电流越大,意味着移动的电子数也就越多。…

SQL面试题——连续出现次数

SQL面试题——连续出现次数 其实前面关于连续问题&#xff0c;我们遇到过&#xff0c;就是最大连续登陆天数&#xff0c;或者是连续登陆天数的计算&#xff0c;可以参考我们之前的文章 SQL面试题——最大连续登陆问题 最大连续登陆问题 最大连续登陆问题的难点在于如何判断…

【LLM】3:从零开始训练大语言模型(预训练、微调、RLHF)

一、 大语言模型的训练过程 预训练阶段&#xff1a;PT&#xff08;Pre training&#xff09;。使用公开数据经过预训练得到预训练模型&#xff0c;预训练模型具备语言的初步理解&#xff1b;训练周期比较长&#xff1b;微调阶段1&#xff1a;SFT&#xff08;指令微调/有监督微调…

腾讯云双11优惠大揭秘:省钱攻略不容错过!

文章目录 1 云服务来袭2 新手大礼包3 轻量应用服务器来袭4 腾讯云福利来袭5 福利代金券来袭 1 云服务来袭 云服务器能够灵活地提供计算和存储资源&#xff0c;帮助用户高效地应对信息技术需求&#xff0c;并保障数据的安全性。各大云服务商也因此纷纷推出多样化的优惠活动&…

皮卡超级壁纸 1.4.1 | 解锁会员版的全景壁纸、动态壁纸和超级壁纸

皮卡超级壁纸是一款提供海量壁纸的应用&#xff0c;不仅包含静态的精美壁纸&#xff0c;还提供了独特的超级壁纸。这些超级壁纸不仅仅是动态效果&#xff0c;还能自动匹配用户的手机UI&#xff0c;提供更加个性化的体验。解锁会员版后&#xff0c;用户可以享受更多高级功能和壁…

“绽放艺术风采、激发强国力量” 海南省第十一届中小学生艺术展演活动圆满开展

2024年11月1日&#xff0c;由省教育厅主办、琼台师范学院承办的海南省第十一届中小学生艺术展演省级展演活动在海口正式拉开帷幕。来自全省各市县、省属学校等共计4000余名师生参加本届中小学生艺术展演现场展演活动。 本届展演活动以“绽放艺术风采、激发强国力量”为主题&…

如何挑选靠谱的IP代理池?

嘿&#xff0c;寻觅一个靠谱的IP代理池就好比找到一双合脚的跑鞋&#xff0c;舒适性和耐用性缺一不可。IP代理池同样要支撑您在网络世界中“跑”得更快更远。所以&#xff0c;别急&#xff0c;我们来看看有哪些小妙招&#xff0c;教您挑选出最合适的IP代理池吧&#xff01; 看…

2024/11/10周报

文章目录 摘要GCNCNNGA混合模型预测进水水质代码运行结果 文献阅读题目研究背景与意义研究方法数据采集与预处理GCN–CNNGA混合深度学习框架的构建 模型优化与实验邻接矩阵的构建与效果分析模型预测效果对比多步预测性能 模型优势与应用前景精度提升与处理效率运营决策的优化支…

公司内部最好用的开源导航网站(EasyNav)

公司导航门户 一个现代化的企业内部导航门户系统&#xff0c;用于集中管理和展示公司各类系统和资源的链接。 项目地址&#xff1a;https://github.com/starslink/EasyNav体验地址&#xff1a;www.easynav.icu/ 功能特点 &#x1f510; 用户认证与授权邮箱注册与验证 JWT t…

pulsar源码--3-官方文档杂技

消息队列中间件会保存消息&#xff0c;直到收到消费者消费成功并确认&#xff0c;在此之后消息便可以删除&#xff0c;不过什么时候删除&#xff0c;由中间件自己决定 ack消息会一直储存&#xff0c;直到现有的所有订阅都确认了这条消息&#xff0c;在此之后如果要继续保存则需…

为什么一些工业厂房的配电箱和供电线路要安装ALP?

1、什么是ALP&#xff1f; ALP 低压线路保护装置是一种智能型电气保护设备&#xff0c;适用于额定电压至 AC660V、额定电流至 AC400A、额定频率为 50/60Hz 的低压系统。集保护、测量、控制、总线通讯为一体&#xff0c;是低压馈线终端的智能化综合装置。 2、功能特点 ①能够…

如何让 AI 更懂你:提示词的秘密

目录 前言常见概念大语言模型&#xff08;Large Language Model&#xff09;大模型输入常见参数提示词工程的限制 战略思想效果评测复杂任务拆解提示词结构化加示例加要求加维度 提示词框架 前言 小册推荐&#xff1a;https://juejin.cn/book/7399064580883742774 评估响应内…

特征值分解原理和实战

特征值分解&#xff08;Eigenvalue Decomposition&#xff09;是线性代数中的一种重要技术&#xff0c;用于分析矩阵的内在属性。这种分解方法主要适用于方阵&#xff08;即行数和列数相等的矩阵&#xff09;&#xff0c;用于将矩阵分解为其特征向量和特征值。 基本原理 假设 …

99人!关于第十八届中国青年科技奖拟表彰对象的公示!

本期精选SCI&EI ●IEEE 1区TOP 计算机类&#xff08;含CCF&#xff09;&#xff1b; ●EI快刊&#xff1a;最快1周录用&#xff01; 知网(CNKI)、谷歌学术期刊 ●7天录用-检索&#xff08;100%录用&#xff09;&#xff0c;1周上线&#xff1b; 免费稿件评估 免费匹配…