前言
本文主要是讲述如何在上千节点下的大规模集群的安装和配置。如果你只是想尝hadoop。你可以在单台机器上进行安装。(查看单例安装)
本文不涉及安全或高可用等方面的主题。
先决条件
- 安装Java。想获java取匹配的hadoop版本详情查看Hadoop Wiki。
- 从Apache的hadoop镜像上下载稳定的版本。
安装
Hadoop集群典型安装方式包括在所有的集群机器上解压软件或者从你的操作系统中通过安装包来安装它。这是一个硬件到功能的很重要的划分。
通常,集群中的一台机器被指定为NameNode,而另一台机器则被指定为ResourceManager。这些都是主。根据负载的情况,其他服务(如WebApp Proxy服务和MapReduceJobHistory 服务)通常在专有硬件或共享设备上运行。
集群中的其余机器同时充当DataNode和no需求者。这些都是工作者。
Hadoop的非安全模式下配置
Hadoop的Java配置的驱动来源于两种重要的配置文件:
l只读的默认配置 -core-default.xml,hdfs-default.xml,yarn-default.xml和mapred-default.xml。
l特定站点配置 -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.sh 和etc/hadoop/yarn-env.sh特定值来控制的。
要配置Hadoop集群,您需要配置Hadoop守护进程执行的环境,以及Hadoop守护进程的配置参数。
HDFS守护进程包括NameNode、SecondaryNameNode和DataNode。YARN守护进程包括ResourceManager、NodeManager和WebAppProxy。如果要使用MapReduce,那么MapReduce Job History Server也将会运行。相对于大规模的使用,它们通常运行在单独的主机上。
配置Hadoop守护进程的环境
后台管理员通过etc/hadoop/hadoop-env.sh和etc/hadoop/mapred-env.sh、etc/hadoop/yarn-env.sh脚本对Hadoop守护进程的运行环境进行针对性的配置。
最起码的一点,您必须指定JAVA_HOME,以便在每个远程节点上准确的定义它。
管理员可以使用表中的配置选项来对单个守护进程进行配置:
守护进程
环境变量
NameNode
HDFS_NAMENODE_OPTS
DataNode
HDFS_DATANODE_OPTS
Secondary NameNode
HDFS_SECONDARYNAMENODE_OPTS
ResourceManager
YARN_RESOURCEMANAGER_OPTS
NodeManager
YARN_NODEMANAGER_OPTS
WebAppProxy
YARN_PROXYSERVER_OPTS
Map Reduce Job History Server
MAPRED_HISTORYSERVER_OPTS
例如,要配置Namenode以使用parallelGC和4GB 的Java堆,应该在hadoop-env.sh中添加以下语句:
export HDFS_NAMENODE_OPTS=“-XX:+UseParallelGC -Xmx4g”
Seeetc/hadoop/hadoop-env.shfor other examples.
etc/hadoop/hadoop-env.sh的其他例子查看。
其他常用的配置参数包括:
lHADOOP_PID_DIR–守护进程id文件的存储目录。
lHADOOP_LOG_DIR-守护进程日志文件的存储目录。如果日志文件不存在,则自动创建。
lHADOOP_HEAPSIZE_MAX- 用于Java heapsize的最大内存使用量. 此还支持由JVM支持的单位设置。如果没有任何单位,则假定该数字的单位为M。默认情况下,Hadoop将让JVM决定使用多少内存。这个值可以被每个守护进程的_OPTS变量覆写。例: 设置HADOOP_HEAPSIZE_MAX=1g和HADOOP_NAMENODE_OPTS=“-Xmx5g”, 此NameNode将配置具有5GB堆。
在大多数情况下,您应该指定HADOOP_PID_DIR和HADOOP_LOG_DIR目录,这些目录只能由将要运行hadoop守护进程的用户有写的功能,否则的话可能会出现symlink攻击的情况。
在系统范围的shell环境配置中配置HADOOP_HOME也是一种传统。例如,一个简单的
/etc/profile.d脚本:
HADOOP_HOME=/path/to/hadoop
export HADOOP_HOME
配置Hadoop守护进程
本节主要说明在常用的配置文件中的重要参数。
letc/hadoop/core-site.xml
参数
值
说明
fs.defaultFS
NameNode URI
hdfs://host:port/
io.file.buffer.size
131072
队列文件中的读/写缓冲区的大小。
letc/hadoop/hdfs-site.xml
lNameNode配置:
参数
值
说明
dfs.namenode.name.dir
NameNode持久存储名称空间和事务日志的本地文件系统上路径
如果这是一个逗号分隔的目录列表,那么将在所有目录中复制名称的表,以进行冗余。
dfs.hosts/dfs.hosts.exclude
包含/摒弃的数据存储节点清单
如果有必要,使用这些文件来控制允许的数据存储节点列表
dfs.blocksize
268435456
HDFS 块大小为256MB 的大文件系统.
dfs.namenode.handler.count
100
多个NameNode服务器线程处理来自大量数据节点的rpc。<