hive和Hadoop、spark、HDFS、Hbase是什么?
hive是基于hadoop的ETL(加载)数据仓库工具。Hive定义了一种类似SQL的查询语言,被称为HQL; Apache Hive™数据仓库软件便于读取、写入和管理存储在分布式Hadoop存储中的大型数据集,并使用SQL语法进行查询。Hive目前还不支持事务;不能对表数据进行修改(不能更新、删除、插入;只能通过文件追加数据、重新导入数据);不能对列建立索引(但是Hive支持索引的建立,但是不能提高Hive的查询速度。如果你想提高Hive的查询速度,请学习Hive的分区、桶的应用)。hive:基于hadoop的数据仓库工作,可以将结构性的数据映射成一张数据库表,提供HiveQL语句(类sql),并将其转化为mapreduce任务运行在hadoop上。hive不支持数据更新,只可以读,不可以。数据规模:hive存储的数据量超级大,而mysql只是存储一些少量的业务数据;
HDFS是文件系统 用来装数据的,hive是用来调用计算引擎操作数据的,HDFS是Hadoop的分布式存储文件系统;hive采用的计算引擎是Hadoop的mapreduce(从hdfs中处理数据);spark也是类似于mapreduce的计算引擎;DFS(HadoopDistributedFileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。HDFS为你管理这些数据。
Hadoop分布式处理框架,用多台廉价的计算机组成集群,替代传统的服务器。每台机器都可以存储和计算。里面包含:hdfs、mapreduce;
1.数据文件被分成多个块存储在各个计算机上,提供冗余备份机制。这样,单台计算机坏掉数据也不会丢失。这就是HDFS分布式文件存储系统。
2.hadoop集群上的每台计算机都有自己的cpu,充分利用这些cpu进行并行计算。可以理解为一个计算任务被拆分为多个部分,分配到集群下的计算机上,多台机器并行计算然后再将结果汇总。这就是mapreduce。
Hbase类似于hive也是数据仓库;
hadoop:一个大脑加一个口袋构成一个单体,大脑负责计算数据,口袋负责存储数据。多个单体构成集群。
hive:使用HiveQL语句,将其转化成MapReduce任务,让多个大脑同时计算存储在多个口袋里的数据。
spark:多个更聪明的大脑组成的集群,计算存储在hadoop集群上的数据。计算速度很快,可以进行实时的应用。