Hive内部培训资料_第1页
Hive内部培训资料_第2页
Hive内部培训资料_第3页
Hive内部培训资料_第4页
Hive内部培训资料_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hive内部培训顺丰科技-系统与数据集成研发中心-数据集成研发部第一章第二章第三章第四章Hive是什么Hive特性

怎么用HiveHive的调优及发展Hive是什么?•Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。•本质是将HQL转换为MapReduce程序Hive关注以下几点:在Hadoop中的数据可扩展的SQL处理可扩展到100PB+结构化和非结构化数据---现阶段公司只是用到结构化的数据Hive的架构简介–在Hadoop生态圈的位置建立在Hive之上的交换层让传统DBA或者Java工程师轻松就能完成更多的工作最终转化成MapReduceJobHive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含*的查询,比如select*fromtbl不会生成MapRedcue任务)。Hive的架构简介–接口1、Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

2、解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。

3、Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含*的查询,比如select*fromtbl不会生成MapRedcue任务)。

Hive和普通关系数据库的异同

HiveRDBMS查询语言HQLSQL数据存储HDFSRawDeviceorLocalFS索引无有执行MapReduceExcutor执行延迟高低处理数据规模大小1、查询语言。专门设计了类SQL的查询语言HQL。熟悉SQL开发的开发者可以很方便的使用Hive进行开发。

2、数据存储位置。Hive的数据都是存储在HDFS中的。3、数据格式。Hive中没有定义专门的数据格式,数据格式可以由用户指定.4、数据更新。Hive中不支持对数据的改写即没有更新5、执行。Hive中大多数查询的执行是通过

MapReduce来实现的。

6、执行延迟。hive延迟较高。但由于MR框架大数据量的访问优势明显。

7、可扩展性。由于Hive是建立在Hadoop之上的,因此Hive的可扩展性是和Hadoop的可扩展性是一致的(Oracle在理论上的扩展能力也只有100台左右。

8、数据规模。由于Hive建立在集群上并可以利用MapReduce进行并行计算,因此可以支持很大规模的数据

第一章第二章第三章第四章Hive是什么Hive基本操作

怎么用HiveHive的调优及发展Hive基本操作–DDLCreate/Drop/AlterDatabaseCreate/Drop/AlterTableAlterTable/Partition/ColumnCreate/Drop/AlterViewCreate/DropIndexCreate/DropFunctionShowDescribeHive基本操作–托管表和外部表Hive默认创建ManagedTable,由Hive来管理数据,意味着Hive会将数据移动到数据仓库目录。另外一种选择是创建ExternalTable,这时Hive会到仓库目录以外的位置访问数据。如何选择?如果所有处理都由Hive完成,应该使用ManagedTable。如果要用Hive和其它工具来处理同一个数据集,应该使用ExternalTables。托管表外部表CREATE/LOAD把数据已到仓库目录创建表时指明外部数据的位置DROP元数据和数据会被一起删除只删除元数据Hive基本操作–DATABASE在Hive中创建数据库及托管表(内部表)1、登录进入Hivesudo-uhdfshive;2、查看数据库showdatabases;3、创建数据库createdatabaseifnotexistsabc_test;4、进入abc_test数据库useabc_test;5、查看数据库下所有的表showtables;6、创建托管表(内部表:删除表,数据同时被删除)droptableifexistsabc_table_01;createtableabc_table_01(

idintcomment'序列',

namestringcomment'名称')comment'创建托管表(内部表)'rowformatdelimitedfieldsterminatedby'\001';7、查看表结构

descformattedabc_table_01;Hive基本操作–PartitionHive外部表与分区表建立。1、创立外部表(删除外部表,数据不会被删除)droptableifexistsabc_table_02;createexternaltableabc_table_02(

idintcomment'序列',

namestringcomment'名称')comment'创建外部表'rowformatdelimitedfieldsterminatedby'\001'location'/test/fin_abc/fin_abc/fct/abc_table_02';2、创建立分区表

droptableifexistsabc_table_03;createexternaltableabc_table_03(

idintcomment'序列',

namestringcomment'名称')comment'创建外部表'partitionedby(hq_month_codestring)rowformatdelimitedfieldsterminatedby'\001'location'/test/fin_abc/fin_abc/bsl/abc_table_03';3、添加分区

altertableabc_table_03addpartition(hq_month_code='201501')location'/test/fin_abc/fin_abc/bsl/abc_table_03/201501';Hive基本操作–TABLEOPERATINGHive数据库和表的DDL操作1、修改表名

altertableabc_table_01renametoabc_table_01_new;2、添加字段(不能删除字段)

altertableabc_table_01_newaddcolumns(abcstring);3、修改字段

altertableabc_table_01_newchangeabcnew_abcstring;4、删除分区

altertableabc_table_03droppartition(hq_month_code='201501');5、查看分区showpartitionsabc_table_03;6、删除表

droptableabc_table_01_new;7、删除数据库

dropdatabaseifexistsabc_testcascade;Hive基本操作–TABLEOPERATINGHive表的DML操作1、插入数据insertoverwritetableabc_table_01selectcount(*)asid,'test1'fromabc_table_01;insertintotableabc_table_01select1asid,'test12'fromabc_table_01;2、查询数据

selecta.*fromabc_table_01a;

selecta.*fromabc_table_01alimit10;注意:1、Hive支持并行插入。2、Hive不支持不等值连接。

3、Hive中没有控制语句如for、ifelse、while等。Hive基本操作–DMLLoadingfilesintotablesInsertingdataintoHiveTablesfromqueriesWritingdataintothefilesystemfromqueriesNote:MultipleInsertHive基本操作–QueriesWHEREClauseALLandDISTINCTClausesPartitionBasedQueriesHAVINGClauseLIMITClauseREGEXColumnSpecificationhttps:///confluence/display/Hive/LanguageManual+SelectHive基本操作–QueriesJoinInnerjoinHive只支持等值连接;JOIN子句中表的顺序很重要,一般最好将最大的表在最后;Outerjoin外连接可以让你找到连接表中不能匹配的数据行;Semijoin目前并不支持IN子查询,可以使用LEFTSEMIJOIN达到相同效果(右表最能在ON子句中出现);Mapjoin该查询Job没有reducer;使用时充分利用BucketedTable,需要设置hive.optimize.bucketmapjoin为true;慎重使用!第一章第二章第三章第四章Hive是什么Hive基本操作

怎么用HiveHive的调优及发展Hive使用–以Mc为例数据准备定义数据仓库放置目录:HDFS目录/user/cloudil/cdr/bssap/20120717/bssap

-协议类型

20120717-年月日(开始时间)

以bssap为例,自行管理仓库数据,按天查询创建分区;建表(支持按时间分区的外部表)加载数据LOADDATAINPATH'/user/cloudil/bssap-2012-08-05-09/'INTOTABLEbssapPARTITION(date='20120805');数据应用查询与ET

第一章第二章第三章第四章Hive是什么Hive基本操作

怎么用HiveHive的调优及发展Hive调优–数据存储模型数据库(database)表(table)表(table)倾斜数据正常数据分区分区桶桶桶桶Hive调优-存储格式• Built-inFormats:– Parquet– ORCFile– RCFile– Avro– DelimitedText– RegularExpression– S3Logfile– TypedBytes• 3rd-PartyAddons:– JSON– XMLHive调优–参数以下常用设置set=fin_abc;--指定对列set=fin_abc;sethive.fetch.task.conversion=more;--对于简单的不需要聚合的类似SELECT不需要起MapReduce.sethive.cli.print.header=true;--打印列名sethive.exec.reducers.max=200;--最大reducers数setpress.output=false;--控制hive的查询结果输出是否进行压缩,默认不压缩false;setermediate=true;--决定查询的中间map/reduce的输出是否为压缩setmapred.max.split.size=1000000000;--每个map的最大输入大小,该值约小,map数越多;setmapred.min.split.size.per.node=1000000000;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论