jjzjj

hadoop - yarn : How to utilize full cluster resources?

coder 2024-01-06 原文

所以我有一个带有 7 个工作节点的 cloudera 集群。

  • 30GB 内存
  • 4 个 vCPU

以下是我发现的一些配置(来自 Google)对于调整我的集群性能很重要。我正在运行:

  • yarn.nodemanager.resource.cpu-vcores => 4
  • yarn.nodemanager.resource.memory-mb => 17GB(为操作系统和其他进程预留)
  • mapreduce.map.memory.mb => 2GB
  • mapreduce.reduce.memory.mb => 2GB
  • 运行 nproc => 4(可用处理单元数)

现在我担心的是,当我查看我的 ResourceManager 时,我看到可用内存为 119 GB,这很好。但是,当我运行繁重的 sqoop 作业并且我的集群处于峰值时,它仅使用 ~59 GB 内存,剩下 ~60 GB 内存未使用。

我看到的一种解决未使用内存问题的方法是将 map|reduce.memory 增加到 4 GB,这样我们每个节点最多可以使用 16 GB。

另一种方法是增加容器的数量,我不确定该怎么做。

  • 4 个核心 x 7 个节点 = 28 个可能的容器。 3 个正在被其他进程使用,目前只有 5 个可用于 sqoop 作业。

在这种情况下,提高集群性能的正确配置应该是什么?我可以增加容器的数量,比如每个核心 2 个容器吗?是否推荐?

如果您对集群配置有任何帮助或建议,我们将不胜感激。谢谢。

最佳答案

如果您的输入数据分为 26 个拆分,YARN 将创建 26 个映射器来并行处理这些拆分。

如果您有 7 个节点和 2 GB 映射器用于 26 个拆分,则重新分区应该类似于:

  • 节点 1:4 个映射器 => 8 GB
  • 节点 2:4 个映射器 => 8 GB
  • 节点 3:4 个映射器 => 8 GB
  • 节点 4:4 个映射器 => 8 GB
  • 节点 5:4 个映射器 => 8 GB
  • 节点 6:3 个映射器 => 6 GB
  • Node7:3 个映射器 => 6 GB
  • 总计:26 个映射器 => 52 GB

因此,如果所有映射器同时运行,则 map reduce 作业中使用的总内存将为 26x2=52 GB。也许如果你通过 reducer(s) 和 ApplicationMaster 容器添加内存用户,你可以在某个时候达到 59 GB,正如你所说的..

如果这是您所看到的行为,并且在这 26 个映射器之后完成了工作,那么就没有错。您只需要大约 60 GB 就可以通过将任务分散到所有节点来完成您的工作,而无需等待容器槽释放自己。其他免费的 60 GB 只是等待,因为您不需要它们。增加堆大小只是为了使用所有内存不一定会提高性能。

已编辑:

但是,如果您仍有大量映射器等待安排,那么可能是因为您的安装配置也使用 vcores 计算容器分配。这不是 Apache Hadoop 中的默认设置,但可以配置:

yarn.scheduler.capacity.resource-calculator : The ResourceCalculator implementation to be used to compare Resources in the scheduler. The default i.e. org.apache.hadoop.yarn.util.resource.DefaultResourseCalculator only uses Memory while DominantResourceCalculator uses Dominant-resource to compare multi-dimensional resources such as Memory, CPU etc. A Java ResourceCalculator class name is expected.

由于您将 yarn.nodemanager.resource.cpu-vcores 定义为 4,并且每个映射器默认使用 1 个 vcore,因此每个节点一次只能运行 4 个映射器。

在这种情况下,您可以将 yarn.nodemanager.resource.cpu-vcores 的值加倍到 8。它只是一个任意值,它应该使映射器的数量加倍。

关于hadoop - yarn : How to utilize full cluster resources?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37791362/

有关hadoop - yarn : How to utilize full cluster resources?的更多相关文章

  1. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  2. 大数据之Hadoop数据仓库Hive - 2

    目录:一、简介二、HQL的执行流程三、索引四、索引案例五、Hive常用DDL操作六、Hive常用DML操作七、查询结果插入到表八、更新和删除操作九、查询结果写出到文件系统十、HiveCLI和Beeline命令行的基本使用十一、Hive配置一、简介Hive是一个构建在Hadoop之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行。特点:简单、容易上手(提供了类似sql的查询语言hql),使得精通sql但是不了解Java编程的人也能很好地进行大数据分析;灵活性高,可以自定义用户函数(UDF)和

  3. Ubuntu下Hadoop的单机安装 - 2

            云计算实验中要求我们在Linux系统安装Hadoop,故来做一个简单的记录。· 注:我的操作系统环境是Ubuntu-20.04.3,安装的JDK版本为jdk1.8.0_301,安装的Hadoop版本为hadoop2.7.1。(不确定其他版本是否会出现版本兼容问题)Hadoop安装步骤如下:        一、更新apt和安装vim编辑器        二、配置本机无密码登录SSH        三、安装JAVA环境        四、下载安装Hadoop        五、伪分布式搭建一、更新apt和安装vim编辑器1、更新aptsudoapt-getupdate2、安装vim

  4. flink on yarn - 2

    文章目录使用flinksqlclientonyarnsession模式Per-JobCluster模式flinkrunflinkrunapplication-tyarn-application配置任务退出时保留Checkpoint从外部checkpoint恢复应用资料使用安装完hadoop3.3.4之后,启动hadoop、yarn将flink1.14.6上传到各个服务器节点,解压flinksqlclientonyarnhttps://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/overview/Appli

  5. ruby - yarn 未初始化常量 Socket::SOL_TCP - 2

    我在这里尝试使用yarn,遇到了一个可能与ruby​​相关的问题。在执行任何yarn命令,我收到错误.../.rvm/gems/ruby-2.3.0/gems/yarn-0.1.1/lib/yarn/server.rb:14:in':uninitializedconstantSocket::SOL_TCP(NameError)错误堆栈:$yarn.../.rvm/gems/ruby-2.3.0/gems/yarn-0.1.1/lib/yarn/server.rb:14:in':uninitializedconstantSocket::SOL_TCP(NameError)Didyoume

  6. MAC系统安装Hadoop - 2

    一、设置免密登录1、系统偏好设置-----共享----勾选远程登录,所有用户2、打开终端,输入命令ssh-keygen-trsa,一直回车即可2.查看生成的公钥和私钥    cd~/.ssh    ls会看到~/.ssh目录下有两个文件:①私钥:id_rsa②公钥:id_rsa.pub3.将公钥内容写入到~/.ssh/authorized_keys中    cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys4.测试在terminal终端输入 sshlocalhost如果出现以下询问输入yes,不需要输入密码就能登录,说明配置成功Areyousureyouw

  7. javascript - 用于在 React Native metro bundler 中使用动态 yarn 工作空间路径将节点模块列入黑名单的正则表达式 - 2

    类似于:Howtoblacklistspecificnode_modulesofmypackage'sdependenciesinreact-native'spackager?我正在尝试使用需要返回正则表达式的黑名单选项从metropackager中排除reactnative。我需要的是返回如下内容:/\/DYNAMIC_PROJECT_DIRECTORY\/node_modules\/react-native\/.*/,我可以在DYNAMIC_PROJECT_DIRECTORY中插入一个变量,因为它会根据其他模块的yarn工作区路径而改变。我只是不熟悉正则表达式!谢谢编辑:我尝试在路

  8. javascript - 在 docker 容器中安装 yarn 说缺少依赖 - 2

    我正在使用node:6.7.0图像作为我的docker容器,然后按照yarn的安装指南进行操作sudoapt-keyadv--keyserverpgp.mit.edu--recvD101F7899D41F3C3echo"debhttp://dl.yarnpkg.com/debian/stablemain"|sudotee/etc/apt/sources.list.d/yarn.list然后我做apt-getupdate&&apt-getinstallyarn但此时我收到一条错误消息,上面写着yarn:Depends:nodejs(>=4.0.0)butitisnotgoingtobei

  9. javascript - yarn 无法使用 node 12.1.0 构建 node-sass - 2

    我正在尝试使用yarninstall安装我的包我安装了node12.1.0,据我所知,node-sass需要至少版本4.12+才能工作Node12我的package.json文件是这样的:{"name":"redacted","private":true,"dependencies":{"@rails/webpacker":"3.5","babel-preset-react":"^6.24.1","bootstrap":"^4.1.2","font-awesome":"^4.7.0","js-md5":"^0.7.3","moment":"^2.22.2","prop-types":"

  10. javascript - 如何在 ubuntu 中安装特定的 yarn 版本 - 2

    如何在ubuntu中安装yarn版本0.27.5?因为最新更新的yarn版本是1.2.1。 最佳答案 您可以通过查看https://github.com/yarnpkg/yarn/releases来选择任何版本的yarn并滚动和分页到您需要的版本。对于yarn0.27.5,转到https://github.com/yarnpkg/yarn/releases/tag/v0.27.5你可以看到yarn0.27.5的所有包。下载yarn_0.27.5_all.deb(Ubuntu是基于Debian的Linux)然后您可以使用dpkg安装它

随机推荐