感谢回复,经过查阅资料和实践,我的疑问解决了。主要原因还是我对hive的配置不够了解,只顾跟着网上教程配置的结果。
hive-site.xml 内容的配置,一部分是针对hive服务端的,一部分是针对客户端的,
我的环境spark2.2.0, hive2.1.1, 开始的spark hive-site.xml配置如下,
[mw_shl_code=bash,true]
<configuration><property>
<name>hive.metastore.uris</name>
<value>thrift://hiveServerhost:9083</value>
</property>
</configuration>
[/mw_shl_code]
这其实只是客户端的配置,metastore服务需要先启动, 显然只能从hive启动metastore了(hive是服务端的配置),所以就显得spark依赖了hive,
我的hive端配置:
[mw_shl_code=bash,true]property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://Goblin01:3306/metastore?createDatabaseIfNotExist=true</value>
<description>the URL of the MySQL database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>[/mw_shl_code]
用服务端配置替换了我的spark原来配置后,spark-shell,spark-sql顺利启动,当然,中间有一些小问题要解决。
上面相关配置是从网上复制的,只为说明问题,我的实际配置多一些,但是主要的配置上面都体现了。
以上仅代表我自己的理解,有问题请大家指出。
|