当前位置: 首页 > 知识库问答 >
问题:

有什么好的方法可以将Talend工作与Amazon EMR集成吗?

阚正真
2023-03-14

目前我正在尝试将AWS EMR与Talend集成。

我的目的是在AWS EMR上运行Talend作业(由Talend工作室导出)。我已经尝试添加步骤为自定义罐,但它似乎通过使用也导出的lib文件夹和脚本运行Talend作业。

我想用脂肪罐运行它,但是这个问题表明我们不能这样做,因为缺乏将JAR文件导出为脂肪罐的功能。-

有什么好方法可以将Talend job与Amazon EMR集成在一起吗?

共有1个答案

吕冠宇
2023-03-14

最后,我通过使用AWS提供的script-runner.jar解决了这个问题。

在集群中运行脚本

我创建了Lambda脚本来启动EMR集群。我附加了HadoopJarStep。这允许我们使用一些shell脚本来下载

>

  • 请参阅Boto3 Docs-EMR了解其含义

            'HadoopJarStep': {
                'Jar': 's3://ap-northeast-1.elasticmapreduce/libs/script-runner/script-runner.jar',
                'Args': [
                    's3://your/bucket/name.../talend_run.sh'
                ]
            }
    

    talend_run.sh就像下面一样(一个可惜的shellcript)

    #!/bin/bash
    
    echo "Start, Talend!!"
    
    # here is exported talend job ( contains bootstrap shellscript )
    ZIP_NAME=talend-batch-zipped.zip
    DIR_NAME=talend-batch-zipped/kicker
    SHELL_NAME=kicker_run.sh
    
    # update package because EMR servers don't have unzip command
    sudo yum update -y
    sudo yum install -y wget unzip
    
    rm -rf ${ZIP_NAME}
    wget https://your.using.s3.host.name/${ZIP_NAME} -P `pwd`/
    
    # unzip the zipped job file into the EMR server
    unzip ${ZIP_NAME}
    cd ${DIR_NAME}
    
    # pass parameters to talend job
    bash ./${SHELL_NAME} "$@"
    

    启动AWS Lambda函数后,创建了EMR集群。在此之后,EMR服务器将处理一个步骤(位于shell之上)。

  •  类似资料:
    • 问题内容: 我必须为我的OJT公司编程一个应用程序管理系统。前端将在C#中完成,后端将在SQL中完成。 现在,我从来没有做过这样的项目。在学校里,我们只有关于SQL的基本课程。不知何故,我们的老师完全没有讨论SQL注入,而我直到现在才通过网上阅读与之接触。 所以无论如何,我的问题是:如何防止C#中的SQL注入?我模糊地认为,可以通过适当地屏蔽应用程序的文本字段来做到这一点,以使其仅接受指定格式的输

    • 问题内容: 想象一下具有滚动级别的太空射击游戏。有哪些方法可以防止恶意玩家修改游戏以使其受益?他可以做的很难限制服务器端的事情是自动瞄准,在可见区域外偷看,加速黑客攻击等。 有什么方法可以防止这种情况发生?假定服务器是任何语言,并且客户端通过WebSocket连接。 始终假定代码是100%可入侵的。想办法防止客户完全重写(出于作弊目的)作弊。这些可能是诸如编写安全游戏协议的方法,服务器端检测等。

    • 问题内容: 我有几个实现某些接口的类。该接口有一个约定,某些方法应该同步,有些方法应该不同步,我想通过单元测试对所有实现进行验证。这些方法应使用synced关键字或将其锁定-与SynchronizedCollection()包装器非常相似。这意味着我应该能够从外部观察它。 如果我有一个调用iterator()的线程来继续Collections.synchronizedCollection()的示例

    • 问题内容: 例如,这是否合法: 效果如何?是否有任何特殊的语法? 问题答案: 更新 由于可以使用lambda嵌套Java 8方法,因此请参见另一个问题。 此答案对Java 8之前的Java版本有效 原始答案如下: Java中的方法可以嵌套吗?…? 不,那不可能。 您可以获得的最接近的是: 即,在方法中定义的内部类中定义的第二种方法。 您可以在内部类内部将方法声明为静态,因此不必调用

    • 材料设计非常强调“纸张”的隐喻。要做到这一点,阴影是必不可少的。由于材料设计是一种理念,而不是API(尽管它内置在L中),因此应该在任何地方(Windows窗体、HTML/CSS等)进行设计。如何在Android API 14到20中做到这一点? 请注意,对于圆形和其他非方形形状,预制PNG实际上并不实用。

    • 看起来Hive不支持表名和列名中的Unicode。例如,我不能在配置单元中创建具有西里尔列名的表(请参见下面的异常)。有什么方法可以使配置单元与西里尔表和列名一起工作吗? 我使用: