1.为什么要进行hadoop节点的伸缩?
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 算法
2.在线添加节点的实现过程如下
(1)在真机上再开启一台快照server4并且连接
(2)在server4上建立hadoop用户并且安装nfs服务
(3)开启服务并且挂载server1上的共享目录到本地
(4)在server1上进行设置,准备将server1加入hadoop集群当中
在新节点上执行datanode,数据平衡,让各个DataNode中的数据均匀分布
(5)在浏览器里面进行查看,发现3个节点全部在线
说明server4已经成功加入集群当中
3.在线删除节点的实现过程如下
(1)在master节点server1上面设置
编辑一个去除主机信息的文件
编辑节点排除文件的位置,在excludes文件中添加要排除的节点主机名,一行一个
编辑剩余主机信息的文件
编辑workers文件
编辑配置文件
刷新一下,执行下面命令,强制重新加载配置
更新节点配置,然后在Hadoop站点上很快就能看到Decommission正在进行,
此时NameNode会检查并将数据复制到其它节点上以恢复副本数
(要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们)
(2)在被去除的节点上面停止datanode
等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令
几分钟后,节点将从Decommissioned进入Dead状态
(3)此时在浏览器里面就可以看到server3已经从集群中移除
4.hadoop(HDFS)如何保证数据安全?
(1)HDFS采用的是分布式架构,datanode数据存储采用block的形式,把文件存入分布式文件系统
(2)每个block默认有3个副本,第一个副本本地机器,第二个副本放在同机架的不同服务器,第三个副本放置在不同机架的其他服务器
(3)hdfs集群设计了safemode安全模式,当集群坏块太多,触发了阀值整个集群会进入安全模式,只能读,不能写;
启动过程中也会进入安全模式,等待datanode向namenode发送块报告和心跳。
(4)HDFS里面的文件也有类似linux系统的权限
(5)针对HDFS和YARN的高可用,设计HA功能