SparkSQL-SparkOneHive
创始人
2025-05-29 19:10:39
0

部署

连接Hive操作 

小试牛刀:Hive版本的WordCount 

从MySQL中读取数据存储到hive中 


部署

 1、Spark 要接管 Hive 需要把 hive-site.xml 拷贝到 conf/目录下

2、把 Mysql 的驱动 copy 到 jars/目录下

3、 如果访问不到 hdfs,则需要把 core-site.xml 和 hdfs-site.xml 拷贝到 conf/目录下

     导入依赖

org.apache.sparkspark-hive_2.123.0.0

org.apache.hivehive-exec1.2.1

mysqlmysql-connector-java5.1.27

  将 hive-site.xml 文件拷贝到项目的 resources 目录中

 

        虚拟机中后台启动hive 

hiveserver2 &
nohup hive --service metastore &

连接Hive操作 

在操作hive时,需要对哪个库的表进行操作则需要写 -> 数据库名.表名 不然都会默认使用default数据库 
spark.sql("select * from ee.user")
def main(args: Array[String]): Unit = {//创建Session对象val spark = SparkSession.builder() //构建器.appName("sparkSQL") //序名称程.master("local[*]") //执行方式:本地.enableHiveSupport() //支持hive相关操作.getOrCreate() //创建对象spark.sql("select * from ee.user")spark.close()}

小试牛刀:Hive版本的WordCount 

注意: 当开启了enableHiveSupport()机制之后可能会导致在本地磁盘的文件会有突然读取不到的清空。原因是hive默认会从HDFS上面获取数据文件

想访问本地磁盘时的解决方法:需在本地磁盘路径前添加file:///

spark.read.text("file:///datas\\a.txt")
def main(args: Array[String]): Unit = {//创建Session对象val spark = SparkSession.builder() //构建器.appName("sparkSQL") //序名称程.master("local[*]") //执行方式:本地.enableHiveSupport() //支持hive相关操作.getOrCreate() //创建对象val df: DataFrame = spark.read.text("file:///D:\\spark.test\\datas\\a.txt") //载入数据df.createTempView("wc") //创建表spark.sql("""|select tmp.word,count(tmp.word) from(|select explode(split(value," ")) word from wc|)tmp|group by tmp.word|order by count desc|""".stripMargin).show()spark.close()}

从MySQL中读取数据存储到hive中 

        准备MySQL数据库user表 

        向Hive创建表时 操作hive权限问题 因为是创建到HDFS上所以要提供root用户权限

System.setProperty("HADOOP_USER_NAME","root")
def main(args: Array[String]): Unit = {//创建Session对象val spark = SparkSession.builder() //构建器.appName("sparkSQL") //序名称程.master("local[*]") //执行方式:本地.enableHiveSupport() //支持hive相关操作.getOrCreate() //创建对象//从MySQL中读取数据存储到hive中 //添加操作HDFS的用户名System.setProperty("HADOOP_USER_NAME","root")//创建info表spark.sql( //需指定数据库不然会创建到默认数据库下"""|create table ee.test(|id int,|name string,|age int|)|""".stripMargin)//jdbc读取mysqlval pro = new Properties()pro.put("user","root") //指定用户名pro.put("password","p@ssw0rd") //指定密码//jdbc("路径","表名","Properties对象")val df = spark.read.jdbc("jdbc:mysql://master:3306/spark-sql","user",pro)df.write.insertInto("ee.test")spark.sql("select * from ee.test").show()spark.close()}

相关内容

热门资讯

最新或2023(历届)嘉祥教育... 信息时报讯 面临中考,初三学生陈黎的父母十分发愁。一是孩子成绩并不拔尖,另外,父母虽然有心让儿子出...
“牛孩儿”“每天一题”助你提升... “小升初”的战鼓越擂越响,你准备好了吗?不要着急,自4月29日起,中原网教育频道官方微信“中原教育”...
这是一封发给西安小升初家长的邀... 秦学·伊顿交大校区4月9日晚上举办的小升初讲座圆满结束了,回顾讲座现场的瞬间,小编有一些小小的感动。...
四大法宝护航“528冲刺班”巨... 又是一个四月,春风扑面,鲜花盛开。又是一届小考,竞争激烈,埋头伏案。又是一轮冲刺,全力以赴,舍我其谁...
小升初数学面谈题型归纳 小升初... 数学在小升初择校中的重要性可以说是毋庸置疑的。很多一线名校例如二中应元、六中珠江、广大附等都对数学情...
vue2+3 pinia v... 1. 为什么要学习vue1.官网https://v3.cn.vuejs.org/guide/migr...
防雷设计、防雷检测为什么选同为... 随着现代科技的不断发展,电子设备得到广泛应用,而雷电等自然灾害也越来越频...
最新或2023(历届)快乐的下...  今天下午,我去了隋唐遗址。那里好美丽;有小河;有草地,小河里有鱼,有虾。  我先说河,有的河水清澈...
最新或2023(历届)6年级数...  篇一  今天,妈妈给我出了一道题,题目是这样的:“一头牛可换6头猪,2头猪可换10只羊,三只羊可换...
本次小升初直升考试试卷分析这就... 还记得前几天预告的小升初直升考试吗?这次的考试对于小学六年级的孩子们来说,是非常重要的。家长朋友们也...
西安小升初528预录来了! 西... 相信大家这几天除了被各种各样的学校参观弄得有点晕,到底这参观是几个意思呢!是有暗示还是没暗示,其实这...
最新或2023(历届)认真积极...   今天妈妈带我去学英语,上课我认真听盘,积极的举手回答问题,下课后妈妈表扬了我,我很高兴。回到家我...
【js】多分支语句练习(2) 个人名片: 😊作者简介:一名大一在校生,w...
Git 的 Cherry-Pi... 1、什么是 Cherry-Pickcherry-pick 是 Git 版本控制工具中的一个命令&#x...
最新或2023(历届)观察日记...  1.  7月23日星期一  今天我从东北回来了,我迫不急待的去看我出发前种下的含羞草种子,都十天了...
多线程进阶学习01------... 开篇:为什么学习多线程 实事求是地讲,对于绝大多数研发人员,...
最新或2023(历届)观察日记...  1.  有一天,我和好朋友们到小河边捉鱼摸虾。忽然发现,阴天的时候小鱼都跳到半空中。这是为什么呢?...
最新或2023(历届)小学数学...   1.  果园里的苹果树是梨树的3倍,老王师傅每天给50棵苹果树20棵梨树施肥,几天后,梨树全部施...
最新或2023(历届)4年级数...  1.  今天上午,我按照爸爸让我写的“假期计划”,开始了复习数学、练习数学、加强数学的“启动仪式”...
最新或2023(历届)观察日记... 小绿豆  9月20日 星期三 晴  今天,老师让我们观察植物的生长过程,我选的是绿豆.我拿了十几粒绿...