如何理解hadoop Zookeeper Phoenix HBase Hive Mapreduce HDFS spark yarn之间的关系
以前电商平台数据量很小,现在有一份 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之间的关系的更多相关文章
- Yarn、MapReduce、spark、storm的关系
YARN并不是下一代 MapReduce (MRv2),下一代 MapReduce 与第一代 MapReduce (MRv1)在编程接口.数据处理引擎(MapTask和ReduceTask)是完全一样 ...
- quartz源码分析之深刻理解job,sheduler,calendar,trigger及listener之间的关系
org.quartz包 包org.quartz是Quartz的主包,包含了客户端接口. 其中接口有: Calendar接口: 定义了一个关联Trigger可能(或者不可能)触发的时间空间.它没有定义触 ...
- 理解盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
一个元素盒模型的层次从内到外分别为:内边距.边框和外边距IE8以下浏览器的盒模型中定义的元素的宽高不包括内边距和边框
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...
- HADOOP (十一).安装hbase
下载安装包并解压设置hbase环境变量配置hbase-site.xml启动hbase检测hbase启动情况测试hbase shell 下载安装包并解压 https://mirrors.tuna.tsi ...
- 一图看懂Hadoop中的MapReduce与Spark的区别:从单机数据系统到分布式数据系统经历了哪些?
今日博主思考了一个问题:Hadoop中的MapReduce与Spark他们之间到底有什么关系? 直到我看到了下面这张图 废话不多说先上图 我们知道,单机数据系统,在本地主机上针对数据有单机本地存储操作 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- 大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)
原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
转自:http://blog.csdn.net/iamdll/article/details/20998035 分类: 分布式 2014-03-11 10:31 156人阅读 评论(0) 收藏 举报 ...
随机推荐
- Python3爬虫入门(一)
Python3爬虫入门 网络爬虫,也叫网络蜘蛛(Web?Spider).它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接. 在浏览器的地址栏输入URL地址, ...
- 全国海域潮汐表查询微信小程序详情教程及代码
最近在做一个全国海域潮汐表查询,可以为赶海钓鱼爱好者提供涨潮退潮时间表及潮高信息.下面教大家怎么做一个这样的小程序.主要功能,根据IP定位地理位置,自动查询出省份或城市的港口,进入后预测7天内港口潮汐 ...
- java基础之“深复制和浅复制的区别”
一.浅复制 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都任然指向原来的对象. 二.深复制 深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用对象 三.举例 产品 ...
- 基于主成分分析(PCA)的数据降维
一.概述 主成分分析(Principal Component Analysis,PCA)是一种用于数据降维的方法,其核心目标是在尽可能保留原始数据信息的前提下,将高维数据映射到低维空间.该算法基于 ...
- storageclass和本地持久化存储
StorageClass 之前我们部署了PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上 ...
- B1009 说反话
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...
- 炸裂!Spring AI 1.0 正式发布,让 Java 再次伟大!
炸裂,炸裂,炸裂!从第一次提交代码到现在,经过 2 年的沉淀,Spring AI 框架的第一个正式版本 1.0 终于发布了. 有了这玩意,开发 AI 应用就是洒洒水的事,Java 开发者们是不是又爽了 ...
- VsCode+DeepSeek的AI编程助手初体验
前言 最近随着AI编程助手的兴起,我这个重度码农也想试着尝下鲜,看看他究竟有多厉害,会不会把我们都给取代了.Github Copilot大名鼎鼎,和微软全家桶重度绑定,但是使用价格不菲,并且使用它有一 ...
- MyBatisPlus笔记(高级)
MyBatisPlus(高级) 作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 MyBatisPlus(高级) 说明: 相关连接: 慕课入门视频: 入门文章: 本文对应进阶视频: 整合的gi ...
- ResizeObserver和IntersectionObserver的详细讲解
ResizeObserver 的介绍 ResizeObserver 用于异步观察元素的尺寸变化. 如:SVG 元素或文本节点的大小变化.调整浏览器窗口大小.动态改变某个元素的大小时 可以触发相应的回调 ...