Hadoop Cluster 安装

时间:2021-01-05 23:47:58

本篇源自Hadoop官网,先将中文翻译如下。

目标

本文章主要是描述如何安装和配置几个节点的Hadoop clusters,甚至于数以千计的节点数。为了了解详细的安装步骤,需要先了解如何安装在单台机器上。

本文档不包含高级的设置点,比如:安全性或者高可用性。

准备

  • 需要安装Java环境
  • 从Apache网站下载一个稳定的Hadoop安装镜像

安装

搭建一个Hadoop集群需要将软件安装到集群中的所有机器中,或者一个适合当前操作系统集成的系统。这样做的目标就是区分不同的硬件安装不同的功能。

典型的安装是在一个集群中一个机器作为NameNode节点,其它机器作为ResourceManager.当然,这台机器的角色就是Masters.其它的服务(比如Web App Proxy Server 和MapReduce Job History server)一般运行在别的硬件或者共享的信息架构上,依赖于系统的负载。

在集群中剩下的机器就是DataNode和NodeManager.他们的角色是slaves.

非安全模式下的Hadoop配置 

Hadoop的Java配置项被分为两部分重要的配置文件:

  • 只读的默认配置文件:core_default.xml,hdfs-default.xm,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.

另外,需要有权限设置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 这个是守护进程ID文件存放的目录路径
  • HADOOP_LOG_DIR 这个是守护进程日志存储的目录路径,日志会被自动创建如果没有的话
  • HADOOP_HEAPSIZE/YARN_HEAPSIZE 最大的堆使用的内存值,单位为:MB,如果这个参数被设置成1000,那就意味着堆将使用1000MB的内存值,这个参数主要用于守护进程内存值的大小设置。默认值是1000,可以为每个守护进程分配不同大小的值。

在很多场景中,必须设置这个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坏境中有一个非常重要的参数文件:

  • etc/hadoop/core-site.xml
参数名称 提示
fs.defaultFS NameNode URI hdfs://host:port/
io.file.buffer.size 131072 Size of read/write buffer used in SequenceFiles.
  • etc/hadoop/hdfs-site.xml
  • 配置守护进程NameNode:
 参数名称 提示
dfs.namenode.name.dir 文件路径,用户存储NameNode进程的命名空间和事务日志 如果这里用逗号分割的列表,将会复制分发到各个目录以做为冗余数据进行备份
dfs.hosts / dfs.hosts.exclude DataNodes的节点列表(包含或排除) 如果需要,用户通过设置这个列表来控制DataNodes的数量。
dfs.blocksize 268435456 HDFS 快的大小为了存储大文件系统.
dfs.namenode.handler.count 100 对于大量DataNodes的节点数开启的多线程个数.
  • Configuration for DataNode:
参数名称 提示
dfs.datanode.data.dir 存储数据块的本地目录系统,一般以路径列表存放 如果这里是以逗号分隔的目录列表,那么这个数据将被存储在所有的目录下,一般是不同的磁盘驱动