在AWS EMR上无法运行PyFlink word_count.py的问题求助
EMR v5.35.0运行Flink Python任务报错ModuleNotFoundError: No module named 'pyflink'的解决方法
问题背景
- 集群环境:AWS EMR v5.35.0,已集成Spark、Hadoop、Flink、Presto、ZooKeeper
- 操作场景:在主节点
/usr/lib/flink目录执行Flink Python示例任务:flink run -m yarn-cluster --python examples/python/table/word_count.py - 异常现象:任务执行失败,核心报错为
ModuleNotFoundError: No module named 'pyflink';但Java版WordCount.jar可正常运行,且已在主节点通过pip install apache-flink==1.14安装依赖,问题仍未解决
解决方法
通过创建独立虚拟环境并安装对应依赖,解决了环境不一致导致的依赖无法被识别的问题:
- 在主节点创建Python虚拟环境:
python3 -m venv flink_py_env - 激活虚拟环境:
source flink_py_env/bin/activate - 在虚拟环境内安装匹配版本的Apache Flink:
pip install apache-flink==1.14 - 在激活的虚拟环境上下文内重新执行Flink Python任务
调试技巧
遇到类似依赖问题时,可通过Yarn应用对应的应用ID,查看完整堆栈日志,精准定位环境或依赖配置的问题
内容的提问来源于stack exchange,提问作者skyrays
相关产品推荐
相关产品推荐

