HDFS分布式集群搭建
1、集群简介
Hadoop 集群具体来说包含两个集群:HDFS 集群和YARN 集群,两者逻辑上分离,但物理上常在一起。 另外,对于 Hadoop 的集群来讲,可以分为两大类角色:master 和 slave。
(1)HDFS 集群:负责海量数据的存储,集群中的角色主要有:NameNode(一个,master)、DataNode(若干,slave)和 SecondaryNameNode(一个)。
(2)YARN 集群:负责海量数据运算时的资源调度,集群中的角色主要有: ResourceManager(一个,master) 和 NodeManager(若干,slave)。
为什么没有 MapReduce 集群呢?MapReduce 是什么呢?
它其实是一个应用程序开发包,也就是一堆 Java 的 jar 包,不需要安装。
2、安装包准备
Hadoop 是 Apache 基金会面向全球开源的产品之一,任何用户都可以从 Apache Hadoop 官网http://archive.apache.org/dist/hadoop/common/下载使用。
本文将以当下较为稳定的 hadoop2.7.7 版本为例,详细讲解 Hadoop 的安装。所以我们下载 hadoop-2.7.7.tar.gz 即可。
现在已经为大家下载好了 hadoop2.7.7 的安装包,存放在 /root/software 目录下,使用如下命令进行解压即可使用:
tar -zxvf hadoop-2.7.7.tar.gz
将其解压到当前目录下,即 /root/software 中,效果图如下所示
接下来,进入 Hadoop 的安装目录,通过 ll 命令查看 Hadoop 目录结构,如下图所示:
从图中可以看出,Hadoop 安装目录包括 bin、etc、include、lib、libexec、sbin、share 共 7 个目录以及其他一些文件,下面简单介绍下各目录内容及作用。
(1)bin:存放操作 Hadoop 相关服务(HDFS、YARN)的脚本,但是通常使用 sbin 目录下的脚本。
(2)etc:存放 Hadoop 配置文件,主要包含 core-site.xml、hdfs-site.xml、mapred-site.xml 等从 Hadoop1.0 继承而来的配置文件和 yarn-site.xml 等 Hadoop2.0 新增的配置文件。
(3)include:对外提供的编程库头文件(具体动态库和静态库在 lib 目录中),这些头文件均是用 C++ 定义的,通常用于 C++ 程序访问 HDFS 或者编写 MapReduce 程序。
(4)lib:该目录包含了 Hadoop 对外提供的编程动态库和静态库,与 include 目录中的头文件结合使用。
(5)libexec:各个服务对应的 shell 配置文件所在的目录,可用于配置日志输出、启动参数(比如 JVM 参数)等基本信息。
(6)sbin:该目录存放 Hadoop 管理脚本,主要包含 HDFS 和 YARN 中各类服务的启动/关闭脚本。
(7)share:Hadoop 各个模块编译后的 jar 包所在的目录。
3、HDFS 集群主要配置文件讲解
Hadoop 默认提供了两种配置文件:
(1)一种是只读的默认配置文件,包括 core-default.xml、hdfs-default.xml、mapred-default.xml 和 yarn-default.xml,这些文件包含了 Hadoop 系统各种默认配置参数;
(2)另一种是 Hadoop 集群自定义配置时编辑的配置文件(这些文件多数没有任何配置内容,都存在于 Hadoop 安装包下的 etc/hadoop 目录中),包括 hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 slaves 共 7 个文件,可以根据需要在这些文件中对默认配置文件中的参数进行修改,Hadoop 会优先选择这些配置文件中的参数。
接下来,先通过下表对 Hadoop 集群搭建可能涉及的主要配置文件及功能进行描述。
(1)前 2 个配置文件都是用来指定 Hadoop 和 YARN 所需运行环境。
hadoop-env.sh:用来保证 Hadoop 系统能够正常执行 HDFS 的守护进程 NameNode、SecondaryNameNode 和 DataNode;
yarn-env.sh:用来保证 YARN 的守护进程 ResourceManager 和 NodeManager 能正常执行。
(2)slaves 文件存储了当前集群的所有从节点的列表。
(3)其它 4 个配置文件都是用来设置集群运行参数的,在这些配置文件中可以使用 Hadoop 默认配置文件中的参数进行配置来优化 Hadoop 集群,从而使集群更加稳定高效。
Hadoop 提供的默认配置文件 core-default.xml、hdfs-default.xml、mapred-default.xml 和 yarn-default.xml 中的参数非常之多,这里不便一一展示说明。读者在具体使用时可以通过访问 Hadoop官方文档 https://hadoop.apache.org/docs/r2.7.7/,进入到文档最底部的 Configuration 部分进行学习和查看。
主机规划:
172.30.249.192 master
172.30.240.194 slave1
172.30.240.193 slave2