云计算课堂讨论题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、如何理解分布式系统中的CAP定理? (一致性、可用性、分区容错性)
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability (可用性)、Partition tolerance(分区容错性),三者不可得兼。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本),换句话就是说,任何时刻,所用的应用程序都能访问得到相同的数据。
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性),换句话就是说,任何时候,任何应用程序都可以读写数据。分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择,换句话说,系统可以跨网络分区线性的伸缩和扩展。
2、云计算平台(系统)的核心技术是虚拟化技术、服务计算(功能服务化、按需服务、
按需收费)、分布式技术(分布式存储、分布式计算一分而治之)。如何理解?
虚拟化是云计算最重要的核心技术之一,它为云计算服务提供基础架构层面的支撑,是ICT 服务快速走向云计算的最主要驱动力。从技术上讲,虚拟化是一种在软件中仿真计算机硬件,以虚拟资源为用户提供服务的计算形式。旨在合理调配计算机资源,使其更高效地提供服务。它把应用系统各硬件间的物理划分打破,从而实现架构的动态化,实现物理资源的集中管理和使用。虚拟化的最大好处是增强系统的弹性和灵活性,降低成本、改进服务、提高资源利用效率。
服务计算(Service Computing)泛指以服务及其组合为基础构造应用这一新开发范型相关的方法、技术、规范、理论和支撑环境
分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
3、Hadoop 是开源(opensource)的云计算实现系统。你如何认识开源产品和闭源产品?
开源是一种生产软件和发布软件的方法。它只是一个执行的范例。开源意味着没有使用费用;只要在几个规则下,你就可以随意使用,其中包括的发布规则在开源使用说明中已有描述。与闭源代码产品(如Oracle公司或尤其是微软公司)不同,其使用许可并不复杂。使用真正的开源代码,你可以得到使用许可证移动性,这意味着云计算使用许可中的一切。
4. Hadoop系统主要有哪四大模块?相互关系如何?作为计算机类专业人士,如
何利用好Hadoop提供的编程接口进行Hadoop平台上的二次开发?
Hadoop架包括以下四个模块:(p182)
Hadoop Common这些是其他Hadoop模块所需的Java库和实用程序。这些
库提供文件系统和操作系统级抽象。井包含启动Hadoop所需的Java文件和脚本。Hadoop YARN这是一个用于作业调度和集群资源管理的框架。
Hadoop Distributed File System (HDFS)分布式文件系统,提供时应
用程序数据的高吞吐量访间。
Hadoop MapReduce这是基于YARN的用于并行处理大数据集的系统。
编程接口:(p202)
1、Hadoop2.0主要有哪些主要组件?记住主要的六个组件的功能。
•HDFS:如果您希望有4000 多台电脑处理您的数据,那么最好将您的数据分发给4000 多台电脑。HDFS 可以帮助您做到这一点。HDFS 有几个可以移动的部件。Datanodes 存储数据,Na menode 跟踪存储的位置。还有其他部件,但这些已经足以使您开始了。
•MapReduce:这是一个面向Hadoop 的编程模型。有两个阶段,毫不意外,它们分别被称为Map 和Reduce。如果希望给您的朋友留下深刻的印象,那么告诉他们,Map 和Reduce 阶段之间有一个随机排序。JobTracker 管理您的MapReduce 作业的4000 多个组件。TaskTracker 从JobTracker 接受订单。如果您喜欢Java,那么用Java 编写代码。如果您喜欢SQL 或Java 以外的其他语言,您的运气仍然不错,您可以使用一个名为Hadoop Streaming 的实用程序。•Hive 和Hue:如果您喜欢SQL,您会很高兴听到您可以编写SQL,并使用Hive 将其转换为一个MapReduce 作业。不,您不会得到一个完整的ANSI-SQL 环境,但您的确得到了4000 个注释和多PB 级的可扩展性。Hue 为您提供了一个基于浏览器的图形界面,可以完成您的Hive 工作。
•Pig: 一个执行MapReduce 编码的更高层次的编程环境。Pig 语言被称为Pig Latin。您可能会发现其命名约定有点不合常规,但是您会得到令人难以置信的性价比和高可用性。
•Oozie:管理Hadoop 工作流。这并不能取代您的调度程序或BPM 工具,但它在您的Hado op 作业中提供if-then-else 分支和控制。
•HBase:一个超级可扩展的键值存储。它的工作原理非常像持久的散列映射(对于Python 爱好者,可以认为是词典)。尽管其名称是HBase,但它并不是一个关系数据库。
•Zookeeper:用于管理集群的同步性。
2、Hadoop部署版分为社区版和商用版(稳定版),有何区别?主要是商用版有哪
些?
•社区版Hadoop:Apache发布的一款支持数据密集型分布式应用并以Apache2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序;
•商用版Hadoop:第三方公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试;
•当前hadoop的发行版本除了Apache的开元版本之外,华为发行版、Intel发行版以及Cloudera发行版等。免费的发行版则主要是国外的,比如Apache的发行版、Cl oudera发行版等。
3、Zookeeper 组件功能如何?工作原理如何?(p223)
4、Zooleeper、Hbase、Hive组件都提供了常用的两种实验方法:Shell接口和编程接口。请举例说明。(p225,p230,p237)