记录一次在阿里EMR的踩的坑
因为有个需求需要将数据写入到es,采用的方式是通过spark将dataframe写入es进行upsert操作。
使用的版本是 Spark-2.4.3 ElasticSearch-7.4.0
打好包后上传值服务器,调试运行。
代码太多,度娘一搜便是。
使用local模式调试,尽然出现了问题。

好样的,肯定是版本冲突了。
开始查原因,我知道EMR在 /opt/apps/extra_jars/目录下配置几个额外的包,其中包含了es-hadoop-6.3.2的,但我提交但时候并没引入这个就忽视了。

解决方法:
管理员觉得直接替换包的风险太大,不同意替换,那只能换个方式了。
通过查看发现进程的启动命令:
/usr/local/jdk/jdk1.8.0_231/bin/java -cp /etc/ecm/spark-conf/:/usr/lib/spark-current/jars/* org.apache.spark.deploy.SparkSubmit --master yarn --deploy-mode cluster --conf spark.driver.memory=1g --class Spark2ES --executor-memory 4g --executor-core

最低0.47元/天 解锁文章
557

被折叠的 条评论
为什么被折叠?



