2015-03-05 1 views
0

У меня есть несколько hql-файлов, которые мне нужно выполнить, и мне было интересно, какой лучший подход к этому.Выполнение скриптов HQL с использованием Bash Script vs Использование Oozie

В настоящее время мы используем сценарий bash/shell, который проходит через все hql-файлы в пути и выполняет «hive -f * .hql». Проблема, с которой мы сталкиваемся с этим подходом, заключается в наличии ограничения ЦП с количеством которые вы можете начать сразу.

Как вы думаете, лучше ли использовать рабочий процесс Oozie для отправки файлов hql?

Любые другие предложения будут способствовать слишком

ответ

1

Вы могли бы представить несколько в то время, используя xargs и find, например, представить 10 файлов одновременно

find path -maxdepth 1 -name '*.hql' -print0 | xargs -0 -n 10 hive -f 
+0

Мне больше любопытно, как подойти к oozie. Прямо сейчас мы отправляем 5 рабочих мест через аналогичный подход в моем сценарии оболочки – scrayon

0

вы можете использовать работу весной кадров : использовать сценарий оболочки для вызова hql и вызвать сценарий оболочки с использованием весеннего боба

<step id="processing"> 
      <tasklet transaction-manager="jobRepository-transactionManager"> 
       <beans:bean class="example.spring.batch.util.ShellScriptTasklet" scope="step"> 
        <beans:property name="shellScript" value="${probb.home}/bin/xyz.sh" /> 
        <beans:property name="seviority" value="${imr.seviority}" /> 
        <beans:list value-type="java.lang.String"> 
          <beans:value>${project_properties}</beans:value> 
         </beans:list> 
        </beans:property> 
       </beans:bean> 
      </tasklet> 
      <end on="FAILED" /> 
      <next on="*" to="next_job_id" /> 
     </step> 
     <step id="next_job_id"> 
     ..... 
     </step>