我能够成功运行sqoop export
sqoop export --connection-param-file /user/xgr0naru/sqoop.properties --connect jdbc:oracle:thin:@ // XXx --username xx --password xx --table TZ5CK --export-dir / data / raw / oltp / cogen / oraclexport / TZ5CK / 2015-08-18 / --input-fields-terminated-by' \ 001' - lines-terminated-by'\ n'--input-escaped-by '\“' - 输入 - 可选 - 封闭 - 由'\”'
路径/user/xgr0naru/sqoop.properties是本地的,hdfs路径在这里不起作用
但是我需要在oozie中包含相同的sqoop导出操作,因此路径应该在hdfs路径中 那么我如何使用hdfs路径为--connection-param-file,当我使用-D oracle.jdbc.mapDateToTimestamp = false时它也不会,但使用--connection-param-file它可以工作。
答案 0 :(得分:0)
是
选项文件可以是hdfs(如果您正在运行预定的Oozie作业,这是有意义的)。 oozie的技巧是使用<file>
标签指定文件。
例如,来自workflow.xml:
...
<command>--options-file sqoop_params.txt --connection-param-file sqoop_connect_params.txt --password-file sqoop_pwd.txt --target-dir ${someDir}/input-data/sqoop</command>
<file>sqoop_params.txt</file>
<file>sqoop_connect_params.txt</file>
<file>sqoop_pwd.txt</file>
...
确保将配置文件(sqoop_params.txt,sqoop_connect_params.txt)放在appRoot HDFS目录中,这是Oozie默认读取的目录。但是,密码文件必须位于用户根HDFS目录中。 Oozie设置可以是我发现的皮塔饼。
我已尝试指定整个hdfs路径,但在4.2.0上我失败了(可能是oozie中的错误,不确定)。
答案 1 :(得分:0)
是的,你可以做到。
请在workflow.xml中添加这些行。
optionFile=sqoop_option.txt
connParamFile=sqoop_conn_param.txt
在job.properties中添加这些代码。
{{1}}
将sqoop_option.txt和sqoop_conn_param.txt放在HDFS应用程序根文件夹中。