文档章节

Hadoop集群环境部署(Cluster environment)

e
 ehofy
发布于 2013/11/21 13:26
字数 2226
阅读 1169
收藏 5

探讨问题的同胞们可以加QQ群:315309006

本文是基于hadoop0.23.9版本的说明
 

1.     参考文档

Apache官网Hadoop集群Cluster安装文档,Ctrl+鼠标左键点击这里进入链接地址

2. Hadoop基本概念

Hadoop经典模型一般会在集群里面专门指定一台机器作为NameNode,再指定一台作为资源管理节点ResourceManager

hadoop两种配置方式

只读方式配置(Read-only default configuration):直接修改core-default.xml, hdfs-default.xml, yarn-default.xml, mapred-default.xml四个配置文件(位置:$HADOOP_PREFIX\etc\hadoop

特定站点配置(Site-specific configuration):修改“$HADOOP_PREFIX\conf\”目录中的上述四个文件(可从$HADOOP_PREFIX\share\hadoop\common\templates\conf中去copy一份)

$HADOOP_PREFIX/ bin/目录是执行命令脚本的位置,hadoop命令用到的执行参数可以在$HADOOP_PREFIX/conf/hadoop-env.sh$HADOOP_PREFIX/etc/hadoop/yarn-env.sh/$HADOOP_PREFIX/conf/yarn-env.sh)文件中修改,如JDK路径等

3. Hadoop配置文件及参数

3.1 hadoop-env.sh/yarn-env.sh

3.1.1 配置项目

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

其他可配置的参数有:

Daemon

Environment Variable

ResourceManager

YARN_RESOURCEMANAGER_HEAPSIZE

NodeManager

YARN_NODEMANAGER_HEAPSIZE

WebAppProxy

YARN_PROXYSERVER_HEAPSIZE

Map Reduce Job History Server

HADOOP_JOB_HISTORYSERVER_HEAPSIZE

3.1.2 配置说明

启用JMX远程管理监控

效果:启用后可通过Jconsolehadoop各类节点进行远程监控

修改$hadoop_home/conf/hadoop_env.sh文件

export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS"

export XXXX=”-Dcom.sun.management.jmxremote $XXXX”

export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS -Dcom.sun.management.jmxremote.port=8003"

Dcom.sun.management.jmxremote.port=8006端口号

Dcom.sun.management.jmxremote.ssl=false ssl安全认证false

Dcom.sun.management.jmxremote.authenticate=false 用户认证false

3.2 Non-Secure Mode配置

3.2.1 conf/core-site.xml

Parameter

Value

Notes

fs.defaultFS

NameNode URI

格式如:hdfs://host:port/

默认的文件服务的协议和NS逻辑名称,和hdfs-site里的对应,取代了1.0版本中的fs.default.name

io.file.buffer.size

131072

读写序列化文件缓冲区大小

3.2.2 conf/hdfs-site.xml

3.2.2.1 NameNode配置

Parameter

Value

Notes

dfs.namenode.name.dir

NameNode命名空间和事务处理日志本地存储路径

该配置项可以配置多个路径,多路径用逗号分隔,用来对NameNode内容做备份冗余

dfs.namenode.hosts 

dfs.namenode.hosts.exclude

允许的host列表.

拒绝的host列表

有需要的话可用用这两个配置项对NameNodehost进行控制

dfs.blocksize

67108864 /64M

134217728 /128M

268435456 /256M

HDFS(分布式文件系统)文件块大小,默认是256MB,设置数值较大的话计算时用的map较少,太小的话浪费可用的map资源,这里根据需要设置,笔者提示:最好对自己的应用做个分析,最终文件是用来提供什么服务的

dfs.namenode.handler.count

100

Hadoop系统里启动的任务线程数

3.2.2.2 DataNode配置

Parameter

Value

Notes

dfs.datanode.data.dir

DataNode本地文件存储的路径

该配置项可以配置多个路径,多路径时用逗号进行分隔,一般做集群的时候存储数据都是存储到在不同的设备里面;

多目录配置时,存储的数据会被存储到所有的配置目录里面

3.2.3 conf/yarn-site.xml

3.2.3.1 ResourceManager and NodeManager

Parameter

Value

Notes

yarn.acl.enable

true /false

用来控制是否打开访问控制列表,ACL的英文是Access Control List

访问控制列表,默认值是false

yarn.admin.acl

Admin ACL

ACL用来设置集群管理员,可以设置多人,多人设置用逗号分隔,默认值是*,表示任何人;

如果是空格的话表示所有人都不能访问;

yarn.log-aggregation-enable

false

配置是否启用日志聚合

yarn.admin.acl用来设定集群管理员,服务级别的权限控制是通过配置hadoop-policy.xml实现。

3.2.3.2 ResourceManager

Parameter

Value

Notes

yarn.resourcemanager.address

用来设置客户端提交job

host:port

yarn.resourcemanager.scheduler.address

用来做主节点和资源节点间的任务调度

host:port

yarn.resourcemanager.resource-tracker.address

资源跟踪地址

host:port

yarn.resourcemanager.admin.address

管理命令

host:port

yarn.resourcemanager.webapp.address

资源管理界面

host:port

yarn.resourcemanager.scheduler.class

资源调度算法

ResourceManager Schedule class

默认采用CapacityScheduler容量调度算法(hadoop推荐使用的算法);

可选项还有FifoScheduler先进先出算法;

yarn.scheduler.minimum-allocation-mb

每个调度的最小内存设置

In MBs

yarn.scheduler.maximum-allocation-mb

每个调度的最大内存设置

In MBs

yarn.resourcemanager.nodes.include-path 

yarn.resourcemanager.nodes.exclude-path

允许/拒绝的NodeManager清单

有需要的话设置

资源调度算法的class(yarn.resourcemanager.scheduler.class配置项):

org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler

3.2.3.3 NodeManager

Parameter

Value

Notes

yarn.nodemanager.resource.memory-mb

NodeManager可用的物理内存,单位是MB

定义NodeManager的资源

yarn.nodemanager.vmem-pmem-ratio

虚拟内存比例

任务过程中如果对内存的需求超过物理内存的话将启用虚拟内存进行任务处理,虚拟内存最大值靠该处设置的比例进行控制

yarn.nodemanager.local-dirs

中间数据写入的路径,多路径用逗号分隔

多路径配置的话可以降低磁盘的I/O

yarn.nodemanager.log-dirs

日志文件写入的路径,多路径用逗号分隔

多路径配置的话可以降低磁盘的I/O

yarn.nodemanager.log.retain-seconds

10800

单位为秒,日志在本地保存的默认时间,这项仅在日志聚合关闭的时候使用

yarn.nodemanager.remote-app-log-dir

/logs

该项仅在日志聚合开启时使用,应用程序完成后,应用程序的日志将被移到该目录下

yarn.nodemanager.remote-app-log-dir-suffix

logs

该项仅在日志聚合开启时使用,日志将被聚合到目录${yarn.nodemanager.remote-app-log-dir}/${user}/${thisParam}

yarn.nodemanager.aux-services

mapreduce.shuffle

Map Reduce应用程序设置故障诊断服务

3.2.3.4 History Server (Needs to be moved elsewhere)

Parameter

Value

Notes

yarn.log-aggregation.retain-seconds

-1

设置聚合日志保留时间,-1表示不作控制

yarn.log-aggregation.retain-check-interval-seconds

-1

设置检查日志频率,如果满足删除条件的话,执行删除操作,如果这里的值是0或者-1的话,这个时间默认会按聚合日志保留时间的十分之一计算。

3.2.4 conf/mapred-site.xml

3.2.4.1 MapReduce Applications

Parameter

Value

Notes

mapreduce.framework.name

yarn

运行框架设置为 Hadoop YARN

mapreduce.map.memory.mb

1536

Maps最大资源

mapreduce.map.java.opts

-Xmx1024M

Maps Child JVMheap-size堆大小

mapreduce.reduce.memory.mb

3072

Reduces最大资源

mapreduce.reduce.java.opts

-Xmx2560M

Reduces Maps Child JVMheap-size堆大小

mapreduce.task.io.sort.mb

512

sort整理数据最大使用内存设置

mapreduce.task.io.sort.factor

100

整理数据时一次合并的流数量

mapreduce.reduce.shuffle.parallelcopies

50

Reduce运行的最大并行复制数量,用来获取大量maps的输出

3.2.4.2 MapReduce JobHistory Server

Parameter

Value

Notes

mapreduce.jobhistory.address

MapReduce Job历史服务Server host:port

默认端口10020.

mapreduce.jobhistory.webapp.address

MapReduce Job历史服务的web界面host:port

默认端口19888.

mapreduce.jobhistory.intermediate-done-dir

/mr-history/tmp

MapReduce jobs写入历史文件的目录

mapreduce.jobhistory.done-dir

/mr-history/done

MR JobHistory Server管理的历史文件目录

 

4. Hadoop自动感知能力

HDFSYARN组件是按自动感应方式设计的

NameNodeResourceManager在管理员配置模块通过API实现对Slave节点的管理

API给每个DNS或者IP分配一个Rack ID

特定站点模式可以使用topology.node.switch.mapping.impl进行定义,默认的实现方式是运行一个脚本命令来配置topology.script.file.name

5. Hadoop节点监测

Hadoop提供了节点监测机制NodeManagers,如果节点出现异常,ResourceManager将不再把任务发给该节点,直到异常节点恢复为止。

健康监测脚本在conf/yarn-site.xml配置

Parameter

Value

Notes

yarn.nodemanager.health-checker.script.path

Node health script

Script to check for node's health status.

yarn.nodemanager.health-checker.script.opts

Node health script options

Options for script to check for node's health status.

yarn.nodemanager.health-checker.script.interval-ms

Node health script interval

Time interval for running health script.

yarn.nodemanager.health-checker.script.timeout-ms

Node health script timeout interval

Timeout for health script execution.

6. Hadoop Slave File

通常集群环境里面只有一个NameNode和一个ResourceManager,在conf/slaves把所有slave节点的hostnameIP地址都列上

7. Hadoop系统日志

Hadoop日志是用apache log4j实现的,可同过conf/log4j.properties对日志进行配置。

8. Hadoop系统运行

配置完成以后,将配置文件HADOOP_CONF_DIR 分发到集群内所有节点上

8.1 Hadoop启动

To start a Hadoop cluster you will need to start both the HDFS and YARN cluster.

Format a new distributed filesystem:

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

Start the HDFS with the following command, run on the designated NameNode:

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

Run a script to start DataNodes on all slaves:

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

Start the YARN with the following command, run on the designated ResourceManager:

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

Run a script to start NodeManagers on all slaves:

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

Start a standalone WebAppProxy server. If multiple servers are used with load balancing it should be run on each of them:

$ $HADOOP_YARN_HOME/bin/yarn start proxyserver --config $HADOOP_CONF_DIR

Start the MapReduce JobHistory Server with the following command, run on the designated server:

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

Hadoop Shutdown

Stop the NameNode with the following command, run on the designated NameNode:

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

Run a script to stop DataNodes on all slaves:

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

Stop the ResourceManager with the following command, run on the designated ResourceManager:

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

Run a script to stop NodeManagers on all slaves:

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

Stop the WebAppProxy server. If multiple servers are used with load balancing it should be run on each of them:

$ $HADOOP_YARN_HOME/bin/yarn stop proxyserver --config $HADOOP_CONF_DIR

Stop the MapReduce JobHistory Server with the following command, run on the designated server:

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

探讨问题的同胞们可以加QQ群:315309006

© 著作权归作者所有

e
粉丝 9
博文 11
码字总数 9463
作品 0
海淀
技术主管
私信 提问
虚拟化Hadoop集群的部署和管理 - 基本操作

在Big Data Extensions(BDE)上不仅可以在分钟级别非常快速地部署Hadoop集群,这点可以通过前文《大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hadoop集群》和《大数据虚拟化零起...

vBigData
2013/09/10
0
0
Ironfan在大数据集群部署、配置管理中的应用

Ironfan介绍 在Serengeti中,有二个最重要最关键的功能:一是虚拟机管理,即在vCenter中为一个Hadoop集群创建和管理所需要的虚拟机;另一个是集群软件安装配置管理,即在已安装好操作系统的虚...

vBigData
2013/12/09
0
0
APM 代理环境部署之 Hadoop 篇

面对企业中越来越复杂且相互依赖的 IT 环境和应用。IBM Cloud Application Performance Management (APM) 不仅是一个监控工具。更是可视化,可控性和自动化的解决方案。它是您身边的职能管家...

牛 凤枝
2018/05/02
0
0
Hadoop3.1.0完全分布式集群部署超详细记录

Hadoop3.1.0完全分布式集群部署,三台服务器部署结构如下github配置文件源码地址 如上图,一共三台机器作为集群,servera作为master,其他两台作为worker。 2.开始部署-前期准备(三台机器都需...

dream_an
2018/05/09
0
0
Hadoop 生态圈介绍

简介 Hadoop 是一个能够处理海量数据的分布式系统基础软件框架,理论上能够通过增加计算节点以处理无限增长的数据,由java写成。其作者是 Doug Cutting,得益于谷歌的Map/Reduce计算模型和G...

bochs
2016/11/17
64
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
34分钟前
3
0
Spring Security 实战干货:必须掌握的一些内置 Filter

1. 前言 上一文我们使用 Spring Security 实现了各种登录聚合的场面。其中我们是通过在 UsernamePasswordAuthenticationFilter 之前一个自定义的过滤器实现的。我怎么知道自定义过滤器要加在...

码农小胖哥
37分钟前
6
0
常见分布式事务解决方案

1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源...

asdf08442a
38分钟前
3
0
influxdb continuous queries(cq)从入门到放弃

从前一篇influxdb的文章prometheus基于influxdb的监控数据持久化存储方案完成之后,就一直在折腾influxdb发布测试和生产环境的问题,经过接近2个月的验证,最终发现使用influxdb自带cq的方案...

狗陈
49分钟前
7
0
7.线程通信

在现实生活中,如果一个人团队正在共同完成任务,那么他们之间应该有通信,以便正确完成任务。 同样的比喻也适用于线程。 在编程中,要减少处理器的理想时间,我们创建了多个线程,并为每个线...

Eappo_Geng
55分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部