我的虚拟机中运行着 hortonworks 沙箱。我已经完成了所有 hive-site.xml 配置并放置在 Spark/conf 文件中。
我可以使用 PySpark 访问 HBase 并创建/更新表,但是当我在 scala 中执行相同的实现时,会出现以下错误:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:file:/user/hive/warehouse/src is not a directory or unable to create one)
我也更改了对“hive/warehouse”文件夹的权限,但仍然给我同样的错误。
[root@sandbox ~]# sudo -u hdfs hadoop fs -ls -d /user/hive/warehouse
drwxrwxrwt - hdfs hdfs 0 2015-02-02 09:19 /user/hive/warehouse
我的 hive-site.xml 包含以下属性
<property>
<name>hive.security.authorization.enabled</name>
<value>false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>java.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>
</description>
</property>
提前非常感谢您。
最佳答案
终于发现我犯的错误了。
必须在本地计算机上运行的代码中指定正确的 SPARK_HOME 位置
import os
import sys
# Path for spark source folder
os.environ['SPARK_HOME']="/Users/renienj/spark-1.1.0/dist"
基本上,本地计算机没有 HDFS 的权限,因为类路径不包含 HADOOP_CONF_DIR。因此,warehouse和tmp目录位于Hadoop中,但表目录创建失败存储在本地文件系统中。
所以要解决这个问题,我们需要将打包的JAR与本地分发包一起提交。
$SPARK_HOME/bin/spark-submit --class "Hello" --master local[4] hello-scala_2.10-1.0.jar
关于scala - Spark-Scala HBase 表创建失败(MetaException(消息 :file:/user/hive/warehouse/src is not a directory or unable to create one),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28284527/