【发布时间】:2017-06-27 19:43:21
【问题描述】:
我正在使用 flink on yarn 进行测试 我有以下设置:
aws 上的 3 台机器(32 个内核和 64 GB 内存)
我手动安装了带有 hdfs 和 yarn 服务的 Hadoop 2(不使用 EMR)。
机器 #1 运行 HDFS - (NameNode & SeconderyNameNode) 和 YARN - (resourcemanager) ,在 masters 文件中定义
机器 #2 运行 HDFS - (datanode) 和 YARN - (nodemanager) ,在 slaves 文件中定义
机器 #3 运行 HDFS - (datanode) 和 YARN - (nodemanager) ,在 slaves 文件中定义
我想提交从 hdfs 读取大约 20GB 日志的 Apache flink 作业处理它们,然后将结果存储在 cassandra
问题是我认为我做错了,因为这项工作需要相当多的时间,大约一个小时,而且我认为它不是很优化。
我使用以下命令运行 flink:
./flink-1.3.0/bin/flink run -yn 2 -ys 30 -yjm 7000 -ytm 8000 -m yarn-cluster /home/ubuntu/reports_script-1.0-SNAPSHOT.jar
我在 flink 日志中看到有 60 个任务槽正在使用中,但是当我查看 yarn 页面时,我发现 vcore 和内存的使用率非常低
我做错了什么?
【问题讨论】:
-
Cassandra 是否可能是配置错误/瓶颈?您是否尝试将作业从 HDFS 运行到 HDFS?
-
cassandra 肯定不是瓶颈,它是处理速度最快的部分。真正困扰我的是,在我附加到问题的图片上,我可以看到它打开了 3 个容器(应用程序主机和 2 个用于 flink 的任务管理器)并且它们只使用 3 个 Vcores ......我不知道如何利用集群的所有 vcore 和内存。
-
如果要配置每个容器的 vcore 数量,请使用配置选项:
yarn.containers.vcores。更多 Yarn 特定配置选项可以找到here
标签: hadoop-yarn hadoop2 apache-flink flink-streaming