Я новичок в cloudera и пытаюсь использовать sqoop в виртуальной машине cloudera quickstart.
Я запускаю следующую команду для загрузки таблицы из mysql в куст:
sqoop import --connect jdbc:mysql://quickstart:3306/retail_db --username=retail_dba --password=cloudera --table departments_hive01 --hive-import --hive-overwrite --null-string '' -m 1 --as-textfile
По логам все выглядит нормально. Я даже вижу mapreduce.ImportJobBase: Retrieved 9 records.
, как и ожидалось. Однако после дальнейшего изучения я вижу, что таблица не существует в улье, и вместо этого она была записана в /user/cloudera/departments_hive01
Если я выполняю ту же самую точную команду с --as-parquetfile
вместо --as-textfile
, таблица загружается в кусткак и ожидалось, за исключением параметра --null-string
теперь игнорируется.
Я замечаю, когда используется --as-textfile
, я никогда не вижу никаких журналов, которые выглядят как:
19/11/03 11:08:59 INFO hive.metastore: Trying to connect to metastore with URI thrift://quickstart.cloudera:9083
19/11/03 11:08:59 INFO hive.metastore: Opened a connection to metastore, current connections: 1
19/11/03 11:08:59 INFO hive.metastore: Connected to metastore.
, но я делаю с--as-parquetfile
аналогично с --as-textfile
я вижу строку журнала:
19/11/03 11:03:56 INFO hive.HiveImport: Loading uploaded data into Hive
, которую я не вижу с --as-parquetfile
почему паркет загружается в улейс --null-string игнорируется? почему текст не загружается в куст, но работает --null-string?
Версия Sqoop: Sqoop 1.4.6-cdh5.13.0