hadoop - Oozie 迭代工作流

标签 hadoop oozie oozie-coordinator

我正在构建一个应用程序以将数据从 MYSQL 数据库提取到配置单元表。应用程序将被安排每天执行。

第一个 Action 是读取 Hive 表以加载导入表信息,例如名称、类型等,并在要导入的文件中创建表列表。接下来是一个 Sqoop Action ,按顺序为每个表传输数据。

是否可以创建一个 shell 脚本 Oozie 操作,它将遍历表列表并按顺序为每个表启动 oozie 子工作流 Sqoop 操作?你能提供一些引用吗?还有任何更好方法的建议!

最佳答案

我想出了以下包含 Sqoop 操作的 shell 脚本。通过一些环境变量调整,它可以正常工作。

hdfs_path='hdfs://quickstart.cloudera:8020/user/cloudera/workflow/table_metadata'   table_temp_path='hdfs://quickstart.cloudera:8020/user/cloudera/workflow/hive_temp        

if $(hadoop fs -test -e $hdfs_path)
then
for file in $(hadoop fs -ls $hdfs_path | grep -o -e "$hdfs_path/*.*");
do
 echo ${file}
 TABLENAME=$(hadoop fs -cat ${file});
 echo $TABLENAME
 HDFSPATH=$table_temp_path
 sqoop import --connect jdbc:mysql://quickstart.cloudera:3306/retail_db --table departments --username=retail_dba --password=cloudera --direct -m 1 --delete-target-dir --target-dir $table_temp_path/$TABLENAME
done
fi

关于hadoop - Oozie 迭代工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41833977/

相关文章:

来自 Cloudera Manager 的电子邮件警报

Hadoop MapReduce 应用缓存目录

hadoop - 将参数从 coordinator.xml 传递到 workflow.xml oozie

带有异步数据集的 Oozie 协调器

hadoop - 从群集到另一台计算机的HDFS文件FTP

json - HIVE:如何解析/忽略JSON日志消息中的SLF4J header

java - wordcount 程序中的 NoClassDefFoundError

hadoop - Oozie 4.0.0 构建错误 - 无法解析 hcatalog 依赖项

join - Oozie fork 在一个被杀死时杀死所有 Action

hadoop - 如何将配置传递给Oozie电子邮件操作