【云计算】hadoop集群的搭建史上最详细教程
小标 2019-02-11 来源 : 阅读 1118 评论 0

摘要:本文主要向大家介绍了【云计算】hadoop集群的搭建史上最详细教程,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】hadoop集群的搭建史上最详细教程,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

  概念

HDFS分布式文件系统会将用户提交的文件存储在一个服务器集群中


HDFS中有两种重要的服务器软件角色:


datanode --》负责存储用户文件的块 namenode--》负责记录用户存储的文件的虚拟路径,及文件每一个块的具体位置(哪一块在哪一台datanode服务器上) 安装一个HDFS集群 准备工作:

规划:要有一台机器安装namenode


要有N台datanode服务器


准备4台虚拟机:


在vmware中创建一个虚拟机


安装linux系统


安装jdk


主机名、ip地址、hosts映射


安装ssh工具


关闭防火墙


关闭配置好的这一台虚拟,克隆出另外3台


克隆出来的机器需要:


修改主机名 修改ip地址 修改物理网卡删掉eth0,改eth1为eth0,

2)安装HDFS软件


Hdfs/YARN是两个分布式服务系统,mapreduce是运算程序,这些软件通通包含在HADOOP安装包中。那么,我们在安装时,其实对每一台机器都是安装一个整体的HADOOP软件,只是将来会在不同的机器上启动不同的程序。


1/ 上传一个hadoop安装压缩包到hdp26-01上,解压到/root/apps/


2/ 认识hadoop软件的目录结构


2/ 修改配置文件


hadoop-env.sh:


配置一个JAVA_HOME目录即可


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


     

core-site.xml


最核心配置:HDFS的URI


参数名: fs.defaultFS


参数值: hdfs://hdp26-01:9000/

fs.defaultFS


 

hdfs://hdp26-01:9000/

URI:全球统一资源定位,用于描述一个“资源”(一个网页/一个文件/一个服务)的访问地址;


 

举例:我有一个数据库,别人想访问,可以这样指定:


 

jdbc:mysql://192.168.33.44:3306/db1


 

jdbc:mysql: 资源的类型或者通信协议


 

192.168.33.44:3306 服务提供者的主机名和端口号


 

/db1 资源体系中的某一个具体资源(库)


 

我有一个web系统,别人想访问,可以这样指定:


 

//www.ganhoo.top:80/index.php


 

http: 资源的访问协议


 

www.ganhoo.top:80 服务提供者的主机名和端口号


 

/index.php 资源体系中的某一个具体资源(页面)


 

我要访问本地磁盘文件系统中的文件


 

file://d:/aa/bb/cls.avi


 

file:///root/apps/..


     

hdfs-site.xml


核心配置:


datanode服务软件在存储文件块时,放在服务器的磁盘的哪个目录

参数名:dfs.datanode.data.dir


参数值:/root/hdp-data/data/


namenode 服务软件在记录文件位置信息数据时,放在服务器的哪个磁盘目录

参数名:dfs.namenode.name.dir


参数值:/root/hdp-data/name/


dfs.namenode.name.dir


 

/root/hdp-data/name/


 

dfs.datanode.data.dir


 

/root/hdp-data/data/


 

dfs.namenode.secondary.http-address


 

hdp26-02:50090


 

3/ 拷贝安装包到其他机器


在hdp26-01上:


scp -r /root/apps/hadoop-2.8.1 hdp26-02:/root/apps/


scp -r /root/apps/hadoop-2.8.1 hdp26-03:/root/apps/


scp -r /root/apps/hadoop-2.8.1 hdp26-04:/root/apps/


4/ 手动启动HDFS系统


为了能够在任意地方执行hadoop的脚本程序,可以将hadoop的安装目录及脚本所在目录配置到环境变量中:


 

在之前的配置文件中添加如下内容:


 

vi /etc/profile


 

export HADOOP_HOME=/root/apps/hadoop-2.8.1


 

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


 

然后


 

source /etc/profile


     

格式化namenode


首先,需要给namenode机器生成一个初始化的元数据存储目录


hadoop namenode -format


启动namenode


在哪里启动namenode:


在你配的fs.defaultFS=hdfs://hdp26-01:9000中的主机上启namenode


启动命令:


hadoop-daemon.sh start namenode


启动完后检查:


[liunx#] jps


2112 NameNode


使用浏览器访问hdp26-01的50070端口,能打开一个namenode状态信息的网页


启动datanode


在哪里启动datanode:


在你想让它成为datanode服务器的机器上启:


(hdp26-01,hdp26-02,hdp26-03,hdp26-04)


启动命令:


hadoop-daemon.sh start datanode


启动完后检查:


[liunx#] jps


2112 DataNode


<使用浏览器访问hdp26-01的50075端口,能打开一个datanode状态信息的网页>


刷新namenode的网页,看看是否识别出这一台datanode


DATANODE的存储目录不需要事先初始化,datanode软件在启动时如果发现这个存储目录不存在,则会自动创建


启完之后,浏览namenode页面,会发现namenode已经认出4个datanode服务器


5/ 脚本自动启动HDFS系统


ssh不仅可以远程登录一个linux服务器进行shell会话,还可以远程发送一条指令到目标机器上执行


 

ssh hdp26-04 “mkdir /root/test”


 

ssh hdp26-04 “source /etc/profile; hadoop-daemon.sh start datanode”


 

但是,远程发送指令执行需要经过ssh的安全验证:


 

验证分为两种方式:


 密码验证方式 密钥验证方式
 

需要在hdp26-01上生成一对密钥:


 

ssh-keygen


 

然后将公钥发送到目标机器上:


 

ssh-copy-id hdp26-01


 

ssh-copy-id hdp26-02


 

ssh-copy-id hdp26-03


 

ssh-copy-id hdp26-04


     

接着修改 hadoop安装目录/etc/hadoop/slaves文件,列入想成为datanode服务器的主机:


hdp26-01


hdp26-02


hdp26-03


hdp26-04


然后,就可以:


用start-dfs.sh 自动启动整个集群;


用stop-dfs.sh 自动停止整个集群;


不恰当的format:导致namenode上新生成了clusterid,跟datanode上记录的原clusterid不一致,导致datanode无法向namenode注册!


 

不恰当的复制(把某台datanode的数据目录复制给了另一台),导致两台datanode上记录的datanodeUUID重复冲突;左右只能有一台datanode能向namenode注册成功


 

忘记关防火墙,导致namenode无法从外界访问,也会导致datanode无法跟namenode通信


 

主机名忘了改!


 

配置文件写错!


 

jdk都没安装好!


     

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


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

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

我知道了

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

请输入正确的手机号码

请输入正确的验证码

获取验证码

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

提交

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

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

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

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程