SQL优化翻译器(执行引擎),翻译SQL到MapRedue并提交到YARN执行metaStore元数据管理中心 二、Spark On Hive解决方案
Spark提供执行引擎能力Hive的metaStore提供元数据管理功能让Spark和metaStore连接起来 三、Spark On Hive的核心
引擎:spark元数据管理:metastore 四、总结
Spark On Hive就是把Hive的metaStore服务拿过来,给Spark做元数据管理用而已
二、配置- 在Spark的conf目录中,创建hive-site.xml
hive.metastore.warehouse.dir /user/hive/warehouse hive.metastore.local false hive.metastore.uris thrift://node1:9083
将mysql的驱动jar包放入spark的jars目录
确保Hive配置了metaStore相关的服务,检查hive配置文件目录内的hive-site.xml,确保有如下的配置:
hive.metastore.uris thrift://node1:9083/value>
启动hive的metaStore服务
nohup /export/server/hive/bin/hive --service metastore 2>&1 >> /var/log/metastore.log &
import os
from pyspark.sql import SparkSession
os.environ['SPARK_HOME'] = '/export/server/spark'
PYSPARK_PYTHON = '/root/anaconda3/envs/pyspark_env/bin/python'
os.environ['PYSPARK_PYTHON'] = PYSPARK_PYTHON
os.environ['PYSPARK_DRIVER_PYTHON'] = PYSPARK_PYTHON
if __name__ == '__main__':
spark = SparkSession
.builder
.appName("test")
.master("local[*]")
.config("spark.sql.shuffle.partitions","4")
.config("spark.sql.warehouse.dir","hdfs://node1:8020/user/hive/warehouse")
.config("hive.metastore.uris","thrift://node1:9083")
.enableHiveSupport()
.getOrCreate()
spark.sql("""SELECt * FROM testttt.student""").show()



