首先声明,此内容是观看了尚学堂大数据课程视频,对其知识点的总结,并非本人的原创
此教程是搭建非HA的hadoop全分布式集群,HA和非HA集群对于个人学习HDFS、map reduce和hadoop相关组件几乎没有什么影响,但是HA的相关知识及配置步骤还是需要掌握的。HDFS和yarn的HA搭建HDFS和yarn的HA搭建。
机器环境配置说明:
- Linux版本:CentOS 6.5 64位
- 虚拟机:VMware Workstation Pro
- Java:jdk 1.8 采用rpm安装方式
- hadoop版本:2.7.1(链接:https://pan.baidu.com/s/1ei1WPX0pRp2rwWT1h_Ttew ,提取码:3p5p)
一、虚拟机及Linux安装
VMware软件的安装和一般Windows软件的安装一样“一键式”安装,不再赘述;Linux系统安装。系统安装好之后还要进行NAT网络配置和jdk的安装。系统安装好之后我们不直接在虚拟机上进行操作,选择远程访问工具Xshell,该工具中的众多功能也比较方便,安装教程。
二、集群搭建
集群的部署计划如下:
主机名 | 角色 | 角色 | 角色 |
---|---|---|---|
node01 | namenode | resourcemaager | |
node02 | secondarynamenode | nodemanager | datanode |
node03 | nodemanager | datanode | |
node04 | nodemanager | datanode |
步骤1:下载并解压hadoop安装包
在window系统中下载得到hadoop安装包hadoop-2.7.1.tar.gz,Xshell连接Linux虚拟机,然后在/opt/目录下执行如下命令,创建文件夹sxt,然后使用Xftp将hadoop的安装包传输到/opt/sxt/目录下:
mkdir sxt
接下来使用如下命令对安装包进行解压
tar -zxvf hadoop-2.7.1.tar.gz
然后使用
rm hadoop-2.7.1.tar.gz
删除压缩包
步骤2:配置全分布式hadoop集群
(1)准备工作
首先进入hadoop-2.7.1文件中
再进入share文件中,会发现有一个doc文件,该文件中都是当前,此文件就是2.7.1版官网说明文件离线文件,没有什么用,为了后面集群配置快速传输配置文件,因此使用如下命令将该doc文件删除:
rm -rf doc
接下来进入/opt/sxt/hadoop-2.7.1/etc/目录中
当hadoop后面启动时就是读取的当前目录下的hadoop文件中的文件。进入hadoop文件中,会看到很多配置的相关文件。
(2)开始配置相关文件
hadoop-env.sh文件配置:在该文件中需要配置jdk的环境变量的路径,使用如下命令获得jdk的环境变量的路径:
echo $JAVA_HOME
复制该路径,然后使用vim编辑命令进入hadoop-en.sh文件,使用”i”进入编辑模式,在最下面加入jdk的路径,然后按”ESC”退出编辑模式,然后输入”:wq”保存退出。
core-site.xml文件配置:该文件配置的是主节点的信息
此时我们进入hadoop的官网,浏览相关文件的默认配置方式。单节点的默认配置如下图:
因此我们也需要配置主节点的ip:port,到此还没有结束,我们再来看一下官网中的core-site.xml文件的默认配置,
此目录是hadoop的临时目录,但是默认的路径是/tmp/目录下,此目录在Linux中是存放临时文件的,可能会不经允许被删除机群无法使用,同时此目录在多个配置文件中都使用到,因此为了安全我们要自定义设置一个专门的目录下。最终的配置如下图(/var/sxt/hadoop/full此目录目前不存在,后面进行format后就会创建):
hdfs-site.xml文件配置:该文件配置的是从节点的信息,同样先看一下官网中的配置
此配置就是设置数据块的副本数,因为我们是3台DataNode,但是我们可以设置为2,可以看一下副本的放置方法。除此之外还要配置secondarynamenode,第二名称节点主要就是来做editlog的文件合并工作,并不能起到HA的作用,最终的配置如下图
接下来我们还需配置yarn的相关文件
mapred-site.xml文件配置:开始是没有mapred-site.xml文件的,需要通过如下命令得到该文件
cp mapred-site.xml.template mapred-site.xml
配置如下:
yarn-site.xml文件配置:最开始我们将node01配置为主节点,因此也在node01配置RM
slaves文件配置:此文件中指定从节点配置在那些节点上
(3)将配置完成的文件分发到其他几个节点
由于我们最开始在/opt/目录下创建了sxt文件夹,但是其他几个节点中没有sxt这个文件夹,因此不能使用当前目录进行分发,我们先退到/opt/目录下,然后分别分发至node02,node03,node04。(此处需要注意pwd的引用是`` 不是’’单引号)
分发完成,去其他节点查看,已分发完成。
步骤三:全分布式hadoop集群格式化并启动
1.在主节点node01namenode执行如下如下命令
hdfs namenode -format
格式化有两个作用:
- 生成集群的ID,主从节点共享,以此区别其他集群
- 生成FSimage,该文件是将原namenode中的数据进行了持久化的
2. 启动集群
如果没有启动的环境变量,因此每次启动都需要进入bin sbin目录,我们可以配置启动的环境变量,简化启动步骤
配置/etc/profile文件如下:
然后将profile文件分发至其他节点,再source /etc/profile使其生效,以后就可以在任意目录下使用hadoop的启动命令。
- start-dfs.sh 启动hdfs
- start-yarn.sh 启动yarn
启动之后可以在各个节点使用jps查看进行,确认启动成功
node01:
node02:
node03:
node04:
对应的进程都已启动。
关闭集群可以使用如下命令:
- 关闭yarn :stop-yarn.sh
- 关闭hdfs:stop-dfs.sh