Sqoop增量导入参数顺序?
Sqoop incremental import argument order?
我正在尝试使用来自 mysql 的 sqoop 导入增量加载。下面是我在 unix 控制台上 运行ning 的命令:
sqoop job \
--create sample_job --import -Dmapred.job.queue.name=realtime \
--connect jdbc:mysql://hostname/db?zeroDateTimeBehavior=convertToNull \
--driver com.mysql.jdbc.Driver \
--table SAMPLE_TABLE -m 1 \
--username tony \
--password stark \
--incremental lastmodified \
--check-column ts \
--last-value 2018-04-24 \
--target-dir /some/tmp/location/ \
--map-column-hive XYZ=tinyint \
--null-string '\N' \
--null-non-string '\N'
但是,得到一个典型的参数错误:
/usr/hdp/2.6.4.0-91//sqoop/conf/sqoop-env.sh: line 21: HADOOP_CLASSPATH=${hcat -classpath}: bad substitution
Warning: /usr/hdp/2.6.4.0-91/accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
18/04/25 11:24:52 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.6.4.0-91
18/04/25 11:24:52 ERROR tool.BaseSqoopTool: Error parsing arguments for job:
我发现有很多可用资源展示了如何 运行 使用命令导入,但大多数资源没有显示确切的命令行并且传递了不正确的参数。我在某处看到参数的顺序很重要,因此尝试切换顺序但没有用。这是一个简单的问题,有人能告诉我正确的语法吗?
提前致谢。
我认为你的语法有问题。 https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1769640
$ sqoop job --create myjob -- import --connect jdbc:mysql://example.com/db \
--table mytable
enter code here
第一个参数之间有一个 space,在导入参数之前用 space 替换您的命令。
sqoop job \
--create sample_job -- import -Dmapred.job.queue.name=realtime \
--connect jdbc:mysql://hostname/db?zeroDateTimeBehavior=convertToNull \
--driver com.mysql.jdbc.Driver \
--table SAMPLE_TABLE -m 1 \
--username tony \
--password stark \
--incremental lastmodified \
--check-column ts \
--last-value 2018-04-24 \
--target-dir /some/tmp/location/ \
--map-column-hive XYZ=tinyint \
--null-string '\N' \
--null-non-string '\N'
它正在运行。 exec时需要传递参数,顺序如下:
sqoop job -Dmapred.job.queue.name=realtime --meta-connect "jdbc:hsqldb:file:/tmp/sqoop-meta.db;shutdown=true" -exec
我正在尝试使用来自 mysql 的 sqoop 导入增量加载。下面是我在 unix 控制台上 运行ning 的命令:
sqoop job \
--create sample_job --import -Dmapred.job.queue.name=realtime \
--connect jdbc:mysql://hostname/db?zeroDateTimeBehavior=convertToNull \
--driver com.mysql.jdbc.Driver \
--table SAMPLE_TABLE -m 1 \
--username tony \
--password stark \
--incremental lastmodified \
--check-column ts \
--last-value 2018-04-24 \
--target-dir /some/tmp/location/ \
--map-column-hive XYZ=tinyint \
--null-string '\N' \
--null-non-string '\N'
但是,得到一个典型的参数错误:
/usr/hdp/2.6.4.0-91//sqoop/conf/sqoop-env.sh: line 21: HADOOP_CLASSPATH=${hcat -classpath}: bad substitution
Warning: /usr/hdp/2.6.4.0-91/accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
18/04/25 11:24:52 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.6.4.0-91
18/04/25 11:24:52 ERROR tool.BaseSqoopTool: Error parsing arguments for job:
我发现有很多可用资源展示了如何 运行 使用命令导入,但大多数资源没有显示确切的命令行并且传递了不正确的参数。我在某处看到参数的顺序很重要,因此尝试切换顺序但没有用。这是一个简单的问题,有人能告诉我正确的语法吗?
提前致谢。
我认为你的语法有问题。 https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1769640
$ sqoop job --create myjob -- import --connect jdbc:mysql://example.com/db \
--table mytable
enter code here
第一个参数之间有一个 space,在导入参数之前用 space 替换您的命令。
sqoop job \
--create sample_job -- import -Dmapred.job.queue.name=realtime \
--connect jdbc:mysql://hostname/db?zeroDateTimeBehavior=convertToNull \
--driver com.mysql.jdbc.Driver \
--table SAMPLE_TABLE -m 1 \
--username tony \
--password stark \
--incremental lastmodified \
--check-column ts \
--last-value 2018-04-24 \
--target-dir /some/tmp/location/ \
--map-column-hive XYZ=tinyint \
--null-string '\N' \
--null-non-string '\N'
它正在运行。 exec时需要传递参数,顺序如下:
sqoop job -Dmapred.job.queue.name=realtime --meta-connect "jdbc:hsqldb:file:/tmp/sqoop-meta.db;shutdown=true" -exec