我正在试验GCP。我有一个Hadoop的本地环境。它由存储在HDFS上的文件和一组python脚本组成,这些脚本进行API调用并触发pig作业。这些python作业是通过cron调度的。
我想了解在GCP中做类似事情的最佳方式。我知道我可以用GCS代替HDFS。Dataproc可以用于启动Hadoop集群和运行Pig作业。
有没有可能将这些Python脚本存储到GCS中,有一个类似cron的时间表来启动Hadoop集群,并指向GCS中的这些Python脚本来运行?
如果您正在GCP上寻找cron作业或工作流调度程序,请考虑:
-
Cloud Scheduler,它是一个完全管理的企业级cron作业调度器;
-
云工作流,它结合了谷歌云服务和API,可以轻松构建可靠的应用程序、流程自动化以及数据和机器学习管道。
-
Cloud Composer是一个基于Apache Airflow的完全管理的工作流编排服务。
Cloud Scheduler是最简单的一个,但可能最适合您的用例。Cloud Workflows与Cloud Composer有一些重叠,请参阅它们的主要区别以及如何在本文档中进行选择。
我发现可以使用Dataproc通过"submit pig"作业运行Python脚本。此作业允许您运行Bash脚本,从中可以调用Python脚本:
gcloud dataproc jobs submit pig --cluster=test-python-exec --region=us-central1 -e='fs -cp -f gs://testing_dataproc/main/execution/execute_python.sh file:///tmp/execute_python.sh; sh chmod 750 /tmp/execute_python.sh; sh /tmp/execute_python.sh'