Копирование данных из HDFS в улей с помощью SQOOP - PullRequest
0 голосов
/ 29 апреля 2018

Я хочу скопировать данные из таблицы HDFS в hive. Я попробовал приведенный ниже код, но он не выдает никакой ошибки, и данные также не копируются в упомянутую таблицу кустов. Ниже мой код:

sqoop import --connect jdbc:mysql://localhost/sampleOne \
--username root \
--password root \
--external-table-dir "/WithFields" \
--hive-import \
--hive-table "sampleone.customers"   

, где sampleone - база данных в кусте, customers - вновь созданная таблица в кусте, а --external-table-dir - это путь HDFS, из которого я хочу загрузить данные в таблицу улья. Что еще мне не хватает в этом коде выше?

1 Ответ

0 голосов
/ 29 апреля 2018

Если данные в HDFS, вам не нужно Sqoop для заполнения таблицы Hive. Шаги, чтобы сделать это ниже:

Это данные в HDFS

# hadoop fs -ls /example_hive/country
/example_hive/country/country1.csv

# hadoop fs -cat /example_hive/country/*
1,USA
2,Canada
3,USA
4,Brazil
5,Brazil
6,USA
7,Canada

Это создание таблицы Hive DDL

CREATE TABLE sampleone.customers
(
  id int, 
  country string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

Проверить, что таблица Hive пуста

hive (sampleone)> select * from sampleone.customers;
<no rows>

Таблица нагрузки Hive

hive (sampleone)> LOAD DATA INPATH '/example_hive/country' INTO TABLE sampleone.customers;

Убедитесь, что таблица Hive содержит данные

hive (sampleone)> select * from sampleone.customers;
1   USA
2   Canada
3   USA
4   Brazil
5   Brazil
6   USA
7   Canada

Примечание : При таком подходе данные перемещаются из /example_hive/country в HDFS в Hive каталог хранилища (который снова будет HDFS), поддерживающий таблицу.

...