IDEA常用插件 Mybatis源码分析(1) - Mybatis包目录简介 tair 1:tair学习 dataflow论文阅读笔记 Polysh的安装使用 SnappyData排序函数比较 Squirrel-sql客户端连接SnappyData手册 在虚拟机里显示Hello World spark学习博客推荐 SnappyData学习博客和官网文章 Docker常用命令 MyBatis支持的OGNL语法 mysql性能优化 mysql性能优化-优化Sql语句 java各版本新特性 mac上命令行操作 explain输出格式 从文件中读取zk配置——ZooKeeper编程技能(1) git进阶经验-从项目中删除移除的目录 Mongodb 学习之shell命令操作(3) mysql命令 git进阶经验-从多模块项目中分理子模块 从零学hadoop-搭建基础(单点)的Hdfs环境 ZooKeeper集群操作脚本 Vue安装使用 2 初学JVM之问答式记住类加载机制 2 初学JVM之问答式记住虚拟机性能监控与故障处理工具 2 初学JVM之问答式记住垃圾收集器 log4j2 按天生成日志文件 1 初学JVM之问答式记住java自动内存管理 MapReduce学习心得之MapReduce初识 log4j2 日志发送到kafka配置实战 log4j2 日志配置实战 Mongodb 学习之shell命令操作(二) Mongodb 学习之linux版本安装(一) Dubbo的初级使用 ServiceLoader内部实现分析 ServiceLoader 初级应用 log4j日志发送邮件配置实战 红黑树笔记 IDEA首次使用之前的配置 java源码学习之Enum java源码学习之String 自定义Spring tag标签 编写一键发布脚本 记一次Spring Scheduler莫名不执行的一次堆栈分析 kafka的基本操作 nginx 5:Nginx内部变量 nginx 4:Nginx日志管理 提高hadoop配置效率的shell脚本 Hive编程指南之一 Hive的安装 Ambari服务器安装 Ambari服务器管理集群 HBase分布式安装 windows下Eclipse远程调试运行MR程序 基于MapReduce新的API的编程Demo-wordCount window下Eclipse远程只读HDFS上的文件 YARN上节点标签 编写第一个MapReduce的wordcount程序 NodeManager的重启 搭建JStorm集群 YARN上的web应用代理 YARN上的ResourceManager的高可用方案 配置vmware中的虚拟机使用宿主机的共享网络 YARN架构简述 HDFS 架构 Spring的统一异常处理机制 Tomcat 配置服务 HDFS的viewfs指南 HDFS的Federation之路 HDFS基于QJM的HA之路 nginx 3:Nginx反向代理 mybatis操作主体流程 1.正则表达式学习-基础篇 log4j日志配置详解 mysql的时间函数 nginx 2:Nginx模块配置理论及实战 HashMap相关解析和测试文章 工作一年后的面试 用私有构造器或枚举类型强化Singleton属性 java中比较重要的图 mybatis处理枚举类 mybatis集成进spring Spring比较重要的几个截图 21.hadoop-2.7.2官网文档翻译-使用NFS的HDFS高可用性 20.hadoop-2.7.2官网文档翻译-使用仲裁日志管理器的HDFS高可用性 markdown在jekyll中支持的一些操作 Spring项目中配置sl4j和log4j的日志配置 19.hadoop-2.7.2官网文档翻译-HDFS命令指南 Spring的profile机制介绍 mybatis-generator反向生成 18.hadoop-2.7.2官网文档翻译-HDFS用户指南 17.hadoop-2.7.2官网文档翻译-实现Hadoop中Dapper-like追踪 16.hadoop-2.7.2官网文档翻译-Hadoop的KMS(key 管理服务器)-文档集 15.hadoop-2.7.2官网文档翻译-Hadoop的http web认证 14.hadoop-2.7.2官网文档翻译-服务级别的授权指南 13.hadoop-2.7.2官网文档翻译-安全模式中的Hadoop 09.hadoop-2.7.2官网文档翻译-Hadoop命令行微型集群 12.hadoop-2.7.2官网文档翻译-机架感知 11.hadoop-2.7.2官网文档翻译-代理用户-超级用户对其他用户的代表 10.hadoop-2.7.2官网文档翻译-原生库指南 08.hadoop-2.7.2官网文档翻译-文件系统规范 07.hadoop-2.7.2官网文档翻译-Hadoop接口类别 (转)浅析 Decorator 模式,兼谈 CDI Decorator 注解 06.hadoop-2.7.2官网文档翻译-Hadoop的兼容性 05.hadoop-2.7.2官网文档翻译-文件系统命令 04.hadoop-2.7.2官网文档翻译-Hadoop命令指南 03.hadoop-2.7.2官网文档翻译-集群安装 02.hadoop-2.7.2官网文档翻译-单节点集群安装 01.hadoop-2.7.2官网文档翻译-概述 Http 协议相应状态码大全及常用状态码 IDEA快捷键 JDBC Type与Java Type redis 12:redis 操作集合 mybatis-generator错误集合 redis 11:redis 错误集合 nginx 1:nginx的安装 redis 10:redis cluster命令操作 redis 9:redis实例集群安装 java设计模式 hadoop集群学习笔记(1) Apache Shiro 简介 vim编辑神器的进阶命令 Eclipse配置 Eclipse快捷键 Linux 测试题 Linux脚本学习(1) Linux启动简要过程 Centos7上安装Mysql hadoop集群学习笔记(1) (转)分布式发布订阅消息系统 Kafka 架构设计 maven 命令 Kafka集群安装 Kafka初步使用 redis 8:redis server 和 scripting命令操作 redis 7:redis transaction 和 connection命令操作 redis 6:redis hash 命令操作 redis 5:redis sorted_set 命令操作 搭建本地Jekyll+Markdown+Github的开发环境 Spring源码阅读笔记(2) redis 4:redis set命令操作 Spring添加任务调度配置 redis 3:Redis list命令操作 redis 2:redis 一般命令操作 redis 1:redis单机安装笔记 redis 0:redis配置属性描述 Spring源码阅读笔记(1) spark 错误集锦 spark集群安装 Linux 基本命令操作 Hadoop错误信息处理 Hadoop代码拾忆 从零开始搭建spring-springmvc-mybatis-mysql和dubbo项目 java知识点札记 java排错 Google Java Style 中文版 git进阶经验 github使用经验 MongoDB用户角色授权与AUTH启用 MongoDB 命令 MongoDB 特定规范 Spring MVC实现跳转的几种方式 史上最全最强SpringMVC详细示例实战教程 Spring 零星笔记 js中(function(){…})()立即执行函数写法理解 如何解决跨域问题 创建ajax简单过程 前端定位 设置MYSQL允许通过IP访问 mybatis异常 :元素内容必须由格式正确的字符数据或标记组成 如何为 WordPress 绑定多个域名的方法s WordPress工作原理之程序文件执行顺序(传说中的架构源码分析) Spring源码导入Eclipse中 基于PHPnow搭建Eclipse开发环境 解决wordpress首页文章内容截断处理的几种方法 ZooKeeper理论知识 ZooKeeper集群安装配置 Git常用命令速查表 Linux 4:磁盘与文件系统管理 Linux 3:文件与目录管理 Linux 2:文件权限与目录配置 Markdown输入LaTeX数学公式
从零学hadoop-搭建基础(单点)的Hdfs环境 MapReduce学习心得之MapReduce初识 Ambari服务器安装 Ambari服务器管理集群 windows下Eclipse远程调试运行MR程序 基于MapReduce新的API的编程Demo-wordCount window下Eclipse远程只读HDFS上的文件 YARN上节点标签 编写第一个MapReduce的wordcount程序 NodeManager的重启 YARN上的web应用代理 YARN上的ResourceManager的高可用方案 YARN架构简述 HDFS 架构 HDFS的viewfs指南 HDFS的Federation之路 HDFS基于QJM的HA之路 21.hadoop-2.7.2官网文档翻译-使用NFS的HDFS高可用性 20.hadoop-2.7.2官网文档翻译-使用仲裁日志管理器的HDFS高可用性 19.hadoop-2.7.2官网文档翻译-HDFS命令指南 18.hadoop-2.7.2官网文档翻译-HDFS用户指南 17.hadoop-2.7.2官网文档翻译-实现Hadoop中Dapper-like追踪 16.hadoop-2.7.2官网文档翻译-Hadoop的KMS(key 管理服务器)-文档集 15.hadoop-2.7.2官网文档翻译-Hadoop的http web认证 14.hadoop-2.7.2官网文档翻译-服务级别的授权指南 13.hadoop-2.7.2官网文档翻译-安全模式中的Hadoop 09.hadoop-2.7.2官网文档翻译-Hadoop命令行微型集群 12.hadoop-2.7.2官网文档翻译-机架感知 11.hadoop-2.7.2官网文档翻译-代理用户-超级用户对其他用户的代表 10.hadoop-2.7.2官网文档翻译-原生库指南 08.hadoop-2.7.2官网文档翻译-文件系统规范 07.hadoop-2.7.2官网文档翻译-Hadoop接口类别 06.hadoop-2.7.2官网文档翻译-Hadoop的兼容性 05.hadoop-2.7.2官网文档翻译-文件系统命令 04.hadoop-2.7.2官网文档翻译-Hadoop命令指南 03.hadoop-2.7.2官网文档翻译-集群安装 02.hadoop-2.7.2官网文档翻译-单节点集群安装 01.hadoop-2.7.2官网文档翻译-概述 hadoop集群学习笔记(1) hadoop集群学习笔记(1) Hadoop错误信息处理 Hadoop代码拾忆

03.hadoop-2.7.2官网文档翻译-集群安装

2016年07月04日
摘要:

Hadoop 集群安装

目标

该文档描述了怎样在几个节点到非常多的节点(上千个)上安装并配置hadoop集群。为了玩Hadoop,你可能首先想要把他安装在单一机器上。(请看单节点安装

该文档不涉及高级论题,比如安全或者HA(高可用)

先决条件

  • 安装java

  • 下载稳定版的Hadoop

安装

安装Hadoop集群通常涉及到在集群所有机器上解包软件,或者通过你系统的包管理系统安装。 把硬件按照功能划分是很重要的。

通常集群中的一个机器专门被设计作为NameNode,另一个机器作为ResourceManager。 他们都是主节点,其他的服务(如:WEB应用代理服务器,MapReduce任务历史服务器)通常根据负载,运行在专用硬件或共享的基础上。

集群中剩余的机器同时作为DataNode和NodeManager,他们都是从节点。

在非安全模式下配置Hadoop

Hadoop的java配置有两种重要的配置文件驱动:

  • 只读的默认配置

    core-default.xml,
    hdfs-default.xml,
    yarn-default.xml,
    mapred-default.xml

  • 站点指定配置

    etc/hadoop/core-site.xml,
    etc/hadoop/hdfs-site.xml,
    etc/hadoop/yarn-site.xml,
    etc/hadoop/mapred-site.xml

此外,可以控制bin/下的Hadoop脚本,通过 etc/hadoop/hadoop-env.shetc/hadoop/yarn-env.sh设置站点指定的值。

为了配置Hadoop集群,你会需要配置Hadoop守护进程执行的environment,就像Hadoop的守护进程的配置参数。

HDFS守护进程是NameNodeSecondaryNameNodeDataNode

YARN守护进程是ResourceManager,NodeManagerWebAppProxy

如果MapReduce被使用了,然后MapReduce的任务历史服务也将运行。对于大量安装,这些通常运行在单独的主机上。

配置Hadoop守护进程的环境

管理员应该使用 etc/hadoop/hadoop-env.sh,作为一个选项,etc/hadoop/mapred-env.shetc/hadoop/yarn-env.sh脚本用来配置站点指定的自定义的Hadoop守护进程处理环境。

至少是,你必须指定JAVA_HOME,使得他再每一个远程机器上正确的定义。

Daemon Environment Variable
NameNode HADOOP_NAMENODE_OPTS
DataNode HADOOP_DATANODE_OPTS
Secondary NameNode HADOOP_SECONDARYNAMENODE_OPTS
ResourceManager YARN_RESOURCEMANAGER_OPTS
NodeManager YARN_NODEMANAGER_OPTS
WebAppProxy YARN_PROXYSERVER_OPTS
Map Reduce Job History Server HADOOP_JOB_HISTORYSERVER_OPTS

举个例子:为了配置NameNode使用parallelGC,应该在hadoop-env.sh中添加上export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"

其他的例子请看etc/hadoop/hadoop-env.sh

其他你可能会自定义的有用的配置参数包括:

  • HADOOP_PID_DIR :守护进程的处理id文件存储的目录

  • HADOOP_LOG_DIR : 守护进程的日志文件存储目录,如果不存在日志文件会自动创建。

  • HADOOP_HEAPSIZE / YARN_HEAPSIZE : 最大可用的堆大小,单位为MB. 比如如果该变量设置为1000,那heap将会被设置为1000MB。通过用来为守护进程配置堆大小。默认情况下,值为1000.如果你想要配置值分别为每一个守护进程使用,你可以使用它。

大多数情况下,你应该指定HADOOP_PID_DIRHADOOP_LOG_DIR目录,他们只能被正在运行的Hadoop进程上的用户覆盖。否则就会有链接攻击的可能性。

惯例下,会在系统的shell环境中配置HADOOP_PREFIX ,比如一个简单的脚本包含在/etc/profile.d目录中:

HADOOP_PREFIX=/path/to/hadoop
export HADOOP_PREFIX
Daemon Environment Variable
ResourceManager YARN_RESOURCEMANAGER_HEAPSIZE
NodeManager YARN_NODEMANAGER_HEAPSIZE
WebAppProxy HADOOP_DATANODE_OPTS
Map Reduce Job History Server HADOOP_DATANODE_OPTS

配置Hadoop的守护进程

这一节讨论在给定的配置文件中指定的重要参数:

  • etc/hadoop/core-site.xml
参数 备注
fs.defaultFS hdfs://host:port/ NameNode的URI
io.file.buffer.size 131072 用于序列文件中读写缓存的大小
  • etc/hadoop/hdfs-site.xml

    • 配置NameNode
参数 备注
dfs.namenode.name.dir 用来存储NameNode和事务持久日志的本地文件系统路径 如果是以逗号分隔的目录列表,那么name的表会被复制到所有的目录中,为了冗余
dfs.hosts / dfs.hosts.exclude DataNode的许可和限制列表 如果必要的话,用这些文件来控制可访问的DataNode的列表
dfs.blocksize 268435456 在大文件系统中HDFS的默认块大小为256M
dfs.namenode.handler.count 100 更多的NameNode服务线程来处理大量的DataNode的RPC
- 配置DataNode
参数 备注
dfs.datanode.data.dir 用逗号分隔本地文件系统的路径列表,用来存储DataNode块 如果是以逗号分隔的目录列表,那么数据建辉被存储在所有的目录中,这些目录通常是在不同的设备上
  • etc/hadoop/yarn-site.xml

    • 配置ResourceManager 和NodeManager
参数 备注
yarn.acl.enable true / false 是否开启访问控制列表(ACL),默认为关闭
yarn.admin.acl 管理员访问控制列表 设置管理员的访问控制列表。ACL是以逗号分离的组,组内用户以逗号分离。默认值为*,意味着任何人。Special值意味着没有人可以访问。
yarn.log-aggregation-enable false 配置是否启用日志聚集功能
- 配置ResourceManager
参数 备注  
yarn.resourcemanager.address host:port 集群提交作业的RM地址,如果host:port 设置了,会覆盖在yarn.resourcemanager.hostname中设置的hostname  
yarn.resourcemanager.scheduler.address host:port AM通知调度器获取资源的地址。如果设置了,会覆盖在yarn.resourcemanager.hostname中设置的hostname  
yarn.resourcemanager.resource-tracker.address host:port NodeManager的地址。如果设置了,会覆盖在yarn.resourcemanager.hostname中设置的hostname  
yarn.resourcemanager.admin.address host:port 管理的命令的地址。如果设置了,会覆盖在yarn.resourcemanager.hostname中设置的hostname  
yarn.resourcemanager.webapp.address host:port web界面的地址。如果设置了,会覆盖在yarn.resourcemanager.hostname中设置的hostname  
yarn.resourcemanager.hostname host 单一的主机名可以设置在所有的yarn.resourcemanager*address资源中,RM组件的默认端口  
yarn.resourcemanager.scheduler.class 调度类 CapacityScheduler(推荐),公平调度器(推荐),FIFO调度器  
yarn.scheduler.minimum-allocation-mb 单位为MB RM中每个容器需要分配的最小内存限制  
yarn.scheduler.maximum-allocation-mb 单位为MB RM中每个容器需要分配的最大内存限制  
yarn.resourcemanager.nodes.include-path 允许的NM列表 如果必要的话,用这些文件控制可访问的NodeManager的列表  
yarn.resourcemanager.nodes.exclude-path 禁止的NM列表 如果必要的话,用这些文件控制可访问的NodeManager的列表  
- 配置NodeManager
参数 备注
yarn.nodemanager.resource.memory-mb 单位为MB 给NodeManager的可用物理内存。默认NM所有可以获得的资源作为可用资源来运行容器
yarn.nodemanager.vmem-pmem-ratio 任务可以超过物理内存的虚拟内存最大使用比例 每个任务超过物理内存的虚拟内存使用率通过该比率限制。通过该比率限制,在NodeManager上任务使用的虚拟内存的总量可能超过他的物理内存使用量
yarn.nodemanager.local-dirs 中间数据的写入位置,本地文件系统各种以逗号分隔的路径列表 多路径帮助分担IO操作
yarn.nodemanager.log-dirs 日志文件在本地文件系统的位置,以逗号分隔的路径列表 多路径帮助分担IO操作
yarn.nodemanager.log.retain-seconds 10800 如果log-aggregation被关闭,默认的仅适当的在NodeManager上保留的日志时间(秒为单位)。
yarn.nodemanager.remote-app-log-dir /logs 应用日志被移动完成的HDFS的目录,需要设置适当的限制。如果log-aggregation被开启则仅applicable
yarn.nodemanager.remote-app-log-dir-suffix logs 远程日志目录的后缀。日志将被聚合到${yarn.nodemanager.remote-app-log-dir}/${user}/${thisParam}.如果log-aggregation被开启则仅applicable
yarn.nodemanager.aux-services mapreduce_shuffle Shuffle 服务需要为MapReduce应用设置
- 配置History 服务器(需要移到别处)
参数 备注
yarn.log-aggregation.retain-seconds -1 保留聚合日志的时间。-1为不生效。注意设置过小,会有NameNode的垃圾邮件
yarn.log-aggregation.retain-check-interval-seconds -1 检查被聚合的日志保留的时间区间。如果设置为0或负数,那么值将被计算Wie十分之一的汇总日志保留时间。之一,设置太小会有NameNode的垃圾邮件。
  • etc/hadoop/mapred-site.xml

    • 配置MapReduce应用
参数 备注
mapreduce.framework.name yarn 执行框架设置为Hadoop YARN
mapreduce.map.memory.mb 1536 映射(map)的大资源限制
mapreduce.map.java.opts -Xmx1024M 映射(map)的子JVM的大堆规模限制
mapreduce.reduce.memory.mb 3072 归约(reduce)的大资源限制
mapreduce.reduce.java.opts -Xmx2560M 归约(reduce)的子JVM的大堆规模限制
mapreduce.task.io.sort.mb 512 数据排序效率的高内存限制
mapreduce.task.io.sort.factor 100 文件排序时更多的流一次合并
mapreduce.reduce.shuffle.parallelcopies 50 reduce平行复制到从大量map中获取输出的更高的数量设置
- 配置MapReduce的JobHistory服务器
参数 备注
mapreduce.jobhistory.address host:port MapReduce的JobHistory服务器地址,默认端口为10020
mapreduce.jobhistory.webapp.address host:port MapReduce的JobHistory服务器UI地址,默认端口为19888
mapreduce.jobhistory.intermediate-done-dir /mr-history/tmp MapReduce任务写历史文件的目录
mapreduce.jobhistory.done-dir /mr-history/done MapReduce的JobHistory服务器管理历史文件的目录

监控NodeManager的健康状态

Hadoop提供了一种机制,管理员可以通过配置NodeManager定期运行管理员提供的脚本来检测节点是否健康。

通过执行任何他们在脚本中选择的检查点,管理员可以检测节点是否处于健康状态。如果脚本发现节点处于非健康状态,它会向标准输出打印一条以ERROR开头的一行记录。NodeManager定期产生脚本并且将其检出。 如上所述,如果脚本检出中包含了ERROR,该节点的状态会被报告为unhealthy ,节点将会被ResourceManager加入黑名单。该节点将不会被分配任务。然而,NodeManager会继续运行脚本,因此如果该节点又变成healthy状态,它会被自动从ResourceManager的node黑名单中移除。 节点的健康是随着脚本的输出变化的,如果它是unhealthy,可以在管理员的ResourceManager的WEB页面中获得。节点健康的时间也会显示在web界面上。

接下来的参数可以用来控制在etc/hadoop/yarn-site.xml中的节点健康状态的监控脚本。

参数 备注
yarn.nodemanager.health-checker.script.path 节点健康检测脚本路径 检查节点的健康状态
yarn.nodemanager.health-checker.script.opts 脚本的操作选项 脚本检查节点健康状态的选项
yarn.nodemanager.health-checker.script.interval-ms 间隔时间(单位:ms) 运行健康脚本的时间间隔
yarn.nodemanager.health-checker.script.timeout-ms 脚本执行超时时间(单位:ms) 健康脚本执行的超时时间

如果只是一些本地磁盘坏了,健康检查脚本不应当给出ERROR信息。NodeManager可以周期性检查本地磁盘的健康(特别是检查 nodemanager-local-dirsnodemanager-log-dirs的指定位置),并且在达到的坏目录的数量阀值(基于在yarn.nodemanager.disk-health-checker.min-healthy-disks配置属性里设置的值)后,整个节点会被标记为unhealthy,该信息也会被发送到ResourceManager。 启动磁盘或者在启动磁盘中的故障是有健康检查脚本确定的。

从文件

文件etc/hadoop/slaves中存在所有的从节点的hostname或者ip的列表,每个一行。Helper脚本将会使用etc/hadoop/slaves文件一次性在许多主机上运行命令。该文件不用于任何基于java的Hadoop配置。为了使用该设计,运行Hadoop的用户的ssh必须被信任(即免密码登录)。

Hadoop 机架感知

许多Hadoop组件是机架感知和利用网络拓扑的性能和安全性。通过调用管理员配置模块,Hadoop的守护进程获取集群中从节点的机架信息。 可以查看Rack Awareness文档获取更多具体信息。

强烈推荐在启动HDFS之前配置机架感知能力

日志

Hadoop通过apache的通用日志框架使用log4j记录日志。 编辑etc/hadoop/log4j.properties文件自定义Hadoop守护进程的日志配置(日志格式等等)。

操作Hadoop集群

一旦所有必须的配置完成后,分发文件到所有机器的HADOOP_CONF_DIR目录。在所有机器上应该是相同的目录。

一般情况下,推荐HDFS和YARN以不同的用户身份运行。在大多数配置中,HDFS使用’hdfs’账户执行,YARN通常使用’yarn’账户执行。

Hadoop启动

为了启动Hadoop集群,你需要同时启动HDFS集群和YARN集群。

第一次使用HDFS,必须先格式化,格式化新的分布式文件系统如HDFS:

$ $HADOOP_PREFIX/bin/hdfs namenode -format <cluster_name>

在指定作为NameNode的HDFS节点上使用如下命令启动HDFS的NameNode

$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start namenode

在指定作为DataNode的HDFS节点上使用如下命令启动HDFS的DataNode

$ $HADOOP_PREFIX/sbin/hadoop-daemons.sh --config $HADOOP_CONF_DIR --script hdfs start datanode

如果etc/hadoop/slaves和ssh免密码登录设置成功。所有的HDFS进程可以使用一个公用脚本启动。

$ $HADOOP_PREFIX/sbin/start-dfs.sh

在指定作为ResourceManager的YARN节点上使用如下命令启动YARN

$ $HADOOP_YARN_HOME/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start resourcemanager

在指定作为NodeManager的YARN节点上使用如下命令运行脚本

$ $HADOOP_YARN_HOME/sbin/yarn-daemons.sh --config $HADOOP_CONF_DIR start nodemanager

启动一个单独的WebAppProxy代理服务器。在作为WebAppProxy的YARN节点上运行如下命令,如果有多个服务器作为负载均衡,那么应该在每个机器上运行该脚本。

$ $HADOOP_YARN_HOME/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start proxyserver

如果etc/hadoop/slaves和ssh免密码登录设置成功。所有的YARN进程可以使用一个公用脚本启动。

$ $HADOOP_PREFIX/sbin/start-yarn.sh

使用以下命令,在设置作为mapred的机器上启动MapReduce的JobHistory服务器

$ $HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh --config $HADOOP_CONF_DIR start historyserver

Hadoop停止

在设计为NameNode的HDFS节点上执行如下命令停止NameNode

$ $HADOOP_PREFIX/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs stop namenode

在设计为DataNode的HDFS节点上执行如下命令停止DataNode

$ $HADOOP_PREFIX/sbin/hadoop-daemons.sh --config $HADOOP_CONF_DIR --script hdfs stop datanode

如果etc/hadoop/slaves和ssh免密码登录设置成功。所有的HDFS进程可以使用一个公用脚本停止。

$ $HADOOP_PREFIX/sbin/stop-dfs.sh

在设计为ResourceManager的YARN节点上停止ResourceManager

$ $HADOOP_YARN_HOME/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR stop resourcemanager

在设计为NodeManager的YARN节点上停止NodeManager

$ $HADOOP_YARN_HOME/sbin/yarn-daemons.sh --config $HADOOP_CONF_DIR stop nodemanager

如果etc/hadoop/slaves和ssh免密码登录设置成功。所有的YARN进程可以使用一个公用脚本停止。

$ $HADOOP_PREFIX/sbin/stop-yarn.sh

在设计为WebAppProxy的YARN节点上停掉WebAppProxy服务器。如果由多个用于负载均衡的服务器,需要在每个机器上运行该命令

$ $HADOOP_YARN_HOME/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR stop proxyserver

在Mapred的节点上停掉MapReduce JobHistory 服务器

$ $HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh --config $HADOOP_CONF_DIR stop historyserver

WEB 接口

一旦Hadoop集群启动,运行如下描述的各组件的WEB界面

守护进程 web接口 备注
NameNode http://nn_host:port/ 默认端口为50070
ResourceManager http://rm_host:port/ 默认端口为8088
MapReduce JobHistory server http://jns_host:port/ 默认端口为19888