Sparklyr未连接到我的蜂巢仓库

时间:2018-08-05 19:23:30

标签: apache-spark hive yarn sparklyr

我做的很愚蠢,尝试从头开始安装Yarn / Hive / Spark / R平台,而不是使用Hortonworks或Cloudera。我想出了很多方法,但一直想让我的Sparklyr连接到我的Hive仓库而陷入困境。

我在一台计算机上使用Rstudio,并连接到位于单独群集上的yarn-client。我几乎到处都放置了hive-site.xml,本地$SPARK_HOME/conf以及每个hadoop节点的$SPARK_HOME/conf$HADOOP_CONF_DIR。在hive-site.xml中,我加入了参数:

  <property>
    <name>spark.sql.warehouse.dir</name>
    <value>hdfs://<driver node>/user/hive/warehouse/</value>
    <description>The loation of the hive warehouse</description>
 </property>

我认为应该使它变得 pretty 清楚我正在尝试使用蜂巢,但是当我运行此代码时:

DBI::dbGetQuery(sc, "CREATE DATABASE test")
DBI::dbGetQuery(sc, "use test")
iris_spark_table <- copy_to(sc, iris, overwrite = TRUE)
sdf_copy_to(sc, iris_spark_table)
DBI::dbGetQuery(sc, "create table iris_hive as SELECT * FROM iris_spark_table")

我收到此错误:

org.apache.hadoop.hive.ql.metadata.HiveException: 
  java.io.IOException: 
    Mkdirs failed to create file:/<my-r-code's-working-dir>/spark-warehouse/test.db/iris_hive/.hive-staging_hive_2018-08-05_14-18-58_646_6160231583951115949-1/-ext-10000/_temporary/0/_temporary/attempt_20180805141859_0013_m_000000_3 
    (exists=false, cwd=file:/tmp/hadoop-hadoop/nm-local-dir/usercache/dzafar/appcache/application_1533357216333_0015/container_1533357216333_0015_01_000002)

我想念什么???在此先感谢!

1 个答案:

答案 0 :(得分:2)

首先,Spark特定的属性应放置在Spark配置文件中。这意味着你应该放

spark.sql.warehouse.dir

$SPARK_HOME/conf/spark-defaults.conf

另外,您可能会遇到搜索路径上没有hdfs-site.xml的问题。