本篇源自Hadoop官网,先将中文翻译以下。node
目标安全
本文章主要是描述如何安装和配置几个节点的Hadoop clusters,甚至于数以千计的节点数。为了了解详细的安装步骤,须要先了解如何安装在单台机器上。多线程
本文档不包含高级的设置点,好比:安全性或者高可用性。架构
准备分布式
安装oop
搭建一个Hadoop集群须要将软件安装到集群中的全部机器中,或者一个适合当前操做系统集成的系统。这样作的目标就是区分不一样的硬件安装不一样的功能。网站
典型的安装是在一个集群中一个机器做为NameNode节点,其它机器做为ResourceManager.固然,这台机器的角色就是Masters.其它的服务(好比Web App Proxy Server 和MapReduce Job History server)通常运行在别的硬件或者共享的信息架构上,依赖于系统的负载。spa
在集群中剩下的机器就是DataNode和NodeManager.他们的角色是slaves.操作系统
非安全模式下的Hadoop配置 线程
Hadoop的Java配置项被分为两部分重要的配置文件:
另外,须要有权限设置Hadoop scripts脚本在分布式集群中的各个目录文件 bin/directory,须要设置的文件为 etc/hadoop-env.sh 和 etc/hadoop/yarn-env.sh.
为了可以保证Hadoop守护进程很好的运行,须要配置hadoop集群所须要的环境。
HDFS守护进程是NameNode,SecondaryNameNode和DataNode,YARN守护进程是ResourceManager,NodeManager和WebAppProxy,若是MapReduce被使用,那么MapReduce 的任务 History Server将会被运行,若是是大集群的安装,他们将被运行在不一样的主机上。
Hadoop守护进程环境配置
管理员须要利用etc/hadoop/hadoop-env.sh 和可选的 etc/hadoop/mapred-env.sh 和etc/hadoop/yarn-env.sh 脚本去配置Hadoop各个守护进程的环境。
之少,须要配置的是JAVA_HOME确保在每个远程节点上都是正确的。
管理员须要配置一下的独自守护进程利用下面的表格:
守护进程 | 参数名称 |
---|---|
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和HADOOP_LOG_DIR这两个目录,以方便用户能够输出日志在运行守护进程的时候。
守护进程 | 参数值 |
---|---|
ResourceManager | YARN_RESOURCEMANAGER_HEAPSIZE |
NodeManager | YARN_NODEMANAGER_HEAPSIZE |
WebAppProxy | YARN_PROXYSERVER_HEAPSIZE |
Map Reduce Job History Server | HADOOP_JOB_HISTORYSERVER_HEAPSIZE |
Hadoop守护环境配置
在Hadoop坏境中有一个很是重要的参数文件:
参数名称 | 值 | 提示 |
---|---|---|
fs.defaultFS | NameNode URI | hdfs://host:port/ |
io.file.buffer.size | 131072 | Size of read/write buffer used in SequenceFiles. |
参数名称 | 值 | 提示 |
---|---|---|
dfs.namenode.name.dir | 文件路径,用户存储NameNode进程的命名空间和事务日志 | 若是这里用逗号分割的列表,将会复制分发到各个目录以作为冗余数据进行备份 |
dfs.hosts / dfs.hosts.exclude | DataNodes的节点列表(包含或排除) | 若是须要,用户经过设置这个列表来控制DataNodes的数量。 |
dfs.blocksize | 268435456 | HDFS 快的大小为了存储大文件系统. |
dfs.namenode.handler.count | 100 | 对于大量DataNodes的节点数开启的多线程个数. |
参数名称 | 值 | 提示 |
---|---|---|
dfs.datanode.data.dir | 存储数据块的本地目录系统,通常以路径列表存放 | 若是这里是以逗号分隔的目录列表,那么这个数据将被存储在全部的目录下,通常是不一样的磁盘驱动 |