2

我的虚拟机中运行着 hortonworks 沙箱。我已经完成了所有 hive-site.xml 配置并放在 Spark/conf 文件中。

我可以使用 PySpark 访问 HBase 并创建/更新表,但是当我在 scala 中执行相同的实现时,它给了我以下错误:

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。MetaException(消息:文件:/user/hive/warehouse/src 不是目录或无法创建目录)

我也更改了对“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>

非常感谢您提前。

4

1 回答 1

2

终于找到了我犯的错误。

必须在本地机器上运行的代码中指定正确的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。因此,仓库tmp目录在 Hadoop 中,但表目录创建失败存储在本地文件系统中。

所以要解决这个问题,我们需要将打包的 JAR 与本地分发包一起提交。

$SPARK_HOME/bin/spark-submit --class "Hello" --master local[4] hello-scala_2.10-1.0.jar
于 2015-02-03T06:25:02.883 回答