节点的伸缩
- 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 算法
实验环境
主机(IP) | 功能 |
---|---|
server1(172.25.11.1) | name node ,nfs |
server2(172.25.11.2) | data node ,nfs |
server3(172.25.11.3) | data node,nfs |
server4(172.25.11.4) | data node,nfs |
真机(172.25.11.250) | 浏览器测试 |
data node节点的增加
- server4的配置流程与server2、3的相同,新建uid为1000的用户,下载nfs并开启服务,挂载。
- 在server4下修改workers文件与在server1下修改的workers文件是一个文件,我们修改workers,将server4的ip也加入。
- 修改完后查看,此时server4还不是data node。
- 在新节点上执行datanode,并查询,此时server4变为datanode。
- 在浏览器中访问。下图的报错不影响我们实验。(应该是因为我删除了input目录下的文件。)
- 此时live node个数为3。
- 设置balancer数据平衡,可以让各个DataNode中的数据均匀分布。
综上,节点数的在线扩充成功!
data node节点的删除
这个还没成功,后续再继续尝试。
- 主要分为以下几步:
- 在下面的目录新建exclude文件,将要删除的节点的ip写入。
- 编辑workers文件和dfs.hosts文件,两个文件的内容相同,将要留下的所有data node节点写入。
- 按照官网的说明,编辑配置文件hdfs-site.xml,正确的写入两个文件的路径。
- 执行下面的命令 进行刷新。
- 刷新成功后在浏览器中查看,可以看到server3的状态为Decommission正在进行。
- 在被去除的节点上面停止datanode。
bin/hdfs --daemon stop datanode
等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令
几分钟后,节点将从Decommissioned进入Dead状态。
然后再在浏览器中查看。server3节点则被移除。
hadoop(HDFS)如何保证数据安全?
- (1)HDFS采用的是分布式架构,datanode数据存储采用block的形式,把文件存入分布式文件系统。
- (2)每个block默认有3个副本,第一个副本本地机器,第二个副本放在同机架的不同服务器,第三个副本放置在不同机架的其他服务器
- (3)hdfs集群设计了safemode安全模式,当集群坏块太多,触发了阀值整个集群会进入安全模式,只能读,不能写;启动过程中也会进入安全模式,等待datanode向namenode发送块报告和心跳。
- (4)HDFS里面的文件也有类似linux系统的权限
- (5)针对HDFS和YARN的高可用,设计HA功能