集群部署YARN

翻译: https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_yarn_cluster_deploy.html#topic_11_4
版本: 5.14.2

重要:

  • 在不使用Cloudera Manager的系统上遵循这些命令行指示信息。
  • 此信息特别适用于CDH 5.14.X。有关其他版本的信息,请参阅Cloudera文档

本节仅介绍YARN群集的配置,专门针对从软件包安装YARN的管理员量身定制。

重要:
配置和部署HDFS后执行以下任务:

继续阅读:

  1. 关于MapReduce v2(YARN)
  2. 第1步:配置YARN集群的属性
  3. 第2步:配置YARN守护进程
  4. 第3步:配置JobHistory服务器
  5. 第4步:配置staging目录
  6. 第5步:如果有必要,请将自定义配置部署到整个群集
  7. 步骤6:如果必要,请在群集中的每台主机上启动HDFS
  8. 步骤7:如有必要,创建HDFS / tmp目录
  9. 第8步:创建历史目录并设置权限
  10. 第9步:启动YARN和MapReduce JobHistory服务器
  11. 第10步:为每个MapReduce用户创建一个主目录
  12. 第11步:配置Hadoop守护进程在启动时运行

注意: 运行服务

使用service命令来启动,停止和重新启动CDH组件,而不是直接在/etc/init.d中运行脚本。

关于MapReduce v2(YARN)

CDH 5中默认安装是基于YARN框架构建的MapReduce 2 (MRv2)。在本文档中,我们通常将这个新版本称为 YARN。MRv2的YARN体系结构的基本思想是将JobTracker的两个主要职责 - 资源管理和作业调度/监视 - 分解为单独的守护进程:全局的ResourceManager(RM)和每个应用程序的ApplicationMasters(AM)。使用MRv2,ResourceManager(RM)和per-host NodeManagers(NM)构成数据计算框架。ResourceManager服务有效地替代了JobTracker的功能,并且NodeManagers替代TaskTracker守护进程在工作主机上运行。ApplicationMaster实际上是一个特定的框架库,它负责与ResourceManager协商资源并与NodeManager一起运行和监视任务。有关新体系结构的详细信息,请参阅Apache Hadoop NextGen MapReduce(YARN)

另请参阅为作业选择适当的JAR文件

重要:
确保你没有试图在同一主机上同时运行MRv1和YARN。建议不要这样做,特别是在不受Cloudera Manager管理的群集中; 它会降低性能并可能导致群集不稳定。

第1步:配置YARN集群的属性

注意:
在您复制Hadoop配置时创建的自定义配置目录中编辑这些文件。完成后,将此配置推送到群集中的所有主机; 请参阅步骤5

属性 配置文件 描述
mapreduce.framework.name mapred-site.xml 如果您打算运行YARN,则必须将此属性设置为yarn

示例配置:

mapred-site.xml中:

<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>

第2步:配置YARN守护进程

配置以下服务:ResourceManager(在专用主机上)和NodeManager(在计划运行MapReduce v2作业的每台主机上)。

下表显示了您必须为集群配置的yarn-site.xml 中最重要的属性。

属性 建议值 描述
yarn.nodemanager.aux-services mapreduce_shuffle 需要为Map Reduce应用程序设置的Shuffle服务。
yarn.resourcemanager.hostname resourcemanager.company.com 以下属性将设置为此主机上的默认端口:yarn.resourcemanager. address, yarn.resourcemanager. admin.address, yarn.resourcemanager. scheduler.address, yarn.resourcemanager. resource-tracker.address, yarn.resourcemanager. webapp.address
yarn.application.classpath $HADOOP_CONF_DIR, $HADOOP_COMMON_HOME/, $HADOOP_COMMON_HOME/lib/, $HADOOP_HDFS_HOME/, $HADOOP_HDFS_HOME/lib/, $HADOOP_MAPRED_HOME/, $HADOOP_MAPRED_HOME/lib/, $HADOOP_YARN_HOME/, $HADOOP_YARN_HOME/lib/ 应用程序的类路径Classpath。
yarn.log.aggregation-enable true

接下来,您需要指定,创建并将正确的权限分配给您希望YARN守护程序存储数据的本地目录。

您可以通过配置所有群集主机上的yarn-site.xml中的以下两个属性来指定目录:

属性 描述
yarn.nodemanager.local-dirs 指定NodeManager存储其本地化文件的目录的URI。运行特定YARN应用程序所需的所有文件将在应用程序运行期间放在这里。Cloudera建议为此属性在每个JBOD安装点上指定一个目录; 例如,file:///data/1/yarn/local 到 /data/N/yarn/local。
yarn.nodemanager.log-dirs 指定NodeManager存储容器日志文件的目录的URI。Cloudera建议为此属性在每个JBOD安装点上指定一个目录; 例如,file:///data/1/yarn/logs 到 file:///data/N/yarn/logs.
yarn.nodemanager.remote-app-log-dir 指定聚合日志的目录的URI。将该值设置为hdfs://namenode-host.company.com:8020/var/log/hadoop-yarn/apps (使用NameNode的完全限定名) hdfs:/var/log/hadoop-yarn/apps.。

这是一个示例配置:

**yarn-site.xml: **

  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>resourcemanager.company.com</value>
  </property>   
  <property>
    <description>Classpath for typical applications.</description>
    <name>yarn.application.classpath</name>
    <value>
        $HADOOP_CONF_DIR,
        $HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
        $HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
        $HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
        $HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*
    </value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>file:///data/1/yarn/local,file:///data/2/yarn/local,file:///data/3/yarn/local</value>
  </property>
  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>file:///data/1/yarn/logs,file:///data/2/yarn/logs,file:///data/3/yarn/logs</value>
  </property>
  <property>
    <name>yarn.log.aggregation-enable</name>
    <value>true</value> 
  </property>  
  <property>
    <description>Where to aggregate logs</description>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>hdfs://<namenode-host.company.com>:8020/var/log/hadoop-yarn/apps</value>
  </property>

在yarn-site.xml 中指定这些目录后,您必须创建目录并为群集中每台主机上的目录分配正确的文件权限。

在以下说明中,本地路径示例用于表示Hadoop参数。更改路径示例以匹配您的配置。

配置YARN使用的本地存储目录:

  1. 创建yarn.nodemanager.local-dirs 本地目录:
$ sudo mkdir -p /data/1/yarn/local /data/2/yarn/local /data/3/yarn/local /data/4/yarn/local
  1. 创建 yarn.nodemanager.log-dirs 本地目录:
$ sudo mkdir -p /data/1/yarn/logs /data/2/yarn/logs /data/3/yarn/logs /data/4/yarn/logs
  1. 配置 yarn.nodemanager.local-dirs 的所有者 yarn 用户:
$ sudo chown -R yarn:yarn /data/1/yarn/local /data/2/yarn/local /data/3/yarn/local /data/4/yarn/local
  1. 配置yarn.nodemanager.log-dirs 的所有者yarn 用户:
$ sudo chown -R yarn:yarn /data/1/yarn/logs /data/2/yarn/logs /data/3/yarn/logs /data/4/yarn/logs

以下是本地目录的正确所有者和权限摘要:

目录 所有者 权限
yarn.nodemanager.local-dirs yarn:yarn drwxr-xr-x
yarn.nodemanager.log-dirs yarn:yarn drwxr-xr-x

第3步:配置JobHistory服务器

如果您决定在群集上运行YARN而不是MRv1,则还应该运行MapReduce JobHistory Server。下表显示了您在mapred-site.xml中必须配置的最重要的属性。

属性 建议值 描述
mapreduce.jobhistory.address historyserver.company.com:10020 JobHistory服务器的地址 host:port
mapreduce.jobhistory.webapp.address historyserver.company.com:19888 JobHistory服务器Web应用程序的地址host:port

另外,请确保代理已对mapred 用户启用 ; 在 core-site.xml中配置以下属性。

属性 建议值 描述
hadoop.proxyuser.mapred.groups * 允许 mapred 用户移动属于这些组中的用户的文件
hadoop.proxyuser.mapred.hosts * 允许mapred用户移动属于这些主机的文件

第4步:配置Staging目录

YARN运行作业时需要一个临时目录来存放临时文件。默认情况下它会创建具有严格限制权限的目录/tmp/hadoop-yarn/staging ,这个权限可能会阻止其他用户运行作业。为了避免这种情况,你应该自己配置和创建Staging 目录; 在下面的例子中我们/user:

  1. 在mapred-site.xml配置 yarn.app.mapreduce.am.staging-dir:
<property>
    <name>yarn.app.mapreduce.am.staging-dir</name>
    <value>/user</value>
</property>
  1. 一旦HDFS启动并运行,您将创建该目录和一个history 子目录下(参见步骤8)。

或者,您可以执行以下操作:

  1. 在mapred-site.xml中 配置mapreduce.jobhistory.intermediate-done-dir and mapreduce.jobhistory.done-dir 。
  2. 创建这两个目录。
  3. 设置权限 mapreduce.jobhistory.intermediate-done-dir 为 1777。
  4. 设置权限 mapreduce.jobhistory.done-dir 为750。

如果你按上述配置了mapreduce.jobhistory.intermediate-done-dir and mapreduce.jobhistory.done-dir ,您可以跳过步骤8

第5步:如果有必要,请将自定义配置部署到整个群集

如果您尚未这样做,请部署配置

步骤6:如果必要,请在群集中的每台主机上启动HDFS

如果您尚未这样做,请启动HDFS

步骤7:如有必要,创建HDFS / tmp目录

如果您尚未这样做,请创建/ tmp目录

重要:

如果你不创建 / tmp目录限,您以后可能会遇到CDH组件的问题。具体来说,如果你不创建/ tmp目录,另一个进程可能会自动创建限制性权限,以防止其他应用程序使用它,会造成其他组件无法正常使用该目录。

步骤5 6 7 请参见 上篇翻译: 集群部署HDFS

第8步:创建history 目录和设置权限

这是您在步骤4中配置的staging目录的子目录。在这个例子中,我们使用/user/history。创建并设置权限,如下所示:

sudo -u hdfs hadoop fs -mkdir -p /user/history
sudo -u hdfs hadoop fs -chmod -R 1777 /user/history
sudo -u hdfs hadoop fs -chown mapred:hadoop /user/history

第9步:启动YARN和MapReduce JobHistory服务器

要启动YARN,请启动ResourceManager和NodeManager服务:

注意:

确保在启动NodeManager服务之前先启动ResourceManager。

在ResourceManager系统上:

$ sudo service hadoop-yarn-resourcemanager start

在每个NodeManager系统上(通常与运行DataNode服务的系统相同):

$ sudo service hadoop-yarn-nodemanager start

启动MapReduce JobHistory服务器

在MapReduce JobHistory服务器系统上:

$ sudo service hadoop-mapreduce-historyserver start

第10步:为每个MapReduce用户创建一个主目录

在NameNode上为每个MapReduce用户创建一个主目录。例如:

$ sudo -u hdfs hadoop fs -mkdir  /user/<user>
$ sudo -u hdfs hadoop fs -chown <user> /user/<user>

其中<user>是每个用户的Linux用户名。

或者,您可以以每个Linux用户身份登录(或者编写脚本来执行此操作),然后按照以下步骤创建主目录:

sudo -u hdfs hadoop fs -mkdir /user/$USER
sudo -u hdfs hadoop fs -chown $USER /user/$USER

第11步:配置Hadoop守护进程在启动时运行

使用chkconfig 工具进行配置。
对于Hadoop核心服务配置随机器启动,参见 Configuring init to Start Core Hadoop System Services.

非核心组件也可以配置随机器启动,在安装后参见 Configuring init to Start Non-core Hadoop System Services for instructions.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容