【云计算】Hadoop集群搭建解析
小标 2018-12-05 来源 : 阅读 1323 评论 0

摘要:本文主要向大家介绍了【云计算】Hadoop集群搭建解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】Hadoop集群搭建解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。


1.发行版本


Hadoop发行版本分为开源社区版和商业版,社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,比较著名的有cloudera的CDH、mapR等。


我们学习的是社区版:Apache Hadoop。后续如未说明都是指Apache版本。


Hadoop的版本很特殊,是由多条分支并行的发展着。大的来看分为3个大的系列版本:1.x、2.x、3.x。


Hadoop1.0由一个分布式文件系统HDFS和一个离线计算框架MapReduce组成。


Hadoop 2.0则包含一个支持NameNode横向扩展的HDFS,一个资源管理系统YARN和一个运行在YARN上的离线计算框架MapReduce。相比于Hadoop1.0,Hadoop 2.0功能更加强大,且具有更好的扩展性、性能,并支持多种计算框架。

Hadoop 3.0相比之前的Hadoop 2.0有一系列的功能增强。但目前还是个alpha版本,有很多bug,且不能保证API的稳定和质量。


我们课程中使用的是当前2系列最稳定版本:Apache Hadoop 2.7.4。


2.集群简介


HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。


HDFS集群负责海量数据的存储,集群中的角色主要有:


NameNode、DataNode、SecondaryNameNode


YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:


ResourceManager、NodeManager


那mapreduce是什么呢?它其实是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理。


Hadoop部署方式分三种,Standalone mode(独立模式)、Pseudo-Distributed mode(伪分布式模式)、Cluster mode(群集模式),其中前两种都是在单机部署。


独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。


伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分别启动单独的java进程,主要用于调试。


集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。


我们以3节点为例进行搭建,角色分配如下:


node-01 NameNode DataNode ResourceManager


node-02 DataNode NodeManagerSecondaryNameNode


node-03 DataNodeNodeManager


3.服务器准备


本案例使用VMware Workstation Pro虚拟机创建虚拟服务器来搭建HADOOP集群,所用软件及版本如下:


VMware Workstation Pro 12.0


Centos6.764bit


4.网络环境准备


采用NAT方式联网。


如果创建的是桌面版的Centos系统,可以在安装完毕后通过图形页面进行编辑。如果是mini版本的,可通过编辑ifcfg-eth*配置文件进行配置。


注意BOOTPROTO、GATEWAY、NETMASK。


5.服务器系统设置


同步时间


#手动同步集群各机器时间


date -s "2017-03-03 03:03:03"


yum install ntpdate


#网络同步时间


ntpdate cn.pool.ntp.org


设置主机名


vi /etc/sysconfig/network


NETWORKING=yes


HOSTNAME=node-1


配置IP、主机名映射


vi /etc/hosts


192.168.33.101 node-1


192.168.33.102 node-2


192.168.33.103 node-3


配置ssh免密登陆


#生成ssh免登陆密钥


ssh-keygen -t rsa (四个回车)


执行完这个命令后,会生成id_rsa(私钥)、id_rsa.pub(公钥)


将公钥拷贝到要免密登陆的目标机器上


ssh-copy-id node-02


配置防火墙


#查看防火墙状态


service iptables status


#关闭防火墙


service iptables stop


#查看防火墙开机启动状态


chkconfig iptables --list


#关闭防火墙开机启动


chkconfig iptables off


6.JDK环境安装


#上传jdk安装包


jdk-8u65-linux-x64.tar.gz


#解压安装包


tar zxvf jdk-8u65-linux-x64.tar.gz -C /root/apps


#配置环境变量 /etc/profile


export JAVA_HOME=/root/apps/jdk1.8.0_65


export PATH=$PATH:$JAVA_HOME/bin


export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


#刷新配置


source /etc/profile


7.Hadoop安装包目录结构


解压hadoop-2.7.4-with-centos-6.7.tar.gz,目录结构如下:


bin:Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。


etc:Hadoop配置文件所在的目录,包括core-site,xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。


include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。


lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。


libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。


sbin:Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。


share:Hadoop各个模块编译后的jar包所在的目录。


8.Hadoop配置文件修改


Hadoop安装主要就是配置文件的修改,一般在主节点进行修改,完毕后scp下发给其他各个从节点机器。


8.1.hadoop-env.sh


文件中设置的是Hadoop运行时需要的环境变量。JAVA_HOME是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行,它也是把当前的执行环境当成远程服务器。


vi hadoop-env.sh


export JAVA_HOME=/root/apps/jdk1.8.0_65


8.2.core-site.xml


hadoop的核心配置文件,有默认的配置项core-default.xml。


core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值。




fs.defaultFS


hdfs://node-1:9000




hadoop.tmp.dir


/home/hadoop/hadoop-2.4.1/tmp


8.3.hdfs-site.xml


HDFS的核心配置文件,有默认的配置项hdfs-default.xml。


hdfs-default.xml与hdfs-site.xml的功能是一样的,如果在hdfs-site.xml里没有配置的属性,则会自动会获取hdfs-default.xml里的相同属性的值。




dfs.replication


2




mapreduce.framework.name


yarn


8.5.yarn-site.xml


YARN的核心配置文件,有默认的配置项yarn-default.xml。


yarn-default.xml与yarn-site.xml的功能是一样的,如果在yarn-site.xml里没有配置的属性,则会自动会获取yarn-default.xml里的相同属性的值。




yarn.resourcemanager.hostname


node-1




yarn.nodemanager.aux-services


mapreduce_shuffle


8.6.slaves


slaves文件里面记录的是集群主机名。一般有以下两种作用:


一是:配合一键启动脚本如start-dfs.sh、stop-yarn.sh用来进行集群启动。这时候slaves文件里面的主机标记的就是从节点角色所在的机器。


二是:可以配合hdfs-site.xml里面dfs.hosts属性形成一种白名单机制。


dfs.hosts指定一个文件,其中包含允许连接到NameNode的主机列表。必须指定文件的完整路径名。如果值为空,则允许所有主机。例如:



 dfs.hosts 


/root/apps/hadoop/etc/hadoop/slaves 


那么所有在slaves中的主机才可以加入的集群中。


9.Hadoop环境变量


编辑环境变量的配置文件:


vi /etc/profile


export JAVA_HOME= /root/apps/jdk1.8.0_65


export HADOOP_HOME= /root/apps/hadoop-2.7.4


export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


保存配置文件,刷新配置文件:


source /etc/profile


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved