深入浅出的hive学习总结资料.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
set hive.exec.mode.local.auto=true; #hive --service hiveserver 10000 /dev/null 2/dev/null * Hive 中没有定义专门的数据格式,数据格式可以由用户指定,用户定 义数据格式需要指定三个属性:列分隔符(通常为空格、”\t”、”\x001″)、行 分隔符 (”\n”)以及读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)。由于在加载数据的过程中,不需要从用 用户数据格式到 Hive 定义的数据格式的转换,因此,Hive 在加载的过程中不会对数 据本身进行任何修改,而只是将数据内容复制或者移动到相应的 HDFS 目录中。而 在数据库中,不同的数据库有不同的存储引擎,定义了自己的数据格式。所有数据 都会按照一定的组织存储,因此,数据库加载数据的过程会比较耗时。 CREATE TABLE user_info_bucketed(user_id BIGINT, firstname STRING, lastname STRING) COMMENT A bucketed copy of user_info PARTITIONED BY(ds STRING) CLUSTERED BY(user_id) INTO 256 BUCKETS; set hive.enforce.bucketing = true; FROM user_id INSERT OVERWRITE TABLE user_info_bucketed PARTITION (ds=2009-02-25) SELECT userid, firstname, lastname WHERE ds=2009-02-25; 删除表时可能报错max key length is 1000 bytes 把mysql的数据库字符类型改为latin1 什么是Hive(一) Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL ,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。 什么是Hive(二) Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。 Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据。 Hive的系统架构 ?用户接口,包括 CLI,JDBC/ODBC,WebUI ?元数据存储,通常是存储在关系数据库如 mysql, derby 中 ?解释器、编译器、优化器、执行器 ?Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算 Hive的系统架构 用户接口主要有三个:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似 WebGUI是通过浏览器访问 Hive Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行 Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务) Hive的安装 启动 #hive hiveshow tables; hivecreate table test(id int,name string); hivequit; Hive的metastore metastore是hive元数据的集中存放地。metastore默认使用内嵌的derby数据库作为存储引擎 Derby引擎的缺点:一次只能打开一个会话 使用Mysql作为外置存储引擎,多用户同时访问 Hive运行模式 Hive的运行模式即任务的执行环境 分为本地与集群两种 我们可以通过mapred.job.tracker

文档评论(0)

yingzhiguo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档