所以我有一个带有 7 个工作节点的 cloudera 集群。
以下是我发现的一些配置(来自 Google)对于调整我的集群性能很重要。我正在运行:
yarn.nodemanager.resource.cpu-vcores => 4yarn.nodemanager.resource.memory-mb => 17GB(为操作系统和其他进程预留)mapreduce.map.memory.mb => 2GBmapreduce.reduce.memory.mb => 2GBnproc => 4(可用处理单元数)现在我担心的是,当我查看我的 ResourceManager 时,我看到可用内存为 119 GB,这很好。但是,当我运行繁重的 sqoop 作业并且我的集群处于峰值时,它仅使用 ~59 GB 内存,剩下 ~60 GB 内存未使用。
我看到的一种解决未使用内存问题的方法是将 map|reduce.memory 增加到 4 GB,这样我们每个节点最多可以使用 16 GB。
另一种方法是增加容器的数量,我不确定该怎么做。
在这种情况下,提高集群性能的正确配置应该是什么?我可以增加容器的数量,比如每个核心 2 个容器吗?是否推荐?
如果您对集群配置有任何帮助或建议,我们将不胜感激。谢谢。
最佳答案
如果您的输入数据分为 26 个拆分,YARN 将创建 26 个映射器来并行处理这些拆分。
如果您有 7 个节点和 2 GB 映射器用于 26 个拆分,则重新分区应该类似于:
因此,如果所有映射器同时运行,则 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/
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
目录:一、简介二、HQL的执行流程三、索引四、索引案例五、Hive常用DDL操作六、Hive常用DML操作七、查询结果插入到表八、更新和删除操作九、查询结果写出到文件系统十、HiveCLI和Beeline命令行的基本使用十一、Hive配置一、简介Hive是一个构建在Hadoop之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行。特点:简单、容易上手(提供了类似sql的查询语言hql),使得精通sql但是不了解Java编程的人也能很好地进行大数据分析;灵活性高,可以自定义用户函数(UDF)和
云计算实验中要求我们在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
文章目录使用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
我在这里尝试使用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
一、设置免密登录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
类似于:Howtoblacklistspecificnode_modulesofmypackage'sdependenciesinreact-native'spackager?我正在尝试使用需要返回正则表达式的黑名单选项从metropackager中排除reactnative。我需要的是返回如下内容:/\/DYNAMIC_PROJECT_DIRECTORY\/node_modules\/react-native\/.*/,我可以在DYNAMIC_PROJECT_DIRECTORY中插入一个变量,因为它会根据其他模块的yarn工作区路径而改变。我只是不熟悉正则表达式!谢谢编辑:我尝试在路
我正在使用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
我正在尝试使用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":"
如何在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安装它