sqoop不会作为文本文件导入到配置单元,但会作为实木复合地板文件导入

时间:2019-11-03 19:14:45

标签: mysql hadoop hive sqoop

我是cloudera的新手,正在尝试在cloudera quickstart VM中使用sqoop。

我正在运行以下命令,将表从mysql加载到配置单元:

Object {
    "answers": Object {
      "yzd8dedz2": Object {
        "answers": "Koool",
        "author": "yrpgRXZzdd1V0WY2",
        "timestamp": 1572804148567,
      },
    },
    "author": "awzmr2L9qwzdo2",
    "key": "ddkdkdkd",
    "question": "Oh yeah",
    "timestamp": 1572727434712,
  },
]

根据日志,一切看起来都很好。我什至看到Object { "answers": Object { "key" : "yzd8dedz2", //pass key here "answers": "Koool", "author": "yrpgRXZzdd1V0WY2", "timestamp": 1572804148567, }, "author": "awzmr2L9qwzdo2", "key": "ddkdkdkd", "question": "Oh yeah", "timestamp": 1572727434712, }, ] 符合预期。但是,经过进一步调查,我发现该配置单元中不存在该表,而是将该表写入了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中看不到

为什么忽略--null-string的实木复合地板上载到配置单元? 为什么文本不上传到配置单元,但是--null-string有效?

Sqoop版本:Sqoop 1.4.6-cdh5.13.0

0 个答案:

没有答案