南宁网站运营哪家好,历下区网站建设公司,莆田网站建设制作,长沙最好的装修公司排名Spark on Hive
集成原理 HiveServer2的主要作用: 接收SQL语句#xff0c;进行语法检查#xff1b;解析SQL语句#xff1b;优化#xff1b;将SQL转变成MapReduce程序#xff0c;提交到Yarn集群上运行SparkSQL与Hive集成#xff0c;实际上是替换掉HiveServer2。是SparkSQL…Spark on Hive
集成原理 HiveServer2的主要作用: 接收SQL语句进行语法检查解析SQL语句优化将SQL转变成MapReduce程序提交到Yarn集群上运行SparkSQL与Hive集成实际上是替换掉HiveServer2。是SparkSQL中的HiveServer2替换掉了Hive中的HiveServer2。集成以后优点如下
1- 对于SparkSQL来说可以避免在代码中编写schema信息。直接向MetaStore请求元数据信息
2- 对于SparkSQL来说多个人可以共用同一套元数据信息避免每个人对数据理解不同造成代码功能兼容性问题
3- 对于Hive来说底层执行引擎由之前的MapReduce变成了Spark Core能够提升运行效率
4- 对于使用者/程序员来说SparkSQL与Hive集成对于上层使用者来说是完全透明的。在代码中集成Hive
代码中集成Hive
from pyspark import SparkConf, SparkContext
import os
from pyspark.sql import SparkSession# 绑定指定的Python解释器
os.environ[SPARK_HOME] /export/server/spark
os.environ[PYSPARK_PYTHON] /root/anaconda3/bin/python3
os.environ[PYSPARK_DRIVER_PYTHON] /root/anaconda3/bin/python3if __name__ __main__:# 1- 创建SparkSession对象spark.sql.warehouse.dir告诉Spark数据存储在什么地方。默认使用本地磁盘进行存储。推荐使用HDFShive.metastore.uris告诉Spark元数据信息去什么地方找MetaStoreenableHiveSupport()开启SparkSQL和Hive的集成spark SparkSession.builder\.config(spark.sql.warehouse.dir,hdfs://node1:8020/user/hive/warehouse)\.config(hive.metastore.uris,thrift://node1.itcast.cn:9083)\.appName(sparksql_hive)\.master(local[*])\.enableHiveSupport()\.getOrCreate()# 2- 数据输入# 3- 数据处理# 4- 数据输出spark.sql(show databases).show()spark.sql(select *from a.studentwhere id2).show()# 5- 释放资源spark.stop()总结
spark.sql.warehouse.dir: 告知Spark数据表存放的地方。推荐使用HDFS进行存储。如果不配置默认使用本地磁盘存储。
hive.metastore.uris: 告知SparkMetaStore元数据管理服务的连接信息
enableHiveSupport() : 开启Spark和Hive的集成