【技术领悟】Hive HBase 区别 2020_1_11

区别结论
	服务架构上
		Hive是Hadoop(HDFS+YARN)生态中的数据仓库·计算框架(YARN.MR是它的机械手臂/可换)(单机查询)
		HBase则是一整套正规军(HMaster+HRegionServer+ZooKeeper)高可用分布式NoSQL数据库服务基于HDFS存储
	物理存储上
		Hive只是读取HDFS文件标记类型并维护一个元数据库(对于Hadoop数据仓库内的结构性数据)
		HBase则是将输入数据解析然后转换成自己独特的Cell{rowKey,column,version}/KV存储结构(k=RowKey+CF+CQ+TS+T)
	查询语法上
		Hive支持标准SQL查询
		HBase不支持SQL,有自己的语法规则
	查询速度上
		Hive使用YARN架构的MR计算体系(文件以行切分读取处理输出),m分钟级,缓慢
		HBase使用Key-Value的形式,s秒级,接近实时要求
	表结构上
		Hive仍然是传统RDBMS.database+table+columnqualify二维表概念
		HBase则是NoSQL.Namespace+table+ColumnFamily+ColumnQualify,新增列族概念[建表后列可动态扩展]
	开发目的
		Hive存在意义 => 让程序员能够通过SQL来分析统计HDFS上的结构化数据[修改某行某列数据,都要跑MR等待20-30s左右]
		HBase存在意义 => 高可用,分布式,可横向扩展,超大型表(数十亿行X数百万列)存储以及进行随机,实时的读/写访问

是什么
	Hive 是 对存储至HDFS离线批量数据 SQL标准/替代MR(Driver/Map/Reduce)代码的 运算操作集合
	HBase 是 存储 超大型表(数十亿行X数百万列)数据集合 数据库服务

使用关系
	源数据生产者 -Flume/Kafka-> Flume/消费者 -write-> HDFS -Hive.load-> Hive -ETL/Analyze-> HBase
	源数据生产者 -Kafka-> SparkStreaming/消费者 -write-> HDFS [-SparkSQL-> Hive] && [-SparkSQL-> HBase]

技术演变
	Hive(MR计算引擎) => Hive(Tez引擎) => Spark计算引擎(多种数据源不仅Hive,仍使用YARN)
	Hive只适合海量结构性数据查询分析统计 => HBase可随机查询修改CRUD超大型表某行某列

你可能感兴趣的:(技术领悟)