Spark-sql 连接hive中遇到的问题

在使用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","thrift://192.168.159.101:9083")
.config("hive.metastore.warehouse.dir","hdfs://192.168.159.101:9000/user/hive/warehouse")
.config("spark.sql.warehouse.dir","hdfs://192.168.159.101:9000/user/hive/warehouse")
需要指定最后一项,讲其操作的目录写在hdfs上,

再开始的时候遇到了hdfs的操作权限问题,使用hadoop fs -chmood 777(百度)修改权限,权限有目录分级,当需要使用到某目录的时候,修改器权限

你可能感兴趣的:(hive,spar,metadata,权限)