无法从spark查询配置单元表

时间:2015-02-12 05:12:19

标签: hive apache-spark

我想从spark创建/访问hive表。

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

当我尝试创建一个新的配置单元表时,我收到此错误。

sqlContext.sql(“CREATE TABLE IF NOT EXISTS 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)

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并按如下方式解决了这个问题:

  1. 将hive conf目录添加到spark-env.sh SPARK_CLASSPATH = /选择/ Apache的蜂房-0.13.1滨/ CONF

  2. 通过添加" hdfs:// master:8020"来编辑hive conf目录中的hdfs-site到hive.metastore.warehouse.dir。例如:hdfs:// master:8020 / user / hive / warehouse

答案 1 :(得分:1)

我在hive上运行Spark SQL时遇到了类似的错误,结果发现Spark SQL的运行用户(mac)没有对mac目录/ user / hive / warehouse的写权限,Spark / Hive正在尝试以某种方式创建(不知道为什么,因为我的Metoreore是在mysql上,而数据文件在hdfs中)。 使用“sudo”启动Spark shell后,错误消失了,即

箱> sudo ./spark-shell