输入路径不存在:hdfs://quickstart/user/hive/warehouse/products

dm7nw8vv  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(426)

在阅读cloudera快速入门教程时,我遇到了以下错误:
输入路径不存在:hdfs://quickstart/user/hive/warehouse/products
问题发生在我执行此Spark代码时:

val orders = order_items.map { x => (
    x.get("order_item_product_id"),
    (x.get("order_item_order_id"), x.get("order_item_quantity")))
}.join(
  products.map { x => (
    x.get("product_id"),
    (x.get("product_name")))
  }
).map(x => (
    scala.Int.unbox(x._2._1._1), // order_id
    (
        scala.Int.unbox(x._2._1._2), // quantity
        x._2._2.toString // product_name
    )
)).groupByKey()

如何解决?

yyyllmsg

yyyllmsg1#

hdfs路径指的是hive仓库。快速检查确认hdfs上的路径不存在(hive表也不存在)。
在这种特殊情况下,这是因为尽管本教程有几个主题,但它们并不是独立的。因此,需要来自第一个主题(squoop导入)的代码来确保spark部分的数据实际到位。
您可以返回教程中的几个步骤来查找相关代码,在我的示例中是:

sqoop import-all-tables \
    -m 1 \
    --connect jdbc:mysql://quickstart:3306/retail_db \
    --username=retail_dba \
    --password=cloudera \
    --compression-codec=snappy \
    --as-parquetfile \
    --warehouse-dir=/user/hive/warehouse \
    --hive-import

请注意,您将希望 exit 运行squoop命令前的spark shell。

相关问题