如果您想知道我是如何解决的,请转到here。
我的工作流程看起来像这样。
<workflow-app xmlns="uri:oozie:workflow:0.4" name="${PROJECT_NAME}">
<global>
<job-tracker>${JOB_TRACKER}</job-tracker>
<name-node>${NAME_NODE}</name-node>
<job-xml>hive-site.xml</job-xml>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>${QUEUE_NAME}</value>
</property>
<property>
<name>mapreduce.job.reduces</name>
<value>${REDUCE_TASKS}</value>
</property>
<property>
<name>today_without_dash</name>
<value>${today_without_dash}</value>
</property>
<property>
<name>yesterday_with_dash</name>
<value>${yesterday_with_dash}</value>
</property>
</configuration>
</global>
<start to="start_fair_usage"/>
<action name="start_fair_usage">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${JOB_TRACKER}</job-tracker>
<name-node>${NAME_NODE}</name-node>
<exec>${copy_file}</exec>
<argument>${today_without_dash}</argument>
<argument>${mta}</argument>
<!-- <file>${path}#${start_fair_usage}</file> -->
<file>${path}${copy_file}#${copy_file}</file>
<capture-output/>
</shell>
<ok to="END"/>
<error to="KILL"/>
</action>
copy_file.sh
# directories in comverse where sub mtr rcr files are kept
echo "directories"
dirs=(
/user/comverse/data/${today_without_dash}_B
)
# clear the hdfs directory of old files and copy new files from comverse
echo "remove old files "${mta}
hadoop fs -rm -skipTrash /apps/hive/warehouse/db.db/fair_usage/fct_evkuzmin/file_${mta}/*
for i in $(hadoop fs -ls "${dirs[@]}" | egrep ${mta}.gz | awk -F " " '{print $8}')
do
hadoop fs -cp $i /apps/hive/warehouse/db.db/fair_usage/fct_evkuzmin/file_${mta}
echo "copy file - "${i}
done
echo "end copy "${mta}" files"
${today_without_dash}
来自协调员
<property>
<name>today_without_dash</name>
<value>${coord:formatTime(coord:nominalTime(),'yyyyMMdd')}</value>
</property>
没有错误,但它也不起作用,我不明白为什么。
此
中有一些文件/apps/hive/warehouse/db.db/fair_usage/fct_evkuzmin/file_${mta}
目录,但不会被删除。也没有任何东西被复制。这个目录中有文件。
/user/comverse/data/${today_without_dash}_B
${mta}
来自job.properties
。它的价值是mta
copy_file.sh
在我通过CLI启动时没有OOZIE
EDIT 我四处询问并被告知这可能是因为我试图复制的文件太大了。