Spark SQL on Hive是Shark的一个分支,是HIVE执行分析引擎的一个重要利器。在Spark 1.5.1的时候,可以非常简单地在spark shell中进行Hive的访问,然而到了Spark 1.5.2时,发现进入Spark Shell的时候,总是出现报错,其原因总是无法访问hive的metastore,从而无法进行各种操作,相当的烦人的。 看了说明,说是要配置hive thrift服务,然而总是报各种失败! 困扰了很多天,终于搞定了。于是在这边将过程写下来。
(1)进行HIVE的配置
在HIVE配置中
<property> <name>hive.metastore.warehouse.dir</name> <value>hdfs://master:9000/user/hive/warehouse</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://IP:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>ndscbigdata</value> </property>
在spark目录下配置,得添加
<property> <name>hive.metastore.uris</name> <value>thrift://IP:9083</value> </property>
(2) 开启hive服务
hive --service metastore
(3) 开启thrift服务
./sbin/start-thriftserver.sh
(4)测试:beeline,进行连接,输入用户名和密码,轻松搞定!