1、大数据和云计算是什么关系?大数据的核心技术有哪些?给定一个巨大的文本(如1TB),如何计算单词出现的数目?使用使用MapReduce求解该问题求解该问题n定义定义Map和和Reduce函数函数使用使用MapReduce求解该问题求解该问题nStep 1:自动对文本进行分割,形成初始的自动对文本进行分割,形成初始的对对使用MapReduce求解该问题nStep 2:在分割之后的每一对进行用户定义的Map进行处理,再生成新的对使用MapReduce求解该问题nStep 3:对输出的结果集归拢、排序(系统自动完成)使用MapReduce求解该问题nStep 4:通过Reduce操作生成最后结果什么是
2、NoSQL?NoSQL的主要特征是什么?MongoDB有什么作用?NoSQL是Not Only SQL的缩写,而不是Not SQL,它不一定遵循传统数据库的一些基本要求,如SQL标准、ACID属性、表结构等。相比传统数据库,叫它分布式数据管理系统更贴切,数据存储被简化更灵活,重点被放在了分布式数据管理上。关系数据库的表结构(学生、地址、成绩、科目):StudentsaddressidnamestudentidAddressaddressidaddresscitystatepostalcodeScoresscoreidstudentidcourseidgradeCoursescourseidna
3、me NoSQL的表结构(学生、地址、成绩、科目):Students_id:007name:Janeaddress:address:123 Main St.city:New York state:NY postalcode:10014scores:Biolgy:4.0 English:3.0大数据的特征lVolume-数据量巨大,对TB、PB数据级的处理,已经成为基本要求。lVariety-数据多样性,能处理结构化、非结构化数据,能处理Web数据,甚至语音、图像、视频数据。lVelocity-数据实时性,在客户每次浏览页面,下订单的过程中,都会对用户进行实时的产品推荐,购买决策已经变得非常实时
4、。大数据的性能要求lHigh performance-高并发读写,高并发、实时动态数据查询和修改。lHuge Storage-海量数据的高效存储和访问,类似SNS网站,海量用户信息的高效、实时存储和查询。lHigh Scalability&High Availability-高可扩展性和高可用性,需要拥有快速横向扩展能力、提供7*24小时不间断服务。关系数据库处理大数据的弱势l面对高并发读写的需求,数据库读写压力巨大,硬盘IO无法承受。l面对海量数据,数据库能存储的记录数量有限,SQL查询效率极低。l横向扩展艰难,无法通过快速增加服务器节点实现,系统升级和维护造成服务不可用。NoSQL处理大数
5、据的优势l数据库结构简单,数据间无关系性,这自然就带来了很高的读写性能,且易扩展。l灵活的数据模型,可以随时存储自定义的数据格式。而在关系数据库里,增删字段是件麻烦的事。尤其大数据量的表,增加字段简直就是一个噩梦。l通过复制模型可实现高可用性,可以分布部署在低廉的PC集群上。l支持动态增加、删除服务器节点,随时控制硬件投入成本。key-value存储列式存储文档型存储图结构存储 一个分布式文件存储数据库。功能最丰富、最像关系数据库的产品。数据结构采用JSON格式,因此可以存储比较复杂的数据模型。查询语言强大,支持索引、MapReduce等功能。面向文档,以K/V形式存储数据。支持主/从服务器间的数据复制和故障恢复。支持自动分片。Replica Sets架构l Primary服务器:将数据同步到多个 Secondary 上。l Secondary服务器:热机备份主服务器上的数据,分担主机读压力,当主机发生故障不能工作,随时接管主机工作。Sharding是什么?分片是指将数据拆分,将其分散到不同服务器上的过程。通过分片能够增加更多的服务器,来应对不断增加的负载和数据。MongoDB何时需要分片?机器的磁盘不够用。单个mongod服务已经不能满足写数据的性能需求。Replica Sets+Sharding