大数据技术原理与应用 林子雨版 课后习题答案 下载本文

文档

7.试述UMP 系统的功能。 答:

UMP系统是构建在一个大的集群之上的,通过多个组件的协同作业,整个系统实现了对用户透明的 容灾、读写分离、分库分表、资源管理、资源调度、资源隔离和数据安全功能。 1.容灾

云数据库必须向用户提供一直可用的数据库连接,当MySQL实例发生故障时,系统必须自动执行故障恢复,所有故障处理过程对于用户而言是透明的,用户不会感知到后台发生的一切。

为了实现容灾,UMP系统会为每个用户创建两个MySQL实例,一个是主库,一个是从库,而且,这两个MySQL 实例之间互相把对方设置为备份机,任意一个MySQL实例上面发生的更新都会复制到对方。同时,Proxy服务器可以保证只向主库写人数据。

2.读写分离

由于每个用户都有两个MySQL实例,即主库和从库,因此,可以充分利用主从库实现用户读写操作的分离,实现负载均衡。UMP系统实现了对于用户透明的读写分离功能,当整个功能被开启时,负责向用户提供访问MySQL数据库服务的Proxy 服务器,就会对用户发起的SQL 语句进行解析,如果属于写操作,就直接发送到主库,如果是读操作,就会被均衡地发送到主库和从库上执行。 3.分库分表

UMP支持对用户透明的分库分表(Shard/Horizontal Partition)。但是,用户在创建账号的时候需要指定类型为多实例,并且设置实例的个数,系统会根据用户设置来创建多组MySQL实例。除此以外,用户还需要自己设定分库分表规则,如需要确定分区字段,也就是根据哪个字段进行分库分表,还要确定分区字段里的值如何映射到不同的MySQL 实例上。 4.资源管理

UMP系统采用资源池机制来管理数据库服务器上的CPU、内存、磁盘等计算资源,所有的计算资源都放在资源池内进行统一分配,资源池是为MySQL 实例分配资源的基本单位。整个集群中的所有服务器会根据其机型、所在机房等因素被划分为多个资源池,每台服务器会被加人到相应的资源池。在资源池划分的基础上,UMP还在每台服务器内部采用Cgroup将资源进一步地细化,从而可以限制每个进程组使用资源的上限,同时保证进程组之间相互隔离。 5.资源调度

UMP系统中有3种规格的用户,分别是数据量和流量比较小的用户、中等规模用户以及需要分库分表的用户。多个小规模用户可以共享同一个MySQL实例。对于中等规模的用户,每个用户独占个MySQL 实例。用户可以根据自己的需求来调整内存空间和磁盘空间,如果

文档

用户需要更多的资源,就可以迁移到资源有空闲或者具有更高配置的服务器上对于分库分表的用户,会占有多个独立的MySQL 实例,这些实例既可以共存在同一台物理机上,也可以每个实例独占一台物理机。

UMP通过MySQL实例的迁移来实现资源调度。借助于阿里集团中间件团队开发的愚公系统,UMP 可以实现在不停机的情况下动态扩容、缩容和迁移。 6.资源隔离

当多个用户共享同一个MySQL 实例或者多个MySQL 实例共存在同一个物理机上时,为了保护用户应用和数据的安全,必须实现资源隔离,否则,某个用户过多消耗系统资源会严重影响到其他用户的操作性能。 7.数据安全

数据安全是让用户放心使用云数据库产品的关键,尤其是企业用户,数据库中存放了很

多业务数据,有些属于商业机密,一旦泄露,会给企业造成损失。UMP 系统设计了多种机制来保证数据安全。 1) SSL 数据库连接。 2) 数据访问IP 白名单。 3) 记录用户操作日志。 4) SQL拦截。

13. UMP 系统是如何保障数据安全的? 答:

1) SSL 数据库连接。 SSL (Secure Sockets Layer) 是为网络通信提供安全及数据完整性的一

种安全协议,它在传输层对网络连接进行加密。Proxy 服务器实现了完整的MySQL 客户端服务器协议,可以与客户端之间建立SSL 数据库连接。

2) 数据访问IP 白名单。可以把允许访问云数据库的IP 地址放入“白名单”,只有白名单内

的IP地址才能访问,其他IP地址的访问都会被拒绝,从而进一步保证账户安全。 3) 记录用户操作日志。 用户的所有操作记录都会被记录到日志分析服务器,通过检查用

户操作记录,可以发现隐藏的安全漏洞。

4) SQL拦截。Proxy 服务器可以根据要求拦截多种类型的SQL 语句,比如全表扫描语句

\。

文档

15. 简述RDS 中实例与数据库的概念。

答: RDS实例或简称“实例”,是用户购买RDS服务的基本单位。在实例中可以创建多

个数据库,可以使用常见的数据库客户端连接、管理及使用数据库。可以通过RDS管理控制台或OPEN API来创建、修改和删除数据库。各实例之间相互独立、资源隔离,相互之间不存在CPU、内存、IOPS等抢占问题。但是,同一实例中的不同数据库之间是资源共享的。每个实例拥有其自己的特性,如数据库类型、版本等,系统有相应的参数来控制实例行为。用户所购买RDS实例的性能,取决于购买RDS实例时所选择的配置,可供用户选择的硬件配置项为内存和磁盘容量。

RDS数据库或简称“数据库”,是用户在一个实例下创建的逻辑单元,一个实例可以创建

多个数据库,在实例内数据库命名唯一,所有数据库都会共享该实例下的资源,如CPU、内存、磁盘容量等。RDS不支持使用标准的SQL 语句或客户端工具创建数据库,必须使用OPEN API或RDS管理控制台进行操作。

16. 列举连接RDS for MySQL 数据库的4 种方法。

答: 方法1: 使用客户端MySQL-Front访问。使用客户端MySQL-Front,在连接Host 框中

输人数据实例链接地址、端口(默认3306)、数据库用户名和数据库密码后,单击“确定”按钮即可。

方法2: 使用数据库管理T 具Navicat MySQL。Navicat_MySQL 是一套专为MySQL 设计的强大的数据库管理及开发工具,可以在连接输人框中输人数据实例地址、端口(默认3306 )、数据库用户名和数据库密码后,单击“确定”按钮即可。

方法3: 使用MySQL 命令登录。用户安装MySQL 客户端后,可进人命令行方式连接数据库。命令格式如下。

mysql -u user_name -h yuqianli.mysql.rds.aliyuncs.com -P3306 -pxxxx

其中,-u指定的是用户名,-h指定的是主机名,-P指定的是端口,-p指定的是密码。

方法4: 使用阿里云控制台iDB Cloud访问。阿里云控制台iDB Cloud的页面如图6-7 所示,RDS 连接地址以及端口不需要再输人,只需在“用户名”中输人数据库的账号,在“密码”栏中输人数据库账号的密码,便可以登录RDS进行数据操作了。

文档

第七章

1.试述MapReduce和Hadoop的关系。

答: 谷歌公司最先提出了分布式并行编程模型MapReduce, Hadoop MapReduce是它的

开源实现。谷歌的MapReduce运行在分布式文件系统GFS上,与谷歌类似,HadoopMapReduce运行在分布式文件系统HDFS上。相对而言,HadoopMapReduce 要比谷歌MapReduce 的使用门槛低很多,程序员即使没有任何分布式程序开发经验,也可以很轻松地开发出分布式程序并部署到计算机集群中。

2.MapReduce 是处理大数据的有力工具,但不是每个任务都可以使用

MapReduce 来进行处理。试述适合用MapReduce来处理的任务或者数据集需满足怎样的要求。

答: 适合用MapReduce来处理的数据集,需要满足一个前提条件: 待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。

3. MapReduce模型采用Master(JobTracker)-Slave(TaskTracker)结构,试描述JobTracker和TasKTracker的功能。

答: MapReduce 框架采用了Master/Slave 架构,包括一个Master 和若干个Slave。Master 上运行JobTracker,Slave 上运行TaskTrackero 用户提交的每个计算作业,会被划分成若千个任务。JobTracker 负责作业和任务的调度,监控它们的执行,并重新调度已经失败的任务。TaskTracker负责执行由JobTracker指派的任务。

6.试述MapReduce的工作流程(需包括提交任务、Map、Shuffle、Reduce的过程)。