以前电商平台数据量很小,现在有一份 PB 级的超大数据需要分析统计,比如对用户每日的关键词搜索进行词频统计,能够精琢定位用户需求。

我们以前的方法是使用 oracle 等传统数据库或者写 python 脚本来解决,但是现在使用会发现,太慢了,等跑完,已经错过了商机。

于是我们找到了 hadoop 这个工具,hadoop 是一个分布式系统,其中有一个部分叫分布式文件管理系统HDFS,他能把大数据分成很多块(并备份)进行存储,然后用 Mapreduce (MR) 写 java 代码进行词频统计(map)和 reduce(计算)。

但是我们又发现,这样做①速度依旧不快,因为批处理有延迟(MapReduce必须严格按Map → Shuffle(网络传输)→ Reduce顺序执行,​​后一阶段必须等前一阶段100%完成​​才能开始(如Reduce必须等所有Map任务完成)每个阶段结束都会把​​中间结果写入磁盘​​(防止失败重算),但磁盘I/O比内存慢百倍);

而且②无法做到实时查询,缺乏随机读写能力,还③得有工作人员会写 java 代码。

问题重重,为了解决这些问题,我们找到了 spark 来帮助 Mapreduce,spark 可以把 map 和 reduce 的中间数据放在内存而不是像 MR 一样放在硬盘,消除大部分的 IO 延迟,可以解决①搜索慢的问题。

然后我们找到了 HBase ,它可以在 HDFS 之上创建文件索引,实现实时查询来解决问题②。

接着我们找到了 hive 和 phoenix,他们可以把 sql 转化为 java 语言供机器识别,这样就解决了问题③,hive 主要是用来离线数据分析,他基于 mapreduce/spark,速度会比较慢,延迟比较高,一般用来统计月度/周度数据;phoenix 基于 hbase 提供的 api,延迟低可以用来实时查询,可以用来检测订单是否支付成功等一些需要快速反映结果的问题。

这三个问题解决后,我们又发现,有时候 spark 和 mapreduce 会抢占资源(spark 不会完全替代 mapreduce),于是我们找了一个指挥官叫 yarn,来处理他们的资源调度。

我们还发现 Hbase 有时候会罢工,罢工的时候也需要个指挥官换人工作,于是我们找了 zookeeper 来指挥。

如何理解hadoop Zookeeper Phoenix HBase Hive Mapreduce HDFS spark yarn之间的关系的更多相关文章

  1. Yarn、MapReduce、spark、storm的关系

    YARN并不是下一代 MapReduce (MRv2),下一代 MapReduce 与第一代 MapReduce (MRv1)在编程接口.数据处理引擎(MapTask和ReduceTask)是完全一样 ...

  2. quartz源码分析之深刻理解job,sheduler,calendar,trigger及listener之间的关系

    org.quartz包 包org.quartz是Quartz的主包,包含了客户端接口. 其中接口有: Calendar接口: 定义了一个关联Trigger可能(或者不可能)触发的时间空间.它没有定义触 ...

  3. 理解盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。

    一个元素盒模型的层次从内到外分别为:内边距.边框和外边距IE8以下浏览器的盒模型中定义的元素的宽高不包括内边距和边框

  4. Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

    转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...

  5. HADOOP (十一).安装hbase

    下载安装包并解压设置hbase环境变量配置hbase-site.xml启动hbase检测hbase启动情况测试hbase shell 下载安装包并解压 https://mirrors.tuna.tsi ...

  6. 一图看懂Hadoop中的MapReduce与Spark的区别:从单机数据系统到分布式数据系统经历了哪些?

    今日博主思考了一个问题:Hadoop中的MapReduce与Spark他们之间到底有什么关系? 直到我看到了下面这张图 废话不多说先上图 我们知道,单机数据系统,在本地主机上针对数据有单机本地存储操作 ...

  7. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  8. 大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  9. HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)

    原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...

  10. Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解

    转自:http://blog.csdn.net/iamdll/article/details/20998035 分类: 分布式 2014-03-11 10:31 156人阅读 评论(0) 收藏 举报 ...

随机推荐

  1. C#网络编程(一)----DNS/TCP/UDP协议

    简介 计算机网络是指将分布在不同地理位置的计算机系统.设备通过通信线路和设备连接起来,遵循共同的通信协议,以实现 数据传输.资源共享.协同工作 的系统 .它是现代信息技术的核心基础设施,支撑着互联网. ...

  2. 记录一次mysql数据库修复过程

    1. 场景 最近在使用小皮面板进行靶场搭建的时候,发现数据库一直无法启动,而在虚拟机里是可以启动了,这就很奇怪了.意识到我的本地已经安装了mysql,可能产生了冲突,但是当我兴冲冲启动本地mysql的 ...

  3. Java5新特性--可变参数

    可变参数 public class Test01 { public static void main(String[] args) { System.out.println(add(123)); Sy ...

  4. 如何用JavaScript纯前端来实现下载脚本

    1.javascript脚本 function downloadFile(data, fileName, type="text/plain") { // 创建不可见的元素 cons ...

  5. 工具:Prisms:漏洞扫描器,棱镜开源版

    Prism X 集资产发现.指纹识别.弱密码检测.漏洞验证于一体,采用模块化 YAML 插件策略配置,实现与真实攻击链高度相似的 PoC 验证机制. 跨平台和轻量级设计:支持多种操作系统,易于部署和使 ...

  6. Django内置filter总结

    内置过滤器 目的是对绝大多数的内置过滤器进行测试总结学习,现设置如下: urls.py中设置: urlpatterns=[ url(r'^method',views.method,name='meth ...

  7. yysxky

    哎,还有三天目标分数50分pde能否及格,我其实是有一些信心的我觉得我可以前两天觉得教资pde傻逼班里的模拟教资给我搞得非常恶心当时再加上根本本学不会,我真的会要崩溃的 现在结束了面试感觉其实还好会有 ...

  8. Spring Boot 使用Apollo动态调整日志级别

    摘要:在Spring Boot 项目中,借助Apollo动态修改配置的能力,结合Logback修改日志级别打印执行的SQL脚本. 综述   在生产环境偶现测试环境未发现的SQL查询BUG,但由于线上关 ...

  9. curl ifconfig.me 查看Linux服务器公网IP地址

    命令作用:curl ifconfig.me 用于查看Linux服务器公网IP地址. 使用场景:配置Linux服务器IP白名单的时候,需要知道服务器的IP地址,这就到此命令大显身手的时候了.

  10. C++数据结构和算法代码模板总结——算法部分

    数据结构和算法学*了将*两周,及时总结和整理一下相关的知识点温故而知新.(一)C++双指针,有个经典的问题:荷兰国旗问题.[leetcode]75.颜色分类 public void sortColor ...