如果您在AWS中启动ETL作业时遇到impyla或jaydebeapi模块(ETL连接器的一部分)加载失败的问题,则可能存在安全组或网络ACL问题。
在RUN_ETL_JOBS.sh文件中设置以下环境变量:
export IMPYLA_LIB=$SPARK_HOME/python/lib/py4j-0.10.x-src.zip:$SPARK_HOME/python/lib/pyspark.zip:$SPARK_HOME/python/lib/pyrolite.jar:$SPARK_HOME/python/lib/py4j-*.zip:$SPARK_HOME/python/lib/happybase.zip
export JDBCAPI_LIB=$SPARK_HOME/python/lib/jaydebeapi-*.zip:$SPARK_HOME/python/lib/JPype1.zip
然后,将以下入站和出站规则添加到您的安全组和网络ACL中:
入站:
端口:22 协议:TCP 来源:您的IP地址或CIDR地址
端口:21050(仅适用于Impala) 协议:TCP 来源:您的IP地址或CIDR地址
出站:
端口:0 - 65535 协议:TCP 目标:0.0.0.0/0
端口:0 - 65535 协议:UDP 目标:0.0.0.0/0
在启用这些规则后,重试在AWS中启动ETL作业。
上一篇:AWS中ELB和ALB有何区别?