首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataproc通过Python客户端提交Hadoop作业

Dataproc通过Python客户端提交Hadoop作业
EN

Stack Overflow用户
提问于 2019-04-08 04:04:54
回答 1查看 744关注 0票数 1

我试图通过将gcloud命令转换为API来使用Dataproc,但是我在文档中找不到一个很好的例子。

代码语言:javascript
复制
%pip install google-cloud-dataproc

我发现的唯一一个好例子就是这个,它工作得很好:

代码语言:javascript
复制
from google.cloud import dataproc_v1

client = dataproc_v1.ClusterControllerClient()

project_id = 'test-project'
region = 'global'

for element in client.list_clusters(project_id, region):   
    print('Dataproc cluster name:', element.cluster_name)

我需要将以下gcloud命令转换为Python代码:

代码语言:javascript
复制
gcloud dataproc jobs submit hadoop --cluster "${CLUSTER_NAME}" \
    --class com.mycompany.product.MyClass \
    --jars "${JAR_FILE}" -- \
    --job_venv=venv.zip \
    --job_binary_path=venv/bin/python3.5 \
    --job_executes program.py \
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-08 05:20:43

这样做是可行的:

代码语言:javascript
复制
project_id = 'your project'
region = 'global'

# Define Job arguments:

job_args = ['--job_venv=venv.zip',
            '--job_binary_path=venv/bin/python3.5',
            '--job_executes program.py']


job_client = dataproc_v1.JobControllerClient()

# Create Hadoop Job
hadoop_job = dataproc_v1.types.HadoopJob(jar_file_uris=[JAR_FILE], main_class='com.mycompany.product.MyClass',args=job_args)

# Define Remote cluster to send Job
job_placement = dataproc_v1.types.JobPlacement()
job_placement.cluster_name = 'your_cluster_name'

# Define Job configuration
main_job = dataproc_v1.types.Job(hadoop_job=hadoop_job, placement=job_placement)

# Send job
job_client.submit_job(project_id, region, main_job)

# Monitor in Dataproc UI or perform another API call to track status
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55566082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档