Входной путь не существует: hdfs://quickstart/user/hive/warehouse/products

Просматривая учебник по быстрому запуску cloudera, я столкнулся с этой ошибкой:

Входной путь не существует: hdfs://quickstart/user/hive/warehouse/products

Проблема возникла, когда я выполнял этот искровой код:

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()

Как это решить?


person Dennis Jaheruddin    schedule 07.01.2019    source источник


Ответы (1)


Путь HDFS относится к хранилищу улья. Быстрая проверка подтвердила, что путь на HDFS не существует (как и таблица куста).

В данном конкретном случае это связано с тем, что хотя в учебнике есть несколько тем, они не являются независимыми. Следовательно, код из первой темы (squoop import) необходим, чтобы убедиться, что данные действительно на месте для раздела 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

Обратите внимание, что перед запуском команды squoop вам понадобится exit искровая оболочка.

person Dennis Jaheruddin    schedule 07.01.2019