Hadoop起源于Nutch,Nutch的设计目标是一个全网搜索引擎,由于分布式文件系统(GFS)和分布式计算框架(Mapreduce)解决了其可扩展性问题,被Apache一起发展为开源项目。狭义的Hadoop就是指Hadoop软件,广义的Hadoop是整个Hadoop生态圈,具体内容在《大数据开发入门基础知识》中已经介绍。
目前3.x版本已经在2017年发布,但是大多数公司为了追求稳定和兼容性问题,使用较多的还是2.x版本。2.x版本的Hadoop常见的有四种架构模型:
NameNode 和ResourceManager单点架构模型;
NameNode单节点与ResourceManager高可用架构模型;
NameNode高可用与ResourceManager单节点架构模型;
NameNode与ResourceManager高可用架构模型。
本次搭建环境参考NameNode 和ResourceManager单点架构模型。
文件系统核心模块:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据。
secondaryNameNode:主要能用于Hadoop当中元数据信息的辅助管理。
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据。
数据计算核心模块:
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配。
NodeManager:负责执行主节点APPmaster分配的任务。
搭建Hadoop集群的准备工作:
三台虚拟机
链接:
https://pan.baidu.com/s/1x3zLlBuAo2O6T5VMwR7NlA
提取码:sw94
三台虚拟主机做集群搭建并搭建好Zookeep集群,参照《Zookeeper入门》。
编译好的Hadoop
链接:
https://pan.baidu.com/s/1BOWV5eru6x6AB0PPjqeWzg
提取码:wx2k
1 上传编译好的2.7.5版本Hadoop安装包并解压到/servers目录下
cd /export/softwarestar -zxvf hadoop-2.7.5.tar.gz -C ../servers/
2 进入hadoop-2.7.5/目录,使用命令查看编译后的Hadoop增加支持了如下算法:
bin/hadoop checknative
3 修改配置文件(7个)
a core-site.xml
<configuration> <property> <name>fs.default.namename> <value>hdfs://node01:8020value> property> <property> <name>hadoop.tmp.dirname> <value>/export/servers/hadoop-2.7.5/hadoopDatas/tempDatasvalue> property> <property> <name>io.file.buffer.sizename> <value>4096value> property> <property> <name>fs.trash.intervalname> <value>10080value> property>configuration>
b hdfs-site.xml
这里设置的50070是启动集群后查看hdfs的端口
<configuration> <property> <name>dfs.namenode.secondary.http-addressname> <value>node01:50090value> property> <property> <name>dfs.namenode.http-addressname> <value>node01:50070value> property> <property> <name>dfs.namenode.name.dirname> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2value> property> <property> <name>dfs.datanode.data.dirname> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas,file:///export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2value> property> <property> <name>dfs.namenode.edits.dirname> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/nn/editsvalue> property> <property> <name>dfs.namenode.checkpoint.dirname> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/snn/namevalue> property> <property> <name>dfs.namenode.checkpoint.edits.dirname> <value>file:///export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/editsvalue> property> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>dfs.permissionsname> <value>falsevalue> property> <property> <name>dfs.blocksizename> <value>134217728value> property>configuration>
c hadoop-env.sh
在node01中查看jdk1.8的目录
cd /export/servers/jdk1.8.0_141/pwd # /export/servers/jdk1.8.0_141
在配置文件中添加jdk1.8的目录
export JAVA_HOME=/export/servers/jdk1.8.0_141
d mapred-site.xml
这里设置的19888是启动集群后查看历史完成任务的端口
<configuration> <property> <name>mapreduce.job.ubertask.enablename> <value>truevalue> property> <property> <name>mapreduce.jobhistory.addressname> <value>node01:10020value> property> <property> <name>mapreduce.jobhistory.webapp.addressname> <value>node01:19888value> property>configuration>
e yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostnamename> <value>node01value> property> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> <property> <name>yarn.log-aggregation-enablename> <value>truevalue> property> <property> <name>yarn.log-aggregation.retain-secondsname> <value>604800value> property> <property> <name>yarn.nodemanager.resource.memory-mbname> <value>20480value> property> <property> <name>yarn.scheduler.minimum-allocation-mbname> <value>2048value> property> <property> <name>yarn.nodemanager.vmem-pmem-rationame> <value>2.1value> property>configuration>
f mapred-env.sh
在配置文件中添加jdk1.8的目录
g slaves
添加主从节点
node01node02node03
4 创建配置文件中添加的对应目录
在node01中创建以下目录
mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatasmkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatasmkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/namenodeDatas2mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatasmkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/datanodeDatas2mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/nn/editsmkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/snn/namemkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/dfs/snn/edits
5 安装包分发
将node01中的Hadoop包分发至node02、node03
cd /export/servers/scp -r hadoop-2.7.5 node02:$PWDscp -r hadoop-2.7.5 node03:$PWD
查看node02、node03都已安装好了和node01的Hadoop。
6 配置三台机器的环境变量
vim /etc/profile //添加以下配置export HADOOP_HOME=/export/servers/hadoop-2.7.5export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHsource /etc/profile //让配置生效
7 启动集群
三台机器先打开zookeeper
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
先格式化hdfs,再依次打开hadfs、yarn和historyserver。
cd /export/servers/hadoop-2.7.5/bin/hdfs namenode -formatsbin/start-dfs.shsbin/start-yarn.shsbin/mr-jobhistory-daemon.sh start historyserver
浏览器输入:主机号:50070,查看hdfs
打开Utilities,选择浏览文件系统,可以在这里进行文件和目录的CRUD。
浏览器输入:主机号:8088,查看yarn集群。
浏览器输入:主机号:19888,查看历史完成的任务。
这里仅搭建Hadoop集群,仅满足学习需求。