遇到的问题:
1、hive中的数据库和sparksql 操作的数据库不同步。
观察上面的数据库看是否同步 !!!
2、查询服务器中MySQL中hive的数据库,发现创建的位置没有在hdfs上,而是在本地。
这个错误产生的原因是:
你使用sparksql创建了数据库,没有使用hive界面创建。理论讲不管哪个进行创建都应该没问题,sparksql创建数据库有问题,说明spark的集群配置有问题,需要检查。
检查两个方面:
1)spark的yarn集群是否遗漏什么配置
2)spark连接hive有问题
正确界面应该如下所示:
上述截图创建的位置是在hdfs上 同步的!!!观察你的是否这样?
解决办法:
如果你的不同步,可以试一下如下这个办法。
1、在hive 下修改hive-site.xml
<property><name>hive.metastore.schema.verification</name><value>false</value></property>
2、将hive-site.xml 复制到 spark的conf 下
cp /opt/installs/hive/conf/hive-site.xml /opt/installs/spark/conf
3、修改spark下的hive-site.xml
<property><name>hive.server2.thrift.port</name><value>10001</value><description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description></property>
4、接着分发一下(这里用到了分发脚本xsync.sh):
xsync.sh /opt/installs/spark/conf/hive-site.xml
5、重启thrift服务:
#停止
/opt/installs/spark/sbin/stop-thriftserver.sh#启动
/opt/installs/spark/sbin/start-thriftserver.sh
--hiveconf hive.server2.thrift.port=10001
--hiveconf hive.server2.thrift.bind.host=bigdata01
--master yarn
--conf spark.sql.shuffle.partitions=2
使用datagrip 重新连接一下,记得刷新一下连接。