В идеале, даже если это не правильный способ сделать что-то в слизи. Ваш ответ работает на стороне сценариев оболочки Linux. Спасибо за ваш ответ
я есть сценарий оболочки, который выполняетsqoop job
, Сценарий ниже.
!#/bin/bash
table=$1
sqoop job --exec ${table}
Теперь, когда я передаю имя таблицы в рабочем процессе, я получаю задание sqoop для успешного выполнения.
Рабочий процесс ниже.
<workflow-app name="Shell_script" xmlns="uri:oozie:workflow:0.5">
<start to="shell"/>
<kill name="Kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="shell_script">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>sqoopjob.sh</exec>
<argument>test123</argument>
<file>/user/oozie/sqoop/lib/sqoopjob.sh#sqoopjob.sh</file>
</shell>
<ok to="End"/>
<error to="Kill"/>
</action>
<end name="End"/>
</workflow-app>
Задание успешно выполняется для таблицыtest123
.
Теперь у меня есть 300 рабочих мест sqoop, как и выше. Я хочу выполнять 10 заданий sqoop параллельно. Все имена таблиц находятся в одном файле.
Теперь я хочу вернуться к файлу и выполнить 10 заданий sqoop для первых 10 таблиц и так далее.
Как я могу это сделать? я должен подготовить 10 рабочих процессов? Я буквально смущен.