Hive 无法从spark查询配置单元表

Hive 无法从spark查询配置单元表,hive,apache-spark,Hive,Apache Spark,我想从spark创建/访问配置单元表 我已将hive-site.xml放在spark/conf目录中。即使它在我运行spark shell的目录中创建了一个本地元存储,并且存在一个错误 当我尝试创建新的配置单元表时,出现此错误 sql(“如果不存在创建表src(key INT,value STRING)”) 请提出解决此问题的方法 15/02/12 10:35:58 ERROR RetryingHMSHandler: MetaException(message:file:/user/hive/w

我想从spark创建/访问配置单元表

我已将hive-site.xml放在spark/conf目录中。即使它在我运行spark shell的目录中创建了一个本地元存储,并且存在一个错误

当我尝试创建新的配置单元表时,出现此错误

sql(“如果不存在创建表src(key INT,value STRING)”)

请提出解决此问题的方法

15/02/12 10:35:58 ERROR RetryingHMSHandler: MetaException(message:file:/user/hive/warehouse/src is not a directory or unable to create one)
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:1239)
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_with_environment_context(HiveMetaStore.java:1294)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)

我遇到了同样的问题,解决方法如下:

  • 将配置单元配置目录添加到spark-env.sh SPARK_CLASSPATH=/opt/apache-hive-0.13.1-bin/conf

  • 在配置单元配置目录中编辑hdfs站点,方法是添加“hdfs://master:8020“到hive.metastore.warehouse.dir。例如:hdfs://master:8020/user/hive/warehouse


  • 在配置单元上运行Spark SQL时,我遇到了类似的错误,结果表明,运行Spark SQL的用户(mac的)没有对mac目录/user/hive/warehouse的写入权限,Spark/hive试图以某种方式创建该目录(但不确定原因,因为我的元存储在mysql上,数据文件在hdfs中)。 在我使用“sudo”启动Spark shell后,错误消失了,即


    bin>sudo./sparkshell

    您可以尝试一些东西。1) 确保hadoop已启动<代码>启动所有.sh和
    jps
    以确认。2) 您可能需要先创建一个数据库。Spark不喜欢默认的db。这对我很有用!!谢谢!我实际使用的是sparkSQL,它将此属性设置为默认值,即“file:/user/hive/warehouse”。但是我的用户当然没有这个目录的权限。因此,在启动spark脚本时,我在其中包含了一个java属性:-Dhive.metastore.warehouse.dir=hdfs://hdfs_master_ip:hdfs_port/user/hive/warehouse