Hadoop是apache一个开源的分布式计算项目,从开源后就备受各个技术大拿关注,我记得第一次听说还是在11年左右,当时Inte中国l有个HAdoop的实验项目,邀我一起去搞,各种原因吧,与之擦肩而过,如今已过而立之年,有点自己的时间,重新作为一个小白对其进行学习。本文是对两周的学习一个总结,如有不当,敬请赐教。
首先对于hadoop进行一个集群环境搭建。
一、环境准备
由于本人是学习和研究为主,暂时没有很多物理机器使用,所以所有的操作都是基于VMware虚拟机环境下的操作:
1)、Vmware这个就不用说了,可以最小成本的满足我们各种开发环境和集群环境的需求。
2)、Linux-ubuntu-16.04.2 个人使用的 ubuntu,据基友介绍 ubuntu更适合学习,因为很多需要的开发环境如,SSH、VIM通过 sudo apt-get install XXX ,
迅速下载到,减少我们学习时间成本。--本人不是linux专家,只是个人看法。
3)、JDK和 Hadoop。个人建议这个两个都去官网下载最新的版本,并查看一下版本兼容情况。本文里是jdk1.8和 hadoop 2.7.3.
二、集群规划
根据网上的课程规划四台用于搭建集群的服务器,具体信息如下
机器IP | 机器名 | 集群服务类型 | 备注 |
192.168.2.217 | SY-0217 | NameNode1(Active NameNode) | 配置越高越好,其运算负荷量大 |
192.168.2.155 | SY-0355 | NameNode2(Standy NameNode)/Journal Name | 为了节约资源放到一台,大家也可以把他分开 |
192.168.2.225 | SY-0226 | Journal Name | dataNode资源可以分少点 |
192.168.2.226 | SY-0226 | Journal Name | dataNode资源可以分少点 |
三、linux安装以及配置
linux主要配置有静态iP配置、Hosts、安装JDK和Hadoop,并开放防火墙端口、ssh免密登陆。
Step 1、 配置网络地址
参考代码
sudo vim /etc/network/interfaces ##配置网络IP地址 sudo vim #the primay netowrk interface auto ens33 iface ens33 inet static address 192.168.18.217 netmask 255.255.255.0 gateway 192.168.18.2
Step 2、配置Hosts
参考代码
sudo vim /etc/hosts ##host 文件 192.168.18.155 SY-0355 192.168.18.217 SY-0217 192.168.18.225 SY-0225 192.168.18.226 SY-0226
step 3、关闭防火墙或者开放端口
## 关闭防火墙或者开放端口 sudo ufw disable
Step 4、安装 JDK 1.8
## 安装 JDK 1.8 tar -zxvf jdk-8u131-linux-x64.tar.gz
Step 5、安装Hadoop
## 安装 hadoop tar -zxvf hadoop-2.7.3.tar.gz
完成以上安装和配置后 可以负责Vmware镜像为4份,并根据规划修改IP地址。
四、Hadoop 配置
hadoop配置主要包括 JDK、core-site.xml 、mapred-site.xml、hdfs-site.xml 、yarn-site.xml、slaves、fairscheduler.xml
Step 1-3 、JDk、core_site.xml 配置参考代码
Step 3、 mapred-site.xml 配置参考代码 。
Step 4、hdfs-site.xml 该部分配置比较核心,建议大家第一次配置手敲一边,印象会比较深刻
Step 5 yarn-site.xml 配置 建议根据参考代码手敲
Step 6-7 、slaves配置和 fairscheduler.xml 参考代码
Step 8 、向各个节点同步配置文件
##step 1.8 同步hadoop 配置文件 scp etc/hadoop/* wwllkk@SY-0217:/home/wwllkk/hadoop/hadoop-2.7.3/etc/hadoop scp etc/hadoop/* wwllkk@SY-0225:/home/wwllkk/hadoop/hadoop-2.7.3/etc/hadoop scp etc/hadoop/* wwllkk@SY-0226:/home/wwllkk/hadoop/hadoop-2.7.3/etc/hadoop
五 、 启动脚本参考代码
#########################STEP 2 hadoop 集群启动篇######################################## ## step 2.1 启动 journalNode SY-0355 SY-0225 SY-0226 sbin/hadoop-daemon.sh start journalnode sbin/hadoop-daemon.sh stop journalnode ###-------启动 NameNode---------------- ## step 2.2 在【nn1】上对其格式化,并启动; SY-0217 bin/hdfs namenode -format sbin/hadoop-daemon.sh start namenode ## step 2.3 在 【nn2】上,格式化并同步nn1的元数据信息, SY-0355 bin/hdfs namenode -bootstrapStandby ## step 2.4 启动 【nn2】 SY-0355 sbin/hadoop-daemon.sh start namenode ##经过以上步骤,nn1和nn2都是standby状态 ## step 2.5 切换【nn1】为active SY-0217 hdfs haadmin -transitionToActive nn1 ###-------启动 DataNode ---------------- sy-0225,sy-0226 ## step 2.6 在【nn1】上启动所有的 DataNode sbin/hadoop-daemon.sh start datanode ## ---------关闭hadoop集群--------- ### step end 在【nn1】上执行以下命令 sbin/stop-dfs.sh