gpt4 book ai didi

hadoop - 将参数传递给 sqoop 作业

转载 作者:可可西里 更新时间:2023-11-01 14:16:31 27 4
gpt4 key购买 nike

我正在创建一个 sqoop 作业,该作业将在 Oozie 中安排以将每日数据加载到 Hive 中。

我想以Date为参数增量加载到hive中,传递给sqoop job

经过大量研究后,我无法找到将参数传递给 Sqoop 作业的方法

最佳答案

您通过两个阶段向下传递日期来做到这一点:

  1. 工作流程协调员

在您的协调器中,您可以将日期传递给它作为 <property> 执行的工作流,像这样:

<coordinator-app name="schedule" frequency="${coord:days(1)}"
start="2015-01-01T00:00Z" end="2025-01-01T00:00Z"
timezone="Etc/UTC" xmlns="uri:oozie:coordinator:0.2">
...
<action>
<workflow>
<app-path>${nameNode}/your/workflow.xml</app-path>
<configuration>
<property>
<name>workflow_date</name>
<value>${coord:formatTime(coord:nominalTime(), 'yyyyMMdd')}</value>
</property>
</configuration>
</workflow>
</action>
...
</coordinator-app>
  1. Sqoop 的工作流

在您的工作流程中,您可以使用 ${workflow_date} 在 Sqoop 调用中引用该属性变量,像这样:

<sqoop xmlns="uri:oozie:sqoop-action:0.2">
...
<command>import --connect jdbc:connect:string:here --table tablename --target-dir /your/import/dir/${workflow_date}/ -m 1</command>
...
</sqoop>

关于hadoop - 将参数传递给 sqoop 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28880045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com