spark sql可以使用hive里面的表,并做操作,并且会很快
但是需要做如下配置
1.hive-site.xml hive的元数据配置文件要拷贝到spark的conf路径下
2.spark的启动要加上--jars mysql连接jar包的路径
如果还是出现错误:
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://slave02:3306/testdb
报错原因是没有jdbc驱动
解决办法
--driver-class-path xxx.jar 或者
--jars xxx.jar
如果添加了命令和jar运行也不行,则用以下办法
在jdk路径下的\jre\lib\ext下添加mysql的连接jar包 问题解决
这样每次启动就不用写jars了
3.还要在hive路径下的hive-site.xml里面添加上,保证兼容,不然会出现spark-sql使用过后
hive在执行报错!
hive> show tables;
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
解决办法:hive目录下conf下面hive-site.xml
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
4.类比一下执行的速度: