Google File System用来解决数据存储的问题,采用N多台廉价的电脑,使用冗余的方式,来取得读写速度与数据安全并存的结果 。Map-Reduce是函数式编程,把所有的函数都分为两类,Map和Reduce,Map用来将数据分成多份,分开处理,Reduce将处理的结果进行归并,得到最终的结果 。BigTable是在分布式系统上存储结构化数据的一个解决方案,解决了巨大的Table的管理、负载均衡的问题 。下面两张图有助于从大致框架和结构上理解Hadoop 。
Hadoop体系架构
Hadoop核心设计
除了Hadoop体系架构那些基础工具外,数据产品经理还需要对以下几个基础工具做一些了解 。
1. ELASTIC SEARCH
基于Lucene的搜索服务器 。提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口 。Elasticsearch作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎 。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便 。
2. Memcached
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载 。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度 。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展 。
3. Redis
开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API 。为了保证效率,数据都是缓存在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步 。Redis的出现,很大程度补偿了Memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用 。
4. Kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据 。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素 。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决 。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案 。
Kafka集群可以在一个指定的时间内保持所有发布上来的消息,不管这些消息有没有被消费 。打个比方,如果这个时间设置为两天,那么在消息发布的两天以内,这条消息都是可以被消费的,但是在两天后,这条消息就会被系统丢弃以释放空间 。Kafka的性能不会受数据量的大小影响,因此保持大量的数据不是一个问题 。
5. Storm
Storm是分布式数据处理的框架,本身几乎不提供复杂事件计算 。Storm用于实时处理,就好比 Hadoop 用于批处理 。Storm保证每个消息都会得到处理,而且它在一个小集群中,每秒可以处理数以百万计的消息 。
猜你喜欢
- 告诉我声优置占龙太郎的资料
- 最可爱的女生网名 最可爱的女生网名精选
- 毕业联欢会的节目串联词 掌握这几点轻松搞定毕业联欢会的节目串联词
- 清水丸子的制作技巧
- 桂圆和龙眼的不同点 桂圆和龙眼有什么区别
- 清平乐王楚然第几集出现 这里有详细的剧情介绍
- 心情被别人左右的句子 表达心情被别人左右的说说
- 3分钟全面了解信息流产品 信息流产品的推送原理
- 茶树菇的功效与作用及食用方法 茶树菇的好处以及吃法
- 不便之处敬请谅解意思 不便之处敬请谅解的含义
