大数据学习之二——hadoop集群机器准备和连接
2018-01-23 18:44
253 查看
1.CAP原理,BASE原理
CAP原理是指在一个分布式系统中,Consistency(一致性)、Avzilability(可用性)、Partition tolerance(分区容错性),最多只能同时实现两点,三者不可兼得,所以必须做出取舍。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
BASE是指基本可用(BasicallyAvailable)、软状态(SoftState)、最终一致性(EventualConsistency)。
基本可用(BA):基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
软状态(S):软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。
最终一致性(E):最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
2.数据分割(数据分布方式)
实现分布式就要考虑如何拆解数据。
数据分割是指把逻辑上是统一整体的数据分割成较小的、可以独立管理的物理单元进行存储,以便于重构、重组和恢复,以提高创建索引和顺序扫描的效率。数据分割使数据仓库的开发人员和使用者具有更大的灵活性。
数据的分布方式有:
哈希方式
按数据范围分布
按数据量分布
一致性哈希
3.副本策略
副本控制协议可以分为两大类“中心化副本控制协议primary-secondary”和“去中心化副本控制协议”。
primary-secondary中心化副本控制协议的基本思路:由一个中心节点协调副本数据的更新、维护副本之间的一致性。所有副本相关的控制交由中心节点完成,并发控制由中心节点完成,从而简化一个分布式并发控制问题为一个单机并发控制问题。
其中有且仅有一个副本作为primary副本,除primary意外的副本都作为secondary副本。维护primary副本的节点作为中心节点,中心节点负责维护数据的更新、并发控制、协同副本的一致性。
paxos多个节点直接通过操作日志同步数据,如果只有一个节点称为主节点,就很容易在多个节点之间维护数据一致性。然后主节点可能出现故障,那么就需要选出主节点。Paxos协议就是用于解决多个节点之间的一致性问题。
在paxos算法中,分为4种角色:
Proposer :提议者1.Proposer提出议题
Acceptor:决策者2.Acceptor初步接受或者不接受
Client:产生议题者3.若初步接受则Proposer再次向Acceptor确认是否最终接受
Learner:最终决策学习者4.Acceptor最终接受或不接受
Hadoop集群部署(一)
完成集群机器的准备和连接
操作内容:
1.在虚拟机64-14中修改配置文件:/etc/hostname、/etc/hosts和/etc/network/interfaces,实现集群中所有IP和hostname的映射
sudo vim /etc/hostname
sudo vim /etc/hosts
sudo vim /etc/network/interfaces
2.克隆虚拟机,添加集群中多台机器,并同样修改配置文件,保证同一网段。
3.在master中安装SSH
在线安装:sudo apt-get install ssh
在每台机器上生成公钥私钥,
ssh-keygen -t rsa -P‘ ‘
‘’意识是空格,生成了.ssh文件
将id_rsa.pub中的内容覆盖到authorizes_keys中,au这个文件一开始是不存在的。
生成公钥私钥之后,无需输入密码
4.在slave1机器中做同样的操作
5.将slave1中的公钥文件复制到master
在slave1上:
在master中,导入公钥:
这样,master就有两台机器的公钥了。
将master上最全的公钥,复制到其他机器:
修改slave1上authorized_keys文件的权限:
验证:在每个虚拟机上都可使用ssh与其他机器无密码连接:
1.CAP原理,BASE原理
CAP原理是指在一个分布式系统中,Consistency(一致性)、Avzilability(可用性)、Partition tolerance(分区容错性),最多只能同时实现两点,三者不可兼得,所以必须做出取舍。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
BASE是指基本可用(BasicallyAvailable)、软状态(SoftState)、最终一致性(EventualConsistency)。
基本可用(BA):基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
软状态(S):软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。
最终一致性(E):最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
2.数据分割(数据分布方式)
实现分布式就要考虑如何拆解数据。
数据分割是指把逻辑上是统一整体的数据分割成较小的、可以独立管理的物理单元进行存储,以便于重构、重组和恢复,以提高创建索引和顺序扫描的效率。数据分割使数据仓库的开发人员和使用者具有更大的灵活性。
数据的分布方式有:
哈希方式
按数据范围分布
按数据量分布
一致性哈希
3.副本策略
副本控制协议可以分为两大类“中心化副本控制协议primary-secondary”和“去中心化副本控制协议”。
primary-secondary中心化副本控制协议的基本思路:由一个中心节点协调副本数据的更新、维护副本之间的一致性。所有副本相关的控制交由中心节点完成,并发控制由中心节点完成,从而简化一个分布式并发控制问题为一个单机并发控制问题。
其中有且仅有一个副本作为primary副本,除primary意外的副本都作为secondary副本。维护primary副本的节点作为中心节点,中心节点负责维护数据的更新、并发控制、协同副本的一致性。
paxos多个节点直接通过操作日志同步数据,如果只有一个节点称为主节点,就很容易在多个节点之间维护数据一致性。然后主节点可能出现故障,那么就需要选出主节点。Paxos协议就是用于解决多个节点之间的一致性问题。
在paxos算法中,分为4种角色:
Proposer :提议者1.Proposer提出议题
Acceptor:决策者2.Acceptor初步接受或者不接受
Client:产生议题者3.若初步接受则Proposer再次向Acceptor确认是否最终接受
Learner:最终决策学习者4.Acceptor最终接受或不接受
Hadoop集群部署(一)
完成集群机器的准备和连接
操作内容:
1.在虚拟机64-14中修改配置文件:/etc/hostname、/etc/hosts和/etc/network/interfaces,实现集群中所有IP和hostname的映射
sudo vim /etc/hostname
sudo vim /etc/hosts
sudo vim /etc/network/interfaces
2.克隆虚拟机,添加集群中多台机器,并同样修改配置文件,保证同一网段。
3.在master中安装SSH
在线安装:sudo apt-get install ssh
在每台机器上生成公钥私钥,
ssh-keygen -t rsa -P‘ ‘
‘’意识是空格,生成了.ssh文件
将id_rsa.pub中的内容覆盖到authorizes_keys中,au这个文件一开始是不存在的。
生成公钥私钥之后,无需输入密码
4.在slave1机器中做同样的操作
5.将slave1中的公钥文件复制到master
在slave1上:
在master中,导入公钥:
这样,master就有两台机器的公钥了。
将master上最全的公钥,复制到其他机器:
修改slave1上authorized_keys文件的权限:
验证:在每个虚拟机上都可使用ssh与其他机器无密码连接:
相关文章推荐
- hadoop学习之HDFS(2.5):windows下eclipse远程连接linux下的hadoop集群并测试wordcount例子
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
- Hadoop学习4_CentOS6.5系统下Hadoop2.6.0集群增加机器详细操作
- 大数据学习系列(7)-- hadoop集群搭建
- 1、我们第一个(极小的)机器学习应用【准备数据】
- 一步一步跟我学习hadoop(7)----hadoop连接mysql数据库执行数据读写数据库操作
- ADO.NET的数据提供程序和数据连接——ADO.NET学习&应用笔记之二
- 机器学习--准备数据与Numpy(三)--数学和统计方法
- 大数据学习第3天---------------------多台机器,利用软连接快速部署yum源
- 机器学习--准备数据与Numpy(七)--
- 大数据学习第二章 hadoop集群的部署
- DayDayUP_大数据学习课程[1]_hadoop2.6.0完全分布式集群环境和伪分布式集群搭建
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
- 开始hadoop前的准备:ubuntu学习笔记-基本环境的搭建(ssh的安装,SecureCRT连接,vim的安装及使用、jdk的安装)
- 大数据学习第二章 hadoop集群的部署
- 【Hadoop】集群之外的机器如何连接到集群并与HDFS交互,提交作业给Hadoop集群
- 大数据hadoop入门学习之集群环境搭建集合
- ADO.NET的数据提供程序和数据连接——ADO.NET学习&应用笔记之二
- 大数据学习之hadoop伪分布式集群安装(一)
- 大数据学习--问题集锦(hadoop篇)--集群搭建