我是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