理论部分
1.了解谷歌分布式存储系统GFS
2.明白分布式数据处理框架MapReduce的内涵、编程模型和经典步骤,了解使用MapReduce进行数据分析的经典案例
3.体会“分而治之”的哲学思想
4.了解Bigtable的体系架构和数据模型
云计算关键技术
1.分布式存储技术
2.分布式计算技术MapReduce
3.分布式数据库技术Bigtable
GFS系统的节点角色——从物理层面
客户端(client):Client是GFS提供给应用程序的访问接口,以库文件的形式提供
主服务器(master):Master是GFS的管理节点,负责整个文件系统的管理
数据块服务器(chunk):Chunk Server负责具体的存储工作
GFS的四大优点:
存储资源的弹性可伸缩、支持海量存储
由文件系统来处理容错使命,系统容错性高
支持文件以追加方式批量写入
支持多个客户端对一个文件的高并发性写入操纵,系统性能高
通过大量自制服务器组建集群、数据存储成本低
Chunk Server容错
GFS接纳副本的方式实现Chunk Server的容错
每一个Chunk有多个存储副本(默认为三个)
对于每一个Chunk,必须将全部的副本全部写入乐成,才视为乐成写入
相干的副本出现丢失或不可规复等情况,Master自动将该副本复制到其他Chunk Server
GFS中的每一个文件被划分成多个Chunk/block,Chunk的默认大小是64MB
每一个Chunk以Block为单元进行划分,大小为64KB,每一个Block对应一个32bit的校验和
Map/Reduce的官方界说
MapReduce是一种应用于处理大数据集的编程模型(是什么?)。用户使用一个Map过程处理<键,值>对,一个Reduce过程实现对具备雷同键值的中心结果的归并处理(包含的核心过程)。许多现实天下的使命都可以使用这个模型来处理(应用的紧张性)。
MapReduce的工作模型
Map函数——对一部分原始数据进行指定的操纵。每个Map操纵都针对不同的原始数据,因此Map与Map之间是相互独立的,这使得它们可以充分并行化。
Reduce操纵:对每个Map的中心结果(雷同键值)进行合并,每个Reduce处理的内容互不交叉,全部Reduce产生的结果经简朴毗连形成末了的结果集
容错机制——重做
由于MapReduce在成百上千台机器上处理海量数据,以是容错机制是不可或缺的。MapReduce通过重新执行失效的地方来实现容错。
Master失效:
Master会周期性地设置检查点(checkpoint),并导出Master的数据。一旦1)某个使命失效,系统就从最近的一个检查点规复并重新执行。重做!!由于只有一个Master在运行,假如2)Master失效了,则只能终止整个MapReduce程序的运行并重新开始。
Worker失效:
Master会周期性地给Worker发送ping命令,假如没有Worker的应答,则Master认为Worker失效,终止对这个Worker的使命调度,把失效Worker的使命调度到其他Worker上重新执行。
分布式数据库技术Bigtable
Bigtable:应用GFS技术构建的google存储模型
Bigtable 的技术架构
Bigtable数据的存储格式
Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引
Bigtable的存储逻辑可以表示为:(row:string, column:string, time:int64)→string
Bigtable的数据模型——三大组成要素
行:
1.Bigtable的行关键字可以是任意的字符串,但是大小不能够超过64KB
2.数据根据行关键字使用词典序进行排序
3.同一地址域的网页会被存储在表中的连续位置
4.倒排便于数据压缩,可以大幅进步压缩率
列:
1.构造成所谓的列族(Column Family)
2.族名故意义,限定词则可以任意选定
3.族是Bigtable中访问控制(Access Control)的基本单元
时间戳:
1.Google的许多服务比如网页检索和用户的个性化设置等都必要生存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。
2.Bigtable中的时间戳是64位整型数,具体的赋值方式可以用户自行界说
上机部分
需求形貌:
准备私有云平台的计算节点和控制节点中所需的镜像和数据存储设备
准备好私有云的安装软件,搭建内部ftp服务,设置情况变量
实现思绪:
使用fdisk命令,对sdb和sdc进行分区,并进行文件系统创建,指派sdb供cinder服务,sdc供swift服务。
将centos7和iaas2.2软件复制到controller的/opt文件中,配置安装源为/opt文件夹的软件。
配置vsftp,以方便内网安装openstack,配置安装openstack情况变量。
一、存储设备准备
1.在controller中确定已添加两块20G的scsi硬盘,用命令fdisk -l ,观察到有/dev/sdb和/dev/sdc字样。
2.执行 fdisk /dev/sdb进行分区,n进行新建,选p指定分区类型为主分区,选1指定分区编号为1,分区起点和终点均回车接纳默认值,选t进行系统类型选择,输入8e,末了w存务退出。对/dev/sdc执行同样的操纵。再用命令fdisk -l 观察结果
3.对上述两个新分区进行文件系统创建,mkfs.xfs /dev/sdb1,mkfs.xfs /dev/sdc1
4.在compute中重复1-3
二、网卡和主机名准备
1.在controller中修改和添加/etc/sysconfig/network-scripts/ifcfg-ens*(具体是两个网卡,*一样平常是33和34)文件,主要改动以下参数:ONBOOT=yes,BOOTPROTO=static,第二网卡的gateway要删除。
2.确认主机名为controller,输入命令hostnamectl set-hostname controller
3.在compute中重复前面第1步。
4.确认当前主机名为compute,输入命令hostnamectl set-hostname compute
三、配置yum源
1.在controller中,先备份原来的安装源#mv /etc/yum.repos.d/* /opt/
2.创建repo文件,在/etc/yum.repos.d创建centos.repo源文件,内容如下:
- [centos]
- name=centos
- baseurl=file:///opt/centos
- gpgcheck=0
- enabled=1
- [iaas]
- name=iaas
- baseurl=file:///opt/iaas-repo
- gpgcheck=0
- enabled=1
复制代码
3.在compute中,先备份原来的安装源
#mv /etc/yum.repos.d/* /opt/
4.创建repo文件,在/etc/yum.repos.d创建centos.repo源文件,内容如下:
- [centos]
- name=centos
- baseurl=ftp://192.168.1.241/centos
- gpgcheck=0
- enabled=1
- [iaas]
- name=iaas
- baseurl=ftp://192.168.1.241/iaas-repo
- gpgcheck=0
- enabled=1
复制代码
四、复制centos7和iaas2.2光盘中的文件到/opt
1.在controller中,将光驱中光盘指为定centos7并确认已毗连。
2.挂载光盘到/mnt文件夹并复制文件
- [root@controller ~]# mount /dev/cdrom /mnt/
- [root@controller ~]# mkdir /opt/centos
- [root@controller ~]# cp -rvf /mnt/* /opt/centos/
- [root@controller ~]# umount /mnt/
复制代码
3.将光驱中光盘指为定iaas2.2确认已毗连。
4.挂载光盘到/mnt文件夹并复制文件
- [root@controller ~]# mount /dev/cdrom /mnt/
- [root@controller ~]# cp -rvf /mnt/* /opt/
- [root@controller ~]# umount /mnt/
复制代码
五、搭建ftp服务器,开启并设置自启
1.在controller中,安装并设置ftp。
- [root@controller ~]# yum install vsftpd –y
- [root@controller ~]# vi /etc/vsftpd/vsftpd.conf
复制代码 添加anon_root=/opt/
生存退出
2.启动并设置ftp开机启动
- [root@controller ~]# systemctl start vsftpd
- [root@controller ~]# systemctl enable vsftpd
复制代码
六、关闭防火墙并设置开机不自启
【controller/compute都要做】
- systemctl stop firewalld
- systemctl disable firewalld
-
复制代码
七、清除缓存,验证yum源
【controller/compute都要做】
- # yum clean all
- # yum list
复制代码
八、编辑情况变量
【controller/compute都要做】
- # yum install iaas-xiandian -y
- # vi /etc/xiandian/openrc.sh
复制代码在文件背面添加如下内容:
- HOST_IP=192.168.1.241
- HOST_NAME=controller
- HOST_IP_NODE=192.168.1.242
- HOST_NAME_NODE=compute
- RABBIT_USER=openstack
- RABBIT_PASS=000000
- DB_PASS=000000
- DOMAIN_NAME=demo
- ADMIN_PASS=000000
- DEMO_PASS=000000
- KEYSTONE_DBPASS=000000
- GLANCE_DBPASS=000000
- GLANCE_PASS=000000
- NOVA_DBPASS=000000
- NOVA_PASS=000000
- NEUTRON_DBPASS=000000
- NEUTRON_PASS=000000
- METADATA_SECRET=000000
- INTERFACE_NAME=ens34
- CINDER_DBPASS=000000
- CINDER_PASS=000000
- TROVE_DBPASS=000000
- TROVE_PASS=000000
- BLOCK_DISK=sdb1
- SWIFT_PASS=000000
- OBJECT_DISK=sdc1
- STORAGE_LOCAL_NET_IP=192.168.1.242
- HEAT_DBPASS=000000
- HEAT_PASS=000000
- CEILOMETER_DBPASS=000000
- CEILOMETER_PASS=000000
- AODH_DBPASS=000000
- AODH_PASS=000000
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |