在使用spark-sql的时候发现,可以连接上hive并可以使用show tables的语句查询到表,但是后来尝试发现没法做其他更多的操作,
通过log信息发现,是metadata无法连接的问题,联想到前天在配置spark连接hive的时候见过一个启动metadata的命令
./hive --service metadata & 于是猜想是因为没有把这个服务给启动,于是spark-sql虽然可以通过配置文件找到metadata的目录但是并没法读取到真正
metadata的文件所以没法操作。
后再启动metadata服务后,任然报背的错误,即ns1找不到,想到在配置的时候会寻找hadoop的相关服务,因为这些对hive的操作会在hdfs上进行
操作,所以需要hdfs-site.xml,靠背过去后运行无误。
在这种可以更直接的指定classpath的方式来制定hadoop运行的目录,而不用使用spark自带的hadoop的包
在写spark连接hive的程序是,
.config("hive.metastore.uris"<