首页 存档 技术 查看内容

你想要的大数据知识,基本都在这里了

2018-3-30 13:00 |来自: 互联网 418 0

摘要: 前 言 现在市面上的大数据产品太多了,但它们还远远没达到像IaaS层那样的标准化程度,每个产品之间的差别也并不是特别明确清晰。很多企业在做大数据平台或大数据方案的时候,常常不知道该选用哪些产品来满足自己的需 ...

前 言


现在市面上的大数据产品太多了,但它们还远远没达到像IaaS层那样的标准化程度,每个产品之间的差别也并不是特别明确清晰。很多企业在做大数据平台或大数据方案的时候,常常不知道该选用哪些产品来满足自己的需求。一般的做法是做调研、学习、搭环境、测试、做各种产品的集成,但通常这个过程会很漫长,成本也很高。


我们希望这些事情都交给云平台来做,云上所有的产品都可以一键部署、一键伸缩,不论是加节点还是减节点都能够在UI界面上直接操作。对于一个企业来说,真正的核心是自己的业务,而不需要花太多的时间搞明白到底该用哪些工具搭建、部署、管理大数据。大数据产品的运维和管理,应该交给更专注、具有更大规模效益的大数据服务厂商,用户只需聚焦于自己的业务。本文来自青云QingCloud大数据平台架构师李威(Jordan)在青云QingCloud深圳站实践课堂上的分享,全文 3158 字,阅读时长约为 13 分钟。


QingCloud 基础架构云和技术平台云



QingCloud提供了一个完整的基础架构云和技术平台云,这里面分了很多层,最下面一层是大家熟知的IaaS层,包括标准的计算、存储、网络。网络里还有路由器、负载均衡等,存储里面有块存储、共享存储、对象存储等各种面向不同场景的存储服务,计算中有主机、容器、映象等计算资源。


IaaS层上面是PaaS,QingCloud在几年前就开始做PaaS平台,有一个原则贯穿始终 QingCloud的PaaS服务需要全部基于IaaS,这样做的好处是可以将QingCloud IaaS层所有的技术创新,如资源调度、SDN网络、性能优化,都透过IaaS层被PaaS享用,QingCloud的架构是一套统一的架构。


此外,QingCloud在PaaS层之上还提供了一些高级的管理服务,如编排、定时器、监控告警等以及客户部署的各种类型服务(如VPC、专属云、托管云)。


QingCloud完整的企业级大数据平台



QingCloud的大数据平台包含了完整的数据生命周期:负责数据传输的有Kafka; 数据传进来之后可以存储在对象存储、HBase、MongoDB;负责从存储里拿出数据进行计算处理的有主流的实时处理工具Storm、准实时处理工具Spark、批处理工具Hadoop、Hive等;还有一些在公有云上用量非常大的大数据组件:如Elasticsearch,性能和业务性很强,场景非常明确,只要做大数据、海量数据搜索都非常易用,以及Redis、Memcached、ZooKeeper等离用户比较近的大数据产品。


由于QingCloud是一家云服务商,所以提供的大数据平台是一个通用的服务,这与美团、小米、百度等互联网公司的大数据概念不太一样,它们的平台中会有很多与自己业务相关的东西。而QingCloud是在云上给所有的用户提供服务,所提供的这套大数据平台是一个通用的架构,每个组件之间的关系都非常灵活。QingCloud主要提供主流的大数据组件和组件之间关系的管理。


大数据产品如何选型?


很多用户在面对大数据时都会遇到一个相同的问题,应该选用什么产品?其实这个问题没有一个百分之百确定的答案,下面我们将会从各个维度来解析当前主流的大数据产品:


实时流处理引擎对比


实时流处理引擎主流的产品有Storm、Storm Trident、Spark Streaming、SAMZA、Flink等,在选择它们时可以考虑的维度很多,比如说消息的传递机制保护(Guarantees)有At-least-once(至少传输一次,它带来的结果是消息的重发)和Exactly-once(消息一定只处理一次,无论是在出错的情况还是其他的情况下)的区别;Latency(延迟)方面,如 Storm是通过Native实现的流处理,延迟非常低。而Spark Streaming是通过Micro-batching实现的,它会把一段时间内的流组成小批量地处理,这样它的延迟就会高一些;吞吐量(Throughput)方面,Storm的Native吞吐量没有那么高,Spark Streaming的吞吐量就会很高。


一个企业的架构师或者方案的设计者在选型这些产品的时候,需要平衡自身流处理的业务到底在意什么维度,是在意吞吐量、性能,还是在意消息的处理机制。


存储-HBase vs Cassandra


HBase和Cassandra是两个非常接近的产品,很多人对它们可能不是很熟。它们都是列存储,都可以处理海量的数据,读写性能都非常好。但它们也有很多维度可以对比,首先是一致性,HBase是基于行的强一致性,Cassandra则是最终一致性,如果在中间的某个点写入数据的时候去读取,有可能不会读到最新数据;


稳定性方面,HBase有自己的HMaster、Namenode HA,Cassandra是P2P的架构,去中心化,没有单点故障;分区策略方面,HBase是基于主键有序排列的范围分区,Cassandra是一致性Hash排列,可自定义策略;可用性,HBase是Down掉一台短暂不可读写,Cassandra是Down掉可继续读写。


从这些对比可以明显地看出来, HBase牺牲了可用性,注重强一致性,Cassandra有高可用性,没有强一致性。因此,在应用场景方面,HBase由于有强一致性,它可以做一些OLTP类型、交易类型的工作。Cassandra因为并发读写的量比较大,性能比较强,但是数据不要求强一致性,不要求数据时时刻刻精准和统一,可以做监控数据的存储。


常用Ad-hoc

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部