根据原理,就是Spark能够连接上Hive的MetaStore就可以了。所以:
1.MetaStore需要存在并开机
2.Spark知道MetaStore在哪里(IP端口号)
SparkSQL 和 Hive整合关键四步骤
第一步:将hive-site.xml拷贝到spark安装路径conf目录
第二步:将mysql的连接驱动包拷贝到spark的jars目录下
第三步:Hive开启MetaStore服务
第四步:测试SparkSQL整合Hive是否成功
Spark on Hive原理和配置
第一步:将hive-site.xml拷贝到spark安装路径conf目录
node1执行以下命令来拷贝hive-site.xml到所有的spark安装服务器上面去
- cd /export/server/hive/conf
- cp hive-site.xml /export/server/spark/conf/
- scp hive-site.xml root@node2:/export/server/spark/conf/
- scp hive-site.xml root@node3:/export/server/spark/conf/
第二步:将mysql的连接驱动包拷贝到spark的jars目录下
node1执行以下命令将连接驱动包拷贝到spark的jars目录下,三台机器都要进行拷贝
- cd /export/server/hive/lib
- cp mysql-connector-java-5.1.32.jar /export/server/spark/jars/
- scp mysql-connector-java-5.1.32.jar root@node2:/export/server/spark/jars/
- scp mysql-connector-java-5.1.32.jar root@node3:/export/server/spark/jars/
第三步:Hive开启MetaStore服务
(1)修改 hive/conf/hive-site.xml新增如下配置
远程模式部署metastore 服务地址
- <?xml version="1.0"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <configuration>
- <property>
- <name>hive.metastore.uris</name>
- <value>thrift://node1:9083</value>
- </property>
- </configuration>
(2) 后台启动 Hive MetaStore服务
- nohup /export/server/hive/bin/hive --service metastore 2>&1 >> /var/log.log &
第四步:测试SparkSQL整合Hive是否成功
[方式1]Spark-SQL方式测试
- cd /export/server/spark
- bin/spark-sql --master local[2] --executor-memory 512m --total-executor-cores 1
执行成功后的界面:进入到spark-sql 客户端命令行界面
查看当前有哪些数据库, 并创建数据库
- show databases;
- create database sparkhive;
[方式2]PySpark-Shell方式启动:
- bin/spark-shell --master local[3] 或bin/pyspark --master local[2]
- spark.sql("show databases").show()