欢迎来到天天文库
浏览记录
ID:21660463
大小:761.67 KB
页数:24页
时间:2018-10-20
《hive内部培训资料》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Hive内部培训顺丰科技-系统与数据集成研发中心-数据集成研发部第一章第二章第三章第四章Hive是什么Hive特性怎么用HiveHive的调优及发展Hive是什么?•Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。•本质是将HQL转换为MapReduce程序Hive关注以下几点:在Hadoop中的数据可扩展的SQL处理可扩展到100PB+结构化和非结构化数据---现阶段公司只是用到结构化的数据Hive的架构简介–在Hadoop生态圈的
2、位置建立在Hive之上的交换层让传统DBA或者Java工程师轻松就能完成更多的工作最终转化成MapReduceJobHive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。Hive的数据存储在HDFS中,大部分的查询由MapReduce
3、完成(包含*的查询,比如select*fromtbl不会生成MapRedcue任务)。Hive的架构简介–接口1、Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。2、解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。3、Hive的数据存储在HDFS中,大部分的查询由MapRed
4、uce完成(包含*的查询,比如select*fromtbl不会生成MapRedcue任务)。Hive和普通关系数据库的异同HiveRDBMS查询语言HQLSQL数据存储HDFSRawDeviceorLocalFS索引无有执行MapReduceExcutor执行延迟高低处理数据规模大小1、查询语言。专门设计了类SQL的查询语言HQL。熟悉SQL开发的开发者可以很方便的使用Hive进行开发。2、数据存储位置。Hive的数据都是存储在HDFS中的。3、数据格式。Hive中没有定义专门的数据格式,数据格式
5、可以由用户指定.4、数据更新。Hive中不支持对数据的改写即没有更新5、执行。Hive中大多数查询的执行是通过MapReduce来实现的。6、执行延迟。hive延迟较高。但由于MR框架大数据量的访问优势明显。7、可扩展性。由于Hive是建立在Hadoop之上的,因此Hive的可扩展性是和Hadoop的可扩展性是一致的(Oracle在理论上的扩展能力也只有100台左右。8、数据规模。由于Hive建立在集群上并可以利用MapReduce进行并行计算,因此可以支持很大规模的数据第一章第二章第三章第四章H
6、ive是什么Hive基本操作怎么用HiveHive的调优及发展Hive基本操作–DDLCreate/Drop/AlterDatabaseCreate/Drop/AlterTableAlterTable/Partition/ColumnCreate/Drop/AlterViewCreate/DropIndexCreate/DropFunctionShowDescribeHive基本操作–托管表和外部表Hive默认创建ManagedTable,由Hive来管理数据,意味着Hive会将数据移动到数据仓库
7、目录。另外一种选择是创建ExternalTable,这时Hive会到仓库目录以外的位置访问数据。如何选择?如果所有处理都由Hive完成,应该使用ManagedTable。如果要用Hive和其它工具来处理同一个数据集,应该使用ExternalTables。托管表外部表CREATE/LOAD把数据已到仓库目录创建表时指明外部数据的位置DROP元数据和数据会被一起删除只删除元数据Hive基本操作–DATABASE在Hive中创建数据库及托管表(内部表)1、登录进入Hivesudo-uhdfshive;2
8、、查看数据库showdatabases;3、创建数据库createdatabaseifnotexistsabc_test;4、进入abc_test数据库useabc_test;5、查看数据库下所有的表showtables;6、创建托管表(内部表:删除表,数据同时被删除)droptableifexistsabc_table_01;createtableabc_table_01(idintcomment'序列',namestringcomment'名称')comment'创建托管表(内
此文档下载收益归作者所有