项目中使用spark 自带的thrift-server做hdfs数据查询统计服务。当数据过多时,thrift-server 需要分配大量的资源,当不需要查询时分配当量的资源又显得非常浪费,因此想到是否有可能动态分配资源。
(thrift-server也是一个job(yarn app),因此这种方法同样适用于一般的spark job)。
目前动态资源分配只适合spark on yarn,配置方式如下。
yarn node manager 配置
修改所有节点yarn node-manager配置,在$HADOOP_HOME/etc/hadoop/yarn-site.xml
中添加:
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>