「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」
hadoop 一套数据解决方案
是什么
开源框架,可编写和运行分布式应用以处理大规模数据。
hadoop的组件包括分布式文件系统HDFS(Hadoop Distributed File System存储)+MapReduce(脚本+代码)为海量数据提供计算
所以hadoop主要解决海量数据的存储与分析计算问题
优点:
- 分布式,各个组件相互独立运行
- 集群搭建,防止单点故障
- 高效,在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度
做什么
- 数据获取,线索数据获取,例如埋点服务
- 数据整合,相应数据整合,客户及售卖数据等
- 数据分析,分析客户逻辑关系
- 数据展示,给销售人员展示并促成交易达成
Hive 数据仓库
基于hadoop的数据仓库,进行仓库数据分析。提供丰富的SQL查询方式来分析存储在hadoop上的数据。可以将结构化的数据映射成数据库表。将SQL语句转换成MapReduce任务进行运行,以此获取结果数据和分析结果。
不进行数据的增删改,只是将查询操作玩出花来
- 支持索引,优化查询效率
- 多种存储类型。文本、Hbase中的文件
- 缓存数据,进行k-v到关系型数据的转换
Hbase 分布式大数据存储数据库
区别于Mysql
- 分布式的,mysql是单机存储的,分布式需要借助binlog进行数据传输
- 大数据,单机的mysql注定不能支持每日1T的数据量存储
区别于es
- es也能存储大量数据,也可以使用索引快速获取数据。但是es的倾向更多的还是进行一种
检索的功能(讲个故事,为什么世界上有这么多编程语言,因为总有人想开发一种语言可以替代所有语言,所以就又多了一门编程语言)
区别于HDFS
- 能存储海量数据,但是进行查询的时候不太方便处理
Hbase是一个面向列存储的分布式存储系统。基于HDFS提供高可靠性、高性能、列存储、可伸缩、实时读写。牺牲一部分的一致性,仅支持单行事务(通过hive进行复杂处理)。
大数据发展史
起源于“三驾马车”:分布式文件系统 GFS、大数据分布式计算框架 MapReduce 和 NoSQL 数据库系统 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性能的问题
大数据离线计算:hadoop、spark。计算的数据都是以天为单位,数据来源也不是实时的
大数据实时计算:storm、Flink、Spark Streaming,处理一些类似监控、识别等逻辑。进行实时的数据比对和获取
大数据离线计算+大数据实时计算:使用批处理的方式处理大量的历史数据,使用流式计算处理实时新增的数据
基于HDFS从Hadoop中分离出来的NoSql——HBase