问题导读

1.说说你对集群配置的认识?
2.集群配置的配置项你了解多少?
3.下面内容让你对集群的配置有了什么新的认识?

目的

目的1:
这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点。为了学习hadoop,你可能先从单节点入手 (查看 Single Node Setup).这里有中文版hadoop2.7【单节点】单机、伪分布、分布式安装指导
http://www.aboutyun.com/thread-12798-1-1.html
这个文档不包括:hadoop在安全模式下配置和HA【高可用配置】,后面在更新

目的2:
我们看了很多集群配置文档,你是否静下心来,想集群配置到底是怎么一回事。

准备

1.安装Java
2.下载hadoop包
##################################
包集合:
hadoop家族、strom、spark、Linux、flume等jar包、安装包汇总下载(持续更新)
http://www.aboutyun.com/thread-8178-1-1.html
##################################
安装

安装hadoop集群包括:解压包,配置hadoop,划分主节点和子节点。

集群中可以将namenode和ResourceManager分布在不同的机器上,这些称之为master。其它服务例如:Web App Proxy Server 和 MapReduce Job History server,根据负载可以共享设施或则使用专用的机器。

集群其它机器作为 DataNode 和 NodeManager.这些是slaves

配置hadoop【非安全模式】

hadoop配置文件被分为两类:

1.只读默认配置,有下列配置文件
core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml.

2.定制配置,有下列配置文件
etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.

另外你可以配置hadoop脚本,在hadoop的bin目录下,通过 etc/hadoop/hadoop-env.sh 和 etc/hadoop/yarn-env.sh来指定值。

配置hadoop集群需要配置环境变量,Hadoop守护进程执行以及Hadoop守护进程的配置参数。如果没有配置过集群,可能对这个了解不多,具体参考
hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档
http://www.aboutyun.com/thread-7684-1-1.html

hdfs守护进程:
NameNode, SecondaryNameNode, 和 DataNode

YARN 守护进程:
ResourceManager, NodeManager, 和 WebAppProxy

如果运行MapReduce , MapReduce Job History Server也会运行。前提需要配置并开启。对于比较大的集群安装,他们分别运行在不同的客户端。

配置守护进程环境变量
管理员使用 etc/hadoop/hadoop-env.sh , etc/hadoop/mapred-env.sh 和 etc/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 声明如下:

[Bash shell] 纯文本查看 复制代码
1
export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"

查看 etc/hadoop/hadoop-env.sh 其它例子

其它可定义的有用参数包括

  • HADOOP_PID_DIR - 存储守护进程id的文件目录.
  • HADOOP_LOG_DIR - 存储守护进程日志文件目录. 日志文件自动创建如果不存在。
  • HADOOP_HEAPSIZE / YARN_HEAPSIZE -heapsize内存最大配置.如果变量为1000, heap 是1000MB. 这是为守护进程配置heap. 默认值1000M.

在大多数情况下,应该指定HADOOP_PID_DIR 和 HADOOP_LOG_DIR,他们由用户运行hadoop守护进程所写,否则可能是潜在攻击。

传统配置HADOOP_PREFIX 在系统级环境变量配置,例如一个简单的脚本 /etc/profile.d:

[Bash shell] 纯文本查看 复制代码
1
2
HADOOP_PREFIX=/path/to/hadoop
export HADOOP_PREFIX
Daemon
Environment Variable
ResourceManager
YARN_RESOURCEMANAGER_HEAPSIZE
NodeManager
YARN_NODEMANAGER_HEAPSIZE
WebAppProxy
YARN_PROXYSERVER_HEAPSIZE
Map Reduce Job History Server
HADOOP_JOB_HISTORYSERVER_HEAPSIZE

配置hadoop守护进程

本节涉及在给定的配置文件中指定的重要参数:

etc/hadoop/core-site.xml

Parameter
Value
Notes
fs.defaultFS
NameNode URI
io.file.buffer.size
131072
读写序列文件缓存大小
  • etc/hadoop/hdfs-site.xml
  • 配置NameNode:

彻底了解namenode

Parameter
Value
Notes
dfs.namenode.name.dir
本地文件系统存储着命令空间和操作日志
如果含有多个目录,是冗余的【多个目录以逗号隔开】
dfs.hosts / dfs.hosts.exclude
列出排除DataNodes.
如何需要使用这一功能来控制datanode的访问
dfs.blocksize
268435456
大文件系统HDFS blocksize  256MB
dfs.namenode.handler.count
100
更多 NameNode server 线程来处理来自datanode的 RPCs请求
  • 配置 DataNode:
Parameter
Value
Notes
dfs.datanode.data.dir
存储blocks的本地路径列表,用逗号隔开
这是一个逗号分隔的目录列表, 数据将被存储在所有被命名的目录中,通常在不同的设备上。
  • etc/hadoop/yarn-site.xml
  • 配置ResourceManager 和 NodeManager:
Parameter
Value
Notes
yarn.acl.enable
true / false
是否启用ACLs,默认为false不启用
yarn.admin.acl
Admin ACL
admin.acl设置YARN的集群管理员,. 值为*表示任何人都可以. 仅指定的可以访问
yarn.log-aggregation-enable
false
配置启用或则禁用日志
  • 配置ResourceManager:
Parameter
Value
Notes
yarn.resourcemanager.address
ResourceManager host:port 为客户端提交job.
如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
yarn.resourcemanager.scheduler.address
ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。
如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
yarn.resourcemanager.resource-tracker.address
ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。
如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
yarn.resourcemanager.admin.address
ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等
如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
yarn.resourcemanager.webapp.address
ResourceManager web-ui host:port(ResourceManager访问端口)
如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
yarn.resourcemanager.hostname
ResourceManager 客户端.
host Single hostname that can be set in place of setting all yarn.resourcemanager*address resources. Results in default ports for ResourceManager components.
yarn.resourcemanager.scheduler.class
ResourceManager 调度类 .
CapacityScheduler (recommended), FairScheduler (also recommended), or FifoScheduler
yarn.scheduler.minimum-allocation-mb
单个container可申请的最小内存资源量。比如设置为1024,则运行MapRedce作业时,每个Task最少可申请1024MB内存
In MBs
yarn.scheduler.maximum-allocation-mb
单个container可申请的最大内存资源量。比如设置为3072,则运行MapRedce作业时,每个Task最多可申请3072MB内存。
In MBs
yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-path
NodeManager黑白名单。
NodeManager黑白名单。如果发现若干个NodeManager存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效。(调用一个refresh命令即可)
默认值:“”
  • 配置 NodeManager:
Parameter
Value
Notes
yarn.nodemanager.resource.memory-mb
NodeManager总的可用物理内存。
定义了资源总量的nodemanager可用运行containers
yarn.nodemanager.vmem-pmem-ratio
每使用1MB物理内存,最多可用的虚拟内存数。
每个任务的虚拟内存的使用可能会超过其物理内存的限制,这个比例。通过对nodemanager任务使用的虚拟内存总量可能超过物理内存使用的比率。
yarn.nodemanager.local-dirs
中间结果存放位置
这个参数通常会配置多个目录,分摊磁盘IO负载。
yarn.nodemanager.log-dirs
日志存放路径
这个参数通常会配置多个目录,分摊磁盘IO负载。
yarn.nodemanager.log.retain-seconds
10800
NodeManager上日志最多存放时间(不启用日志聚集功能时有效)。
yarn.nodemanager.remote-app-log-dir
/logs
当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)。
yarn.nodemanager.remote-app-log-dir-suffix
logs
远程日志目录子目录名称(启用日志聚集功能时有效)。
yarn.nodemanager.aux-services
mapreduce_shuffle
NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序.
  • 配置 History Server (Needs to be moved elsewhere):
Parameter
Value
Notes
yarn.log-aggregation.retain-seconds
-1
参数解释:在HDFS上聚集的日志最多保存多长时间。
默认值:-1
yarn.log-aggregation.retain-check-interval-seconds
-1
参数解释:多长时间检查一次日志,并将满足条件的删除,如果是0或者负数,则为上一个值的1/10。
默认值:-1
  • etc/hadoop/mapred-site.xml
  • 配置MapReduce Applications:

mapreduce.map.memory.mb
mapreduce.reduce.memory.mb
说明:这两个参数指定用于MapReduce的两个任务(Map and Reduce task)的内存大小,其值应该在RM中的最大最小container之间。如果没有配置则通过如下简单公式获得:
max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
一般的reduce应该是map的2倍。注:这两个值可以在应用启动时通过参数改变;

mapreduce.map.java.opts
mapreduce.reduce.java.opts
说明:这两个参主要是为需要运行JVM程序(java、scala等)准备的,通过这两个设置可以向JVM中传递参数的,与内存有关的是,-Xmx,-Xms等选项。此数值大小,应该在AM中的map.mb和reduce.mb之间。

Parameter
Value
Notes
mapreduce.framework.name
yarn
执行框架设置为Hadoop YARN.
mapreduce.map.memory.mb
1536
maps资源限制
mapreduce.map.java.opts
-Xmx1024M
maps的child jvms heap-size
mapreduce.reduce.memory.mb
3072
reduces资源限制
mapreduce.reduce.java.opts
-Xmx2560M
reduces的child jvms heap-size
mapreduce.task.io.sort.mb
512
任务内部排序缓冲区大小
mapreduce.task.io.sort.factor
100
排序文件的时候一次同时最多可并流的个数,这里设置100。
mapreduce.reduce.shuffle.parallelcopies
50
reuduce shuffle阶段并行传输数据的数量。
  • 配置MapReduce JobHistory Server:
Parameter
Value
Notes
mapreduce.jobhistory.address
MapReduce JobHistory Server地址【host:port】
默认端口号 10020.
mapreduce.jobhistory.webapp.address
MapReduce JobHistory Server Web UI地址【 host:port】
默认端口号 19888.
mapreduce.jobhistory.intermediate-done-dir
/mr-history/tmp
MapReduce作业产生的日志存放位置。
mapreduce.jobhistory.done-dir
/mr-history/done
MR JobHistory Server管理的日志的存放位置。

相关内容 
hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】

hadoop入门手册2:hadoop【2.7.1】【多节点】集群配置【必知配置知识2】

hadoop入门手册3:Hadoop【2.7.1】初级入门之命令指南

hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1

hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2

hadoop2.X使用手册1:通过web端口查看主节点、slave1节点及集群运行状态
http://www.aboutyun.com/thread-7712-1-1.html

hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】的更多相关文章

  1. hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2

    问题导读 1.改变hdfs文件的权限,需要修改哪个配置文件?2.获取一个文件的或则目录的权限,哪个命令可以实现?3.哪个命令可以实现设置访问控制列表(ACL)的文件和目录? 接上篇:Hadoop[2. ...

  2. hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1

    问题导读1.Hadoop文件系统shell与Linux shell有哪些相似之处?2.如何改变文件所属组?3.如何改变hdfs的文件权限?4.如何查找hdfs文件,并且不区分大小写? 概述文件系统 ( ...

  3. hadoop入门手册3:Hadoop【2.7.1】初级入门之命令指南

    问题导读1.hadoop daemonlog管理员命令的作用是什么?2.hadoop如何运行一个类,如何运行一个jar包?3.hadoop archive的作用是什么? 概述 hadoop命令被bin ...

  4. hadoop入门手册2:hadoop【2.7.1】【多节点】集群配置【必知配置知识2】

    问题导读 1.如何实现检测NodeManagers健康?2.配置ssh互信的作用是什么?3.启动.停止hdfs有哪些方式? 上篇: hadoop[2.7.1][多节点]集群配置[必知配置知识1]htt ...

  5. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

  6. 一步步教你Hadoop多节点集群安装配置

    1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesys ...

  7. Hadoop 2.6.4单节点集群配置

    1.安装配置步骤 # wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm # rpm -i ...

  8. Linux下Hadoop集群环境的安装配置

    1)安装Ubuntu或其他Linux系统: a)为减少错误,集群中的主机最好安装同一版本的Linux系统,我的是Ubuntu12.04. b)每个主机的登陆用户名也最好都一样,比如都是hadoop,不 ...

  9. 学习Hadoop+Spark大数据巨量分析与机器学习整合开发-windows利用虚拟机实现模拟多节点集群构建

    记录学习<Hadoop+Spark大数据巨量分析与机器学习整合开发>这本书. 第五章 Hadoop Multi Node Cluster windows利用虚拟机实现模拟多节点集群构建 5 ...

随机推荐

  1. Memcached get 命令

    Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空. 语法: get 命令的基本语法格式如下: get key 多个 key 使用空 ...

  2. MySQL表锁和行锁

    锁粒度 MySQL 不同的存储引擎支持不同的锁机制,所有的存储引擎都以自己的方式显现了锁机制,服务器层完全不了解存储引擎中的锁实现: InnoDB 存储引擎既支持行级锁(row-level locki ...

  3. 索引选择性与cardinality

    索引选择性 索引选择性是索引基数(cardinality)与表中数据行数(n_row_in_table)的比值,即 索引选择性=索引基数/数据行 其中cardinality是索引中不重复记录的预估值. ...

  4. GTS--阿里巴巴分布式事务全新解决方案

    现代IT应用中,服务化SOA作为主流的技术架构被广泛应用到各种信息系统.原来一个系统被分拆成若干个服务的集合,产生了跨服务调用的分布式事务问题.随着Dubbo.SpringCloud等微服务框架的流行 ...

  5. 【转】VIM 中设置Tab

    灵活操作 Vim 中的 Tabsgaleki post @ 2007年11月16日 05:07PM in Vim Tips with tags: vim tabs Vim 支持 Tabs,也就是标签页 ...

  6. Ansible 小手册系列 九(Playbook)

    playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲所谓task无非 ...

  7. javascript打开新窗体

    open -- 打开(弹出)一个新的窗体 open,中文"打开"的意思 引用网址:http://www.dreamdu.com/javascript/window.open Jav ...

  8. java程序设计基础篇 复习笔记 第三单元

    1 单向if语句 双向if语句 dangling else switch:char,byte,short,int 2 javax.swing.JOptionPane.showConfirmDialog ...

  9. Marketing™Series用户手册(Marketing™Series Manual)

    起源(Origin) 每日构建(Daily Build) 软件不支持的功能(Functions which are not supported.) 软件支持的功能(Functions which ar ...

  10. windows 2008 server R2 服务器docker安装

    1.安装包选择 windows win10 较新版本,使用 Get Docker for Windows (Stable) 或者 Get Docker for Windows (Edge) 其余使用  ...