大数据平台架构
1、hive介绍
Hive
基于Hadoop的一个数据仓库工具,构建于hadoop的hdfs和mapred之上,用于管理和查询结构化/非结构化数据的数据仓库。可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
Hive将HQL语句转译成M/R Job,然后按照MR的计算框架在Hadoop执行,也可以把HQL中的表、字段转换为HDFS中的文件(夹)以及文件中的列。这套映射工具称之为metastore
Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据。
Hive作用
Hvie降低了数据人员使用MR的门槛,使得分布式计算通过类SQL的操作即可实现,对大数据应用发展起到了很多的推动作用。
Hive本质
本质是将HQL转换为MapReduce程序的工具;不属于google核心论文内容。(dfs、mr、bigtable);由facebook开发并开源。
特点:
- 使用HQL作为查询接口
- 使用HDFS作为底层存储
- 使用MapRed作为执行层
- 可扩展到100PB+
- 统一的元数据管理
Hive与HBase对比
共同点
- 1.HBase与Hive都架构在Hadoop之上,都是用hdfs作为底层存储。
- 2.职能上都能对外提供表形式的数据查询等服务。
区别
- 1.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
- 2.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表是纯逻辑表,是对hdfs文件的一种记录方式。
- 3.Hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
2、Hive基础知识
连接bigdata 元数据库
例如:
从/usr/local/hive/conf/hive-site.xml找ConnectionUserName和ConnectionPassword(hive/hive2017)
跳到bigdata003
mysql -u hive -phive2017 -D hive
查看hive版本:
mysql> select * from VERSION;
查看有哪些表:
mysql> select * from TBLS \G;
查看表对应的hdfs目录的metedata:
mysql> select * from SDS \G;
查看某个表的partitions:
mysql> select * from PARTITIONS where TBL_ID=1 \G;
查看某个表的列:
mysql> select * from COLUMNS_V2;
查看某个表的partition:
mysql> select * from PARTITION_KEYS;
一些基本操作: