当前位置: 首页 > 知识库问答 >
问题:

Apache Spark:如何强制使用一定数量的核心?

微生欣怡
2023-03-14
spark-shell --num-executors 25 --executor-cores 4 --executor-memory 1G \
--driver-memory 1G --conf spark.yarn.executor.memoryOverhead=2048 --master yarn \
--conf spark.driver.maxResultSize=10G  \
--conf spark.serializer=org.apache.spark.serializer.KyroSerializer \
-i input.scala
import java.io.ByteArrayInputStream

// Plaintext sum on 10M rows
def aggrMapPlain(iter: Iterator[Long]): Iterator[Long] = {
   var res = 0L
while (iter.hasNext) {
    val cur = iter.next
    res = res + cur
}
List[Long](res).iterator
 }

val pathin_plain = <some file>

val rdd0 = sc.sequenceFile[Int, Long](pathin_plain)
val plain_table = rdd0.map(x => x._2).cache
plain_table.count

0 to 200 foreach { i =>
    println("Plain - 10M rows - Run "+i+":")
    plain_table.mapPartitions(aggrMapPlain).reduce((x,y)=>x+y)
   }
<property>                                                                                                          
       <name>yarn.nodemanager.resource.cpu-vcores</name>                                                                 
        <value>101</value>
</property>

<property>                                                                                                          
    <name>yarn.scheduler.maximum-allocation-vcores</name>                                                             
   <value>101</value>                                                                                                
 </property>

<property>                                                                                                          
      <name>yarn.scheduler.maximum-allocation-mb</name>                                                                 
       <value>102400</value>                                                                                             
</property>

<property>                                                                                                          
    <name>yarn.nodemanager.resource.memory-mb</name>                                                                  
    <value>102400</value>                                                                                             
</property>  

但是我仍然不能强迫spark使用100个内核,这是我在对早期测试进行基准测试时所需要的。

我使用的是Apache Spark 1.6.1。集群上的每个节点包括驱动程序都有16个内核和112GB内存。它们在Azure(hdinsight集群)上。2个驱动节点+7个工作节点。

共有1个答案

池麒
2023-03-14

我对Azure不熟悉,但我猜纱线就是纱线,所以你应该确保你有

yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator

capactor-scheduler.xml中。

(见此类似问答)

 类似资料:
  • 我正在努力学习Optaplanner。作为一个学习项目,我正在尝试实现一个非常基本和简单的程序,计算“幻方”。 基本上,我试图将“数字”S分配给行和列中定义的“框”ES。 很抱歉没有直接从源代码复制/粘贴,我的开发机器无法连接到互联网,所以我会尝试用手写下类的重要部分。 我的域结构如下: @PlanningSolution MagicSquareSolution @PlanningEntity框

  • 问题内容: 有一个在Tomcat上运行的JDK7应用程序,它具有以下环境设置: 上面的设置可确保在进行API调用等操作时通过HTTPS连接时不使用TLS 1.0。 我们还使用org.springframework.mail.javamail。 JavaMailSenderImpl 类发送外发SMTP电子邮件,并使用以下道具: 问题是,当升级到TLS1.2时,与SMTP电子邮件服务器的连接失败。 j

  • 问题内容: 我正在使用Gson对此类进行序列化和反序列化。今天,我不得不在此对象中添加最终的UUID。我没有序列化的问题。我需要强制gson 在反序列化时使用构造函数。我该如何实现? 问题答案: 您可以实现一个自定义的JsonDeserializer并将其注册到GSON。 请记住,此代码尚未经过测试。

  • 我正在尝试创建一个spark应用程序,它对创建、读取、写入和更新MySQL数据非常有用。那么,有没有办法使用Spark创建一个MySQL表? 下面是在MySQL数据库中创建表的Scala JDBC代码。我怎样才能通过Spark做到这一点?

  • 问题内容: 是否有一个静态分析工具可以在IDE外部运行一致地强制使用@Override注释?CheckStyle具有MissingOverride检查,但仅适用于使用@inheritDoc Javadoc标记的方法。我正在寻找一种可以在连续集成计算机上的新构建配置中运行的工具。 问题答案: 一种方法是使用TeamCity的“检查”运行器。我不确定它是否真的可以在IDE之外运行,因为它是在Intel

  • 在Tomcat上运行JDK7应用程序时,它确实具有以下环境设置: 上面的设置确保我们在进行API调用等时通过HTTPS连接时不使用TLS 1.0。 我们还使用org.springframework.mail.javamail.JavaMailSenderImpl类发送传出的SMTP电子邮件,并使用以下道具: 问题是,升级到TLS1时,与SMTP电子邮件服务器的连接失败。2. javax。网ssl。