原理
Spark连接上Hive的MetaStore
实现上述步骤包含两点:1.MetaStore需要存在并开机。2.Spark知道MetaStore的IP和端口号。
实现步骤
一、将hive-site.xml拷贝到spark安装路径conf目录
打开虚拟机登录节点,执行以下命令来拷贝hive-site.xml到所有的spark安装服务器上面去
#注意切换至自己的hive目录
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目录下
执行以下命令将连接驱动包拷贝到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服务
P.s.若安装Hive时启动过该服务则略过。
3.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://master:9083</value>
</property>
</configuration>
3.2 后台启动Hive MetaStore服务
nohup /export/server/hive/bin/hive --service metastore 2>&1 >> /var/log.log &
四、测试SparkSQL整合Hive是否成功(2种方式)
4.1 Spark-SQL
#注意切换目录
cd /export/server/spark
bin/spark-sql --master local[2] --executor-memory 512m --total-executor-cores 1
成功进入后,输入show databases; 查看数据库。
4.2 PySpark-Shell
bin/spark-shell --master local[3]或bin/pyspark --master local[2]
成功进入后,输入 spark.sql("show databases").show() 查看数据库。