我正在尝试使用 EMR 集群上的所有资源。
集群本身是 4 台 m4.4xlarge 机器(1 个驱动程序和 3 个工作程序),具有 16 个 vCore、64 GiB 内存、EBS 存储:128 GiB
通过 cli 启动集群时,我会看到以下选项(所有 3 个选项都在同一数据管道中执行):
只需使用“maximizeResourceAllocation”,无需任何其他 Spark-submit 参数
不要放置任何东西,让 Spark-defaults 完成他们的工作
使用 AWS 指南了解如何在 EMR 中配置集群
按照本指南,我推导出以下spark-submit
参数:
"--conf",
"spark.executor.cores=5",
"--conf",
"spark.executor.memory=18g",
"--conf",
"spark.executor.memoryOverhead=3g",
"--conf",
"spark.executor.instances=9",
"--conf",
"spark.driver.cores=5",
"--conf",
"spark.driver.memory=18g",
"--conf",
"spark.default.parallelism=45",
"--conf",
"spark.sql.shuffle.partitions=45",
Run Code Online (Sandbox Code Playgroud)
现在,我确实在互联网上查找了 所有可以查找的地方,但找不到任何关于为什么 EMR 不使用所提供的所有资源的解释。也许我遗漏了一些东西,或者也许这是预期的行为,但是当“maximizeAllocation”仅跨越具有 3 个工作线程的集群上的 2 个执行程序时,就会出现问题。
更新:
因此,今天在运行不同的数据管道时,我使用“maximizeResourceAllocation”得到了这个:
这比其他的要好得多,但在使用的内存和执行器方面仍然缺乏很多(尽管EMR团队的有人说emr将执行器合并为超级执行器以提高性能)。
美好的一天,stackoverflow,
我需要向用户建议一个词的不同上下文,以便他有可能消除它的歧义。
例如:单词“ less ”可以是Unix程序、css框架或其他一些东西。单词“ apple ”可以是水果、公司、河流、美国的一个州(大苹果)或一堆其他东西。
我希望你有这个想法。
我查看了互联网,到目前为止我只能提出这个查询。
但它离完美还很远。它经常给出太多或太少的词,有时什么也没有(对于“jquery”)。
http://www.visualdataweb.org/relfinder/relfinder.php似乎也使用了 dbpedia,但它的结果比我的好得多。
我应该如何更改我的查询以获得更相关的结果?