我想从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)
答案 0 :(得分:2)
我遇到了同样的问题,并按如下方式解决了这个问题:
将hive conf目录添加到spark-env.sh SPARK_CLASSPATH = /选择/ Apache的蜂房-0.13.1滨/ CONF
通过添加" 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