当前位置:   article > 正文

hive on spark 集成(spark-sql 整合hive)_hive集成spark

hive集成spark

       Spark SQL整合hive就是获取hive表中的元数据信息(在mysql中),然后通过Spark SQL来操作数据。

整合步骤:

1、拷贝hive配置文件到spark

  • 查看hive 目录中conf目录下的配置文件,hive-site.xml,可以发现之前配置的hive的元数据信息在master的mysql数据库中。
  1. <property>
  2. <name>javax.jdo.option.ConnectionURL</name>
  3. <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  4. <description>JDBC connect string for a JDBC metastore</description>
  5. </property>
  • 整合需要spark能够读取找到Hive的元数据以及数据存放位置。将hive-site.xml文件拷贝到Spark的conf目录下,同时添加metastore的url配置(对应hive安装节点,我的为master节点)。

具体配置如下:

  1. <property>
  2. <name>hive.metastore.schema.verification</name>
  3. <value>false</value>
  4. </property>
  5. <property>
  6. <name>hive.server2.authentication</name>
  7. <value>NOSASL</value>
  8. </property>
  9. <property>
  10. <name>hive.metastore.local</name>
  11. <value>false</value>
  12. </property>
  13. # 添加metastore的url配置(对应hive安装节点,我的为master节点)
  14. <property>
  15. <name>hive.metastore.uris</name>
  16. <value>thrift://master:9000</value>
  17. </property>
  • 修改完后再发送给其他节点
  1. scp hive-site.xml slave1:/usr/local/spark/conf/
  2. scp hive-site.xml slave2:/usr/local/spark/conf/

2、拷贝hive中mysql驱动到spark

在master中hive的lib目录下执行以下命令(因为在安装hive时已经拷贝了mysql驱动):

切换到hive的lib目录下查看mysql驱动包:

cd /usr/local/apache-hive-1.2.2-bin/lib/

 

  1. cp mysql-connector-java-5.1.37.jar /usr/local/spark/jars/
  2. scp mysql-connector-java-5.1.37.jar slave1:/usr/local/spark/jars/
  3. scp mysql-connector-java-5.1.37.jar slave2:/usr/local/spark/jars/

 3、启动服务

  • 启动HDFS,YARN集群
[root@master ~]# start-all.sh

  • 检查mysql是否启动:

#查看状态

service mysqld status

#启动

service mysqld start
  • 启动hive metastore服务
bin/hive --service metastore

  • 启动hive:
  1. cd /usr/local/apache-hive-1.2.2-bin/
  2. bin/hive

 

  • 启动spark
  1. [root@master ~]# cd /usr/local/spark/sbin
  2. [root@master sbin]# ./start-all.sh

启动spark-shell

  1. [root@master ~]# cd /usr/local/spark/bin
  2. [root@master spark]# ./spark-shell
  3. [root@master ~]# cd /usr/local/spark/bin
  4. [root@master spark]# ./spark-shell

 在spark安装目录的bin目录下:

启动spark-sql

bin/spark-sql

 

#查看数据库

show databases;

 

#使用数据库

use spark_us_covid

#查看表

show tables;

 

 #查看表数据select * from top10_cases_state;

 

启动spark-shell进行查询:

spark.sql("show databases").collect();

 

 到此,spark整合hive全部完成。本次使用的hive为1.2.2的版本,spark为spark-2.4.7-hadoop2.7。而我的虚拟机中hadoop版本为2.8,可以向下兼容。

不存在hive与spark不兼容的情况,所以在遇到这种问题时可以考虑自己的spark jars包中是否有hive的相关jar包。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号