以前电商平台数据量很小,现在有一份 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. Python3爬虫入门(一)

    Python3爬虫入门 ​网络爬虫,也叫网络蜘蛛(Web?Spider).它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接. 在浏览器的地址栏输入URL地址, ...

  2. 全国海域潮汐表查询微信小程序详情教程及代码

    最近在做一个全国海域潮汐表查询,可以为赶海钓鱼爱好者提供涨潮退潮时间表及潮高信息.下面教大家怎么做一个这样的小程序.主要功能,根据IP定位地理位置,自动查询出省份或城市的港口,进入后预测7天内港口潮汐 ...

  3. java基础之“深复制和浅复制的区别”

    一.浅复制 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都任然指向原来的对象. 二.深复制 深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用对象 三.举例 产品 ...

  4. 基于主成分分析(PCA)的数据降维

    一.概述   主成分分析(Principal Component Analysis,PCA)是一种用于数据降维的方法,其核心目标是在尽可能保留原始数据信息的前提下,将高维数据映射到低维空间.该算法基于 ...

  5. storageclass和本地持久化存储

    StorageClass 之前我们部署了PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上 ...

  6. B1009 说反话

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

  7. 炸裂!Spring AI 1.0 正式发布,让 Java 再次伟大!

    炸裂,炸裂,炸裂!从第一次提交代码到现在,经过 2 年的沉淀,Spring AI 框架的第一个正式版本 1.0 终于发布了. 有了这玩意,开发 AI 应用就是洒洒水的事,Java 开发者们是不是又爽了 ...

  8. VsCode+DeepSeek的AI编程助手初体验

    前言 最近随着AI编程助手的兴起,我这个重度码农也想试着尝下鲜,看看他究竟有多厉害,会不会把我们都给取代了.Github Copilot大名鼎鼎,和微软全家桶重度绑定,但是使用价格不菲,并且使用它有一 ...

  9. MyBatisPlus笔记(高级)

    MyBatisPlus(高级) 作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 MyBatisPlus(高级) 说明: 相关连接: 慕课入门视频: 入门文章: 本文对应进阶视频: 整合的gi ...

  10. ResizeObserver和IntersectionObserver的详细讲解

    ResizeObserver 的介绍 ResizeObserver 用于异步观察元素的尺寸变化. 如:SVG 元素或文本节点的大小变化.调整浏览器窗口大小.动态改变某个元素的大小时 可以触发相应的回调 ...