首页 文章

无法从 Spark 查询配置单元表

提问于
浏览
2

我想从 create/access1_蜂巢表。

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

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

sqlContext.sql(“如果不存在,则创建表 src(键 INT,值 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 回答

  • 2

    我遇到了同样的问题,并按以下步骤解决了它:

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

    • 通过在 hive.metastore.warehouse.dir 上添加“ hdfs://master:8020”,在 hive conf 目录中编辑 hdfs-site。例如:hdfs://master:8020/user/hive/warehouse

  • 1

    我在蜂巢上运行 Spark SQL 时遇到了类似的错误,结果是 Spark SQL 的运行用户(mac 的)没有对 mac 目录/user/hive/warehouse 的写入权限,Spark/Hive 试图以某种方式创建该目录(不确定为什么,因为我的 metastore 位于 mysql 上,数据文件位于 hdfs 中)。我使用“ sudo”启动 Spark shell i.e 后,错误消失了。

    bin> sudo ./spark-shell

相关问题