实验环境:rhel7.5
主机信息 | 作用 |
---|---|
server5(172.25.8.5) | Namenode(master) |
server6(172.25.8.6) | Datanode(slave) |
server7(172.25.8.7) | Datanode(slave) |
真机(172.25.8.250) | 测试 |
Hadoop篇章的第二篇实现了单机版的hadoop分布式文件系统,接下来在多个节点上实现;
hadoop的分布式的实现是为了:将其Datanode与Namenode分离开;
#1 创建两个新的快照,并且用真机连接
#2 首先关闭dfs服务,并且删除之前生成文件
#3 在三个节点上均安装nfs服务并且开启服务
#4 在server5上(master节点)上配置nfs服务,设置共享目录,并且开启服务(nfs服务已经在第二步已经开启了)
#5 在server6和server7上创建用户hadoop ,将其server5的nfs共享目录资源挂载在server6和server7的本地用户上上,就可以共享资源了,并且三个节点/home/hadoop下的内容是一致的,说明共享成功
#6 由于家目录共享,因此三个节点上的公钥和私钥是一样的,因此可以互相免密连接
#7 在server5上修改相关文件
[hadoop@server5 ~]$ pwd
/home/hadoop/
[hadoop@server5 ~]$ cd hadoop/etc/hadoop/
[hadoop@server5 hadoop]$
#8 在server5上配置master以及slave(指定副本个数为2)
#8 可以在server6上查看到修改的相关的文件
#9 在server5上进行初始化
#10 在server5上开启dfs服务,server5上的nanenode和datanode分离开了,发现datanode 转移到server6和server7(slave节点)上去了
#11 在server5(master节点)上再次上传一些文件,并且在浏览器上查看,输入:172.25.8.5:9870
[hadoop@server5 hadoop]$ bin/hdfs dfs -mkdir -p /user/hadoop #创建目录
[hadoop@server5 hadoop]$ bin/hdfs dfs -mkdir input #在/user/hadoop继续创建目录
[hadoop@server5 hadoop]$ bin/hdfs dfs etc/hadoop/*.xml input #将其etc/hadoop/*.xml 文件上传到input 目录上
hadoop的几大特点之一就是可以根据数据量进行灵活伸缩
根据实际的业务数据量来进行灵活伸缩对于企业来说是非常有用的
hadoop主要是用来提供海量数据存储和计算的
,需要java语言基础
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS
有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上
而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序
Hadoop的框架最核心的设计就是:HDFS和MapReduce
HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台
用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序
能够对大量数据进行分布式处理的软件框架Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理
Hadoop 是可靠的,因为它假设计算元素和存储会失败
因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理
Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度
主要思想是 分组合并 思想
分组:比如有一个大型数据,那么他就会将这个数据按照算法分成多份,每份存储在slave主机上,并且在slave主机上进行计算
合并:将每个机器上的计算结果合并起来 再在一台机器上计算,得到最终结果 这就是mapreduce 算法
#1 在真机上快照一台server8 并且连接
#2 在server8上创建hadoop用户并且安装nfs服务
#3开启服务并且挂载server5上的共享目录到本地
#5 这个在线添加节点,可以不用将其修改配置文件,可以直接共享资源,开启datanode服务即可,让各个DataNode中的数据均匀分布
#6 在浏览器里面进行查看,发现3个节点全部在线
说明server8已经成功加入集群当中
#9 添加上传一个500M文件,并且在浏览器上进行查看
mfs:默认一块50M
nfs:默认分为4块,500M,一块128M
#但是这里应该server6/7/8/但是没有server8还没有找到问题??
添加nodemanager
#1 关闭sevrer5的服务
#2 在server5上修改文件
(1)HDFS采用的是分布式架构,datanode数据存储采用block的形式,把文件存入分布式文件系统
(2)每个block默认有3个副本,第一个副本本地机器,第二个副本放在同机架的不同服务器,第三个副本放置在不同机架的其他服务器
(3)hdfs集群设计了safemode安全模式,当集群坏块太多,触发了阀值整个集群会进入安全模式,只能读,不能写;
启动过程中也会进入安全模式,等待datanode向namenode发送块报告和心跳。
(4)HDFS里面的文件也有类似linux系统的权限
(5)针对HDFS和YARN的高可用,设计HA功能