Hadoop、Hive和Hbase是什么

508 阅读3分钟

「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

hadoop 一套数据解决方案

是什么

开源框架,可编写和运行分布式应用以处理大规模数据。

hadoop的组件包括分布式文件系统HDFS(Hadoop Distributed File System存储)+MapReduce(脚本+代码)为海量数据提供计算

所以hadoop主要解决海量数据的存储与分析计算问题

优点:

  • 分布式,‍各个组件相互独立运行
  • 集群搭建,防止单点故障
  • 高效,在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度

做什么

  1. 数据获取,线索数据获取,例如埋点服务
  2. 数据整合,相应数据整合,客户及售卖数据等
  3. 数据分析,分析客户逻辑关系
  4. 数据展示,给销售人员展示并促成交易达成

Hive 数据仓库

基于hadoop的数据仓库,进行仓库数据分析。提供丰富的SQL查询方式来分析存储在hadoop上的数据。可以将结构化的数据映射成数据库表。将SQL语句转换成MapReduce任务进行运行,以此获取结果数据和分析结果。

不进行数据的增删改,只是将查询操作玩出花来

  • 支持索引,优化查询效率
  • 多种存储类型。文本、Hbase中的文件
  • 缓存数据,进行k-v到关系型数据的转换

Hbase 分布式大数据存储数据库

区别于Mysql

  • 分布式的,mysql是单机存储的,分布式需要借助binlog进行数据传输
  • 大数据,单机的mysql注定不能支持每日1T的数据量存储

区别于es

  • es也能存储大量数据,也可以使用索引快速获取数据。但是es的倾向更多的还是进行一种检索的功能(讲个故事,为什么世界上有这么多编程语言,因为总有人想开发一种语言可以替代所有语言,所以就又多了一门编程语言)

区别于HDFS

  • 能存储海量数据,但是进行查询的时候不太方便处理

Hbase是一个面向列存储的分布式存储系统。基于HDFS提供高可靠性、高性能、列存储、可伸缩、实时读写。牺牲一部分的一致性,仅支持单行事务(通过hive进行复杂处理)。

大数据发展史

起源于“三驾马车”:分布式文件系统 GFS大数据分布式计算框架 MapReduceNoSQL 数据库系统 BigTable

Doug Cutting(Lucene创始人)启动了hadoop的开发(HDFS+MapReduce),使用Java编写

hadoop开源并广泛使用之后,大家觉得使用MapReduce操作大数据编程太麻烦了,所以创造了Pig(类Sql,经过编译之后会生成MapReduce程序在hadoop上运行)但是Pig又区别于正常的语言,所以还需要专门学习一门编程语言。所以FaceBook开发了Hive,这个使用sql来进行大数据计算。

Hive将sql转换成MapReduce进行执行

hadoop生态的产品逐渐出现

  • 关系数据库数据到hadoop的sqoop
  • 日志分布式收集、聚合和传输的Flume
  • MapReduce 工作流调度引擎 Oozie

将Hadoop中MapReduce的功能“执行引擎和资源调度”分离形成的Yarn

Spark的推出解决了MapReduce性能的问题

大数据离线计算:hadoopspark。计算的数据都是以天为单位,数据来源也不是实时的

大数据实时计算:stormFlinkSpark Streaming,处理一些类似监控、识别等逻辑。进行实时的数据比对和获取

大数据离线计算+大数据实时计算:使用批处理的方式处理大量的历史数据,使用流式计算处理实时新增的数据

基于HDFS从Hadoop中分离出来的NoSql——HBase