Hive基础.PPT

上传人:工**** 文档编号:591355599 上传时间:2024-09-17 格式:PPT 页数:19 大小:1.11MB
返回 下载 相关 举报
Hive基础.PPT_第1页
第1页 / 共19页
Hive基础.PPT_第2页
第2页 / 共19页
Hive基础.PPT_第3页
第3页 / 共19页
Hive基础.PPT_第4页
第4页 / 共19页
Hive基础.PPT_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Hive基础.PPT》由会员分享,可在线阅读,更多相关《Hive基础.PPT(19页珍藏版)》请在金锄头文库上搜索。

1、Page0Hive基础Page112Hive结构结构Hive基础操作基础操作目录目录3Hive的的MAP/RED34山东现场实际应用山东现场实际应用Page2Hive结构图数据数据存储存储lHive数据以文件形式存储在HDFS的指定目录下lHive语句生成查询计划,由MapReduce调用执行用户用户接口接口l解析器:生成抽象语法树l语法分析器:验证查询语句l逻辑计划生成器(包括优化器):生成操作符树l查询计划生成器:转换为map-reduce任务lCLI:启动的时候,会同时启动一个Hive副本lClient:Hive的客户端,用户连接至HiveServerlWUI:通过浏览器访问Hive语句

2、语句转换转换Page3Hive元数据表名说明关联键BUCKETING_COLSHive表CLUSTEREDBY字段信息(字段名,字段序号)SD_ID,INTEGER_IDXCOLUMNS_V2Hive表字段信息(字段注释,字段名,字段类型,字段序号)CD_IDDBS元数据库信息,保存HDFS中存放hive表的路径DB_IDPARTITION_KEYSHive分区表分区键TBL_IDSDS所有hive表、表分区所对应的hdfs数据目录和数据格式。SD_ID,CD_IDSD_PARAMS序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等SD_IDSEQUENCE_TABLE 保存了hi

3、ve对象的下一个可用IDSERDES指定ROWFORMATSERDE的类型,即序列化时的一些参数SERDE_PARAMS序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等SERDE_IDTABLE_PARAMS表级属性,如是否外部表,表注释等TBL_IDTBLS所有hive表的基本信息TBL_ID,SD_IDl元数据存储在关系数据库如mysql,derby,oracle中l解析用户提交hive语句,对其进行解析,分解为表、字段、分区等hive对象l根据解析到的信息构建对应的表、字段、分区等对象,从SEQUENCE_TABLE中获取构建对象的最新ID,与构建对象信息(名称,类型等)一

4、同写入到元数据表中去,成功后将SEQUENCE_TABLE中对应的最新ID+5。Page4Hive 和普通关系数据库的异同数据存储数据存储数据格式数据格式数据更新数据更新执行延迟lHive是建立在Hadoop之上的,所有Hive的数据都是存储在HDFS中的。l数据库则可以将数据保存在块设备或者本地文件系统中uHive中没有定义专门的数据格式,由用户指定,需要指定三个属性:列分隔符,行分隔符,以及读取文件数据的方法u数据库中,存储引擎定义了自己的数据格式。所有数据都会按照一定的组织存储Hive在查询数据的时候,需要扫描整个表(或分区),因此延迟较高,因此hive只有在处理大数据时才有优势数据库在

5、处理小数据时执行延迟较低HiveVSRDBMSnHive的内容是读多写少的因此,不支持对数据的改写和删除,数据都是在加载的时候中确定好的n数据库中的数据通常是需要经常进行修改Page512Hive结构结构Hive基础操作基础操作目录目录3Hive的的MAP/RED34山东现场实际应用山东现场实际应用Page6Hive客户端CLILoad,Insertusage:hive-d,-define-e-f-h-hiveconf-hivevar-i-S,-silent-v,-verboseCommand Description quitexitUsequitorexittoleavetheinterac

6、tiveshell.resetResetstheconfigurationtothedefaultvalues(asofHive0.10:seeHIVE-3202).set=Setsthevalueofaparticularconfigurationvariable(key).Note:Ifyoumisspellthevariablename,theCLIwillnotshowanerror.setPrintsalistofconfigurationvariablesthatareoverriddenbytheuserorHive.set-vPrintsallHadoopandHiveconf

7、igurationvariables.addFILES*addJARS*Addsoneormorefiles,jarstothelistofresourcesinthedistributedcache.listFILESlistJARSListstheresourcesalreadyaddedtothedistributedcache.listFILES*listJARS*Checkswhetherthegivenresourcesarealreadyaddedtothedistributedcacheornot.deleteFILES*deleteJARS*Removestheresourc

8、e(s)fromthedistributedcache.!ExecutesashellcommandfromtheHiveshell.dfsExecutesadfscommandfromtheHiveshell.ExecutesaHivequeryandprintsresultstostandardoutput.sourceFILEExecutesascriptfileinsidetheCLI.Page7DDLDMLuCreate/DropDatabaseuCreate/DropTableuAlterTable/PartitionuCreate/DropViewuCreate/DropFunc

9、tionuCreate/DropIndexuShow/DescribeCREATETABLEa_test_ms(op_timestring,event_namestring)PARTITIONEDBY(pt_time_string)ROWFORMATDELIMITEDFIELDSTERMINATEDBYtSTOREDASTEXTFILELOCATIONhdfs:/ocdccluster/asiainfo/SDDW/ODS/a_test_ms;uLoad语法:语法:LOADDATALOCALINPATHfilepathOVERWRITEINTOTABLEtablenamePARTITION(pa

10、rtcol1=val1,partcol2=val2.)uLoad操作只是单纯的复制操作只是单纯的复制/移动操作,将数据文件移动到移动操作,将数据文件移动到Hive表对应的位置表对应的位置。uFilepath可以是本地路径,也可以是可以是本地路径,也可以是HDFS的路径的路径u加加载的目标可以是一个表或者分区载的目标可以是一个表或者分区(静态分区)(静态分区)。如果表包含分。如果表包含分区,必须指定每一个分区的分区名区,必须指定每一个分区的分区名u在在load时时hive会检查加载的数据文件与建表时会检查加载的数据文件与建表时指定指定的的file_type是否是否匹配匹配uInsert语法:语法

11、:INSERTINTO/OVERWRITETABLEtablename1PARTITION(partcol1=val1,partcol2=val2.)select_statement1FROMfrom_statement;uINSERTOVERWRITELOCALDIRECTORYdirectory1SELECT.FROM.uInser语句可以把语句可以把select语句查询出来的记录插入到目标表中,语句查询出来的记录插入到目标表中,也可以把查出的记录以文件的形式导出到本地也可以把查出的记录以文件的形式导出到本地Page8SelectJoinsu语法:语法:SELECTALL|DISTINCT

12、select_expr,select_expr,.FROMtable_referenceWHEREwhere_conditionGROUPBYcol_listCLUSTERBYcol_list|DISTRIBUTEBYcol_listSORTBYcol_listLIMITnumberugroup:进行聚合:进行聚合uorderby:全局排序,一个:全局排序,一个reducesortby:单机排序,多个:单机排序,多个reduceuDISTRIBUTEBY:按照指定的字段对数据进行划分到不:按照指定的字段对数据进行划分到不同的输出同的输出reduce/文件中。与文件中。与sortby配合使用,避

13、免配合使用,避免数数据的重叠和丢失据的重叠和丢失CLUSTERBY:等于:等于DistributeBy+SortBy,倒序排序倒序排序u语法语法:table_referenceJOINtable_factorjoin_condition|table_referenceLEFT|RIGHT|FULLOUTERJOINtable_referencejoin_condition|table_referenceLEFTSEMIJOINtable_referencejoin_condition|table_referenceCROSSJOINtable_referencejoin_condition(a

14、sofHive0.10)uHive只支持等值连接(只支持等值连接(equalityjoins)、外连接)、外连接(outerjoins)和()和(left/rightjoins)。)。uHive支持多于支持多于2个表的连接。个表的连接。uLEFTSEMIJOIN是是IN/EXISTS子查询的一种更高效子查询的一种更高效的实现的实现Page912Hive结构结构Hive基础操作基础操作目录目录3Hive的的MAP/RED34山东现场实际应用山东现场实际应用Page10JOINMap:l以ON条件中的列作为Key,如果有多个列,则Key是这些列的组合l以JOIN之后所关心的列作为Value,当有多

15、个列时,Value是这些列的组合。l按照Key进行排序。Shuffle:l根据Key的值进行Hash,并将Key/Value对按照Hash值推至不同对的Reduce中。Reduce:lReducer根据Key值进行Join操作语句:SELECTa.pageid,b.ageFROMpage_viewaJOINuserbON(a.userid=b.userid);Page11GROUPBY语句:SELECTpageid,age,count(1)FROMpv_usersGROUPBYpageid,age;Page12数据量大不是问题,数据倾斜是数据量大不是问题,数据倾斜是个问题。个问题。jobs数比

16、较多的作业运行效率相数比较多的作业运行效率相对比较低。对比较低。count(distinct)效率较低效率较低计算框架计算框架优化手段优化手段Join优化优化不要求全局有序时使用不要求全局有序时使用DistributeBy+SortBy来排序来排序如果全局有序是为了得到排名靠前如果全局有序是为了得到排名靠前的结果,刚使用的结果,刚使用limit子句子句来来减少数减少数据量。据量。解决数据倾斜问题。解决数据倾斜问题。减少减少job数。数。设置合理的设置合理的mapreduce的的task数数对小文件进行合并对小文件进行合并使用使用MAPJOIN()会将较小的表会将较小的表加加载到内存中,载到内存

17、中,使使连结过程连结过程在在Map阶阶段完成段完成Hive优化排序优化排序优化Page1312Hive结构结构Hive基础操作基础操作目录目录3Hive的的MAP/RED34山东现场实际应用山东现场实际应用Page14Page15节点HQLOCDC平台平台HQL执行步骤执行步骤后台调度10.17.254.12hiveServer服务10.17.254.12Map/reduce从OCDC平台的执行监控中,可以找到HQL对应的jobid,通过jobid可以在jobtracker的监控页面(http:/10.17.254.18:50030/jobtracker.jsp)找到对应的jobPage16J

18、ob执行信息查看执行信息查看在jobtracker的监控页面(http:/10.17.254.18:50030/jobtracker.jsp)点击job,即可进入此job对应的执行页面监控,如下:Page17Job执行日志查看执行日志查看其对应的日志在后台的位置为其对应的日志在后台的位置为:点击map点击task点击日志注:点击日志后的页面地址需要将hostname更新为对应的IP地址查找执行日志步骤查找执行日志步骤:ocdcOCDC-DATA-003attempt_201403121855_35592_m_000000_0$pwd/home/ocdc/app/mr1/logs/userlogs/job_201403121855_35592/attempt_201403121855_35592_m_000000_0Page18

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号