Входной путь не существует: hdfs: // quickstart / user / hive / warehouse / products - PullRequest
0 голосов
/ 07 января 2019

При прохождении краткого руководства по 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()

Как решить эту проблему?

1 Ответ

0 голосов
/ 07 января 2019

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

В данном конкретном случае это связано с тем, что, хотя учебник имеет несколько тем, они не являются независимыми. Следовательно, код из первой темы (импорт squoop) необходим для того, чтобы гарантировать, что данные действительно присутствуют для секции искры.

Вы можете вернуться к нескольким шагам в руководстве, чтобы найти соответствующий код, в моем случае это было:

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 включить оболочку искры.

...