Hadoop 集群具体来说包含两个集群:HDFS 集群和YARN 集群,两者逻辑上分离,但物理上常在一起。 另外,对于 Hadoop 的集群来讲,可以分为两大类角色:master 和 slave。 (1)HDFS 集群:负责海量数据的存储,集群中的角色主要有:NameNode(一个,master)、DataNode(若干,slave)和 SecondaryNameNode(一个)。 为什么没有 MapReduce 集群呢?MapReduce 是什么呢? Hadoop 是 Apache 基金会面向全球开源的产品之一,任何用户都可以从 Apache Hadoop 官网https://archive.apache.org/dist/hadoop/common/下载使用。本次我们采用当下较为稳定的 hadoop2.7.7 版本为例,详细讲解 Hadoop 的安装。所以我们手动下载 hadoop-2.7.7.tar.gz 即可。想要最完整安装包的铁汁,请回戳LInux最全jdk1.8+安装教程提供的百度网盘链接获取 我们这里将hadoop安装包存放在 /root/software 目录下,使用如下命令进行解压 将其解压到当前目录下,即 /root/software 中 接下来,进入 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 包所在的目录。 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)前两个配置文件都是用来指定 Hadoop 和 YARN 所需运行环境。 (2)slaves 文件存储了当前集群的所有从节点的列表。 (3)其它 4 个配置文件都是用来设置集群运行参数的,在这些配置文件中可以使用 Hadoop 默认配置文件中的参数进行配置以此来优化 Hadoop 集群,从而使集群更加稳定高效。 Hadoop 提供的默认配置文件 core-default.xml、hdfs-default.xml、mapred-default.xml 和 yarn-default.xml 中的参数非常之多,具体使用时可以通过访问 Hadoop 官方文档,进入到文档最底部的 Configuration 部分进行学习和查看。 接下来,为大家详细讲解 HDFS 集群的相关配置,具体步骤如下。 因为 Hadoop 的各守护进程依赖于 JAVA_HOME 环境变量(jdk目录),所以需要修改“hadoop-env.sh”环境变量文件中的 JAVA_HOME 的值。 首先需要复制一下本机安装的 JDK 的实际位置(避免写错最好不要手写),可以使用下列方式打印 JDK 的安装目录: 语法解析: 找到 JAVA_HOME 参数位置,修改为本机安装的 JDK 的实际位置: 该文件**是 Hadoop 的核心配置文件,其目的是配置 HDFS 地址、端口号,以及临时文件目录。**使用如下命令打开 “core-site.xml” 文件: 将下面的配置内容添加到 该文件主要用于配置 HDFS 相关的属性,例如复制因子(即数据块的副本数)、NameNode 和 DataNode 用于存储数据的目录等。在完全分布式模式下,默认数据块副本是 3 份。 使用如下命令打开“hdfs-site.xml”文件: 将下面的配置内容添加到 该文件用于记录 Hadoop 集群所有从节点(HDFS 的 DataNode 和 YARN 的 NodeManager 所在主机)的主机名,用来配合一键启动脚本启动集群从节点(并且还需要保证关联节点配置了 SSH 免密登录)。 打开该配置文件: 我们看到其默认内容为 localhost,因为我们搭建的是伪分布式集群,就只有一台主机,所以从节点也需要放在此主机上,所以此配置文件无需修改。 (1)首先打开/etc/profile 文件: (2)在文件底部添加如下内容: 注意: 另外: (3)让配置文件立即生效,使用如下命令: (4)检测 Hadoop 环境变量是否设置成功,使用如下命令查看 Hadoop 版本: 执行此命令后,若是出现 Hadoop 版本信息说明配置成功: 具体指令如下: 执行格式化指令后,必须出现有“successfully formatted”信息才表示格式化成功,如下图所示: 若是未出现 “successfully formatted” 信息,就需要查看指令是否正确,或者之前 HDFS 集群的安装和配置是否正确,若是正确,则需要删除所有主机的 “/root/hadoopData” 文件夹,重新执行格式化命令,对 HDFS 集群进行格式化。 另外需要特别注意的是,上述格式化指令只需要在 HDFS 集群初次启动前执行即可,后续重复启动就不再需要执行格式化了。 针对 HDFS 集群的启动,启动方式有两种,一种是单节点逐个启动;另一种是使用脚本一键启动。 单节点逐个启动的方式,需要参照以下方式逐个启动 HDFS 集群服务需要的相关服务进程,具体步骤如下: (1)在本机上使用以下指令启动 NameNode 进程: 启动完成之后,使用 解析: (2)在本机上使用以下指令启动 DataNode 进程: (3)在本机上使用以下指令启动 SecondaryNameNode 进程: 另外,当需要停止相关服务进程时,只需要将上述指令中的 启动集群最常使用的方式是使用脚本一键启动,前提是需要配置 SSH 免密登录。 打印信息: 在本机上启动了 NameNode 守护进程 在本机上启动了 DataNode 守护进程 在配置的一个特定节点 0.0.0.0(本机)上启动 SecondaryNameNode 守护进程 我们可以一键启动 HDFS 集群,同样也可以一键关闭 HDFS 集群,只需要将 在本机执行 HDFS 集群正常启动后,它默认开放了50070端口,用于监控 HDFS 集群。通过 UI 可以方便地进行集群的管理和查看,只需要在本地操作系统的浏览器输入集群服务的 IP 和对应的端口号即可访问。 通过本机的浏览器访问https://localhost:50070或https://本机IP 地址:50070 查看 HDFS 集群状态,效果如下图所示: 从上图可以看出,通过 UI 可以正常访问 Hadoop 集群的 HDFS 界面,并且页面显示正常,同时通过 UI 可以更方便地进行状态管理和查看。
2.2 HDFS 伪分布式集群搭建
目的
配置清单
1:集群简介
(2)YARN 集群:负责海量数据运算时的资源调度,集群中的角色主要有: ResourceManager(一个,master) 和 NodeManager(若干,slave)。
它其实是一个应用程序开发包,也就是一堆 Java 的 jar 包,不需要安装。2:安装包准备
tar -zxvf hadoop-2.7.7.tar.gz
ll
命令查看 Hadoop 目录结构,如下图所示:
3:HDFS 集群主要配置文件讲解
配置文件
功能描述
hadoop-env.sh
配置 Hadoop 运行所需的环境变量
yarn-env.sh
配置 YARN 运行所需的环境变量
core-site.xml
Hadoop 核心全局配置文件,可在其它配置文件中引用该文件
hdfs-site.xml
HDFS 配置文件,继承 core-site.xml 配置文件
mapred-site.xml
MapReduce 配置文件,继承 core-site.xml 配置文件
yarn-site.xml
YARN 配置文件,继承 core-site.xml 配置文件
slaves
Hadoop 集群所有从节点(DataNode 和 NodeManager)列表
3.1 配置环境变量 hadoop-env.sh
echo $JAVA_HOME
使用如下命令打开 hadoop-env.sh 文件:vim /root/software/hadoop-2.7.7/etc/hadoop/hadoop-env.sh
3.2 配置核心组件 core-site.xml
vim /root/software/hadoop-2.7.7/etc/hadoop/core-site.xml
<configuration></configuration>
中间:<!-- HDFS集群中NameNode的URI(包括协议、主机名称、端口号),默认为 file:/// --> <property> <name>fs.defaultFS</name> <!-- 用于指定NameNode的地址 --> <value>hdfs://localhost:9000</value> </property> <!-- Hadoop运行时产生文件的临时存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/root/hadoopData/temp</value> </property>
3.3 配置文件系统 hdfs-site.xml
vim /root/software/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
<configuration></configuration>
中间:<!-- NameNode在本地文件系统中持久存储命名空间和事务日志的路径 --> <property> <name>dfs.namenode.name.dir</name> <value>/root/hadoopData/name</value> </property> <!-- DataNode在本地文件系统中存放块的路径 --> <property> <name>dfs.datanode.data.dir</name> <value>/root/hadoopData/data</value> </property> <!-- 数据块副本的数量,默认为3 --> <property> <name>dfs.replication</name> <value>1</value> </property>
3.4 配置 slaves 文件
vim /root/software/hadoop-2.7.7/etc/hadoop/slaves
4:配置 Hadoop 系统环境变量
vim /etc/profile
# 配置Hadoop的安装目录 export HADOOP_HOME=/root/software/hadoop-2.7.7 # 在原PATH的基础上加入Hadoop的bin和sbin目录 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
hadoop version
5:HDFS 集群测试
5.1 格式化文件系统
hdfs namenode -format
5.2 启动和关闭 HDFS 集群
1. 单节点逐个启动和关闭
hadoop-daemon.sh start namenode
jps
指令查看 NameNode 进程的启动情况
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
start
更改为stop
即可。2. 脚本一键启动和关闭
start-dfs.sh
start
改为 stop
即可,即stop-dfs.sh
。5.3 查看进程启动情况
jps
命令,在打印结果中会看到 4 个进程,分别是 NameNode、SecondaryNameNode、Jps、和 DataNode,如果出现了这 4 个进程表示进程启动成功。5.4 通过 UI 查看 HDFS 运行状态
HDFS最全搭建教程奉上,希望大家认真浏览,还有两篇伪分布式集群就搭建完成了2.3 YARN 伪分布式集群搭建,2.4 Hadoop伪分布式集群初体验,预计6.10日之前更新,如果搭建中存在任何问题,欢迎评论区留言咨询,或者前往主页添加我的私人QQ。
注:希望每一个人都能亲自动手体验
@Author:HaoXuan
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算