《大数据平台部署与运维》课件-分布式数据仓库技术Hive_第1页
《大数据平台部署与运维》课件-分布式数据仓库技术Hive_第2页
《大数据平台部署与运维》课件-分布式数据仓库技术Hive_第3页
《大数据平台部署与运维》课件-分布式数据仓库技术Hive_第4页
《大数据平台部署与运维》课件-分布式数据仓库技术Hive_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

《大数据平台部署与运维》《大数据平台部署与运维》课程组Hadoop理论概述学习目标了解Hive的产生背景及其组成

掌握Hive的安装设置

了解HQL的相关知识

1Hive表定义目录Hive概述3Hive查询4Hive安装配置2Hive概述Hive的产生背景Facebook是美国的一个社交网站,于2004年2月4日上线。主要创始人为美国人马克·扎克伯格。Facebook是世界排名领先的照片分享站点。Hive概述Hive的产生背景2008年3月,FaceBook(脸书)评价每天产生200GB数据2008年10月,数据已经达到了每天2+TB,并且是压缩的该怎么管理和分析呢???解决方案:使用Hadoop--提供更好的可用性--提供更好的扩展性--在提供多台机器的时候,效率有一定提升Hive概述Hive的产生背景使用Hadoop行不行???BUT!依然面临的问题:专业人才短缺以及统一数据管理需求--编写Map-Reduce程序学习成本高--现有员工基本都熟悉sql语言--需要一个元数据管理模块来管理数据Hive概述Hive的产生背景干脆自己开发!!!Hive最初是由Facebook设计的,是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的类SQL查询语言(称为HiveQL)。底层将HiveQL语句转换为MapReduce任务运行,它允许熟悉SQL的用户基于Hadoop框架分析数据。优点是学习成本低,对于简单的统计分析,不必开发专门的MapReduce程序,直接通过HiveQL即可实现。Hive概述Hive简介Hive概述Hive架构类型描述举例基础数据类型TINYINT1byte有符号整型20SMALLINT2byte有符号整型20INT4byte有符号整型20BIGINT8byte有符号整型20BOOLEAN布尔类型TrueFLOAT单精度浮点型3.14159DOUBLE双精度浮点型3.14159STRING(CHAR、VARCHAR)字符串‘helloworld’TIMESTAMP(DATE)时间戳1327882394BINARY字节数组01复杂数据类型ARRAY一组有序字段,字段的类型必须相同user[1]MAP一组无序的键/值对,键的类型必须是原子的,值可以是任何类型。同一个映射的键类型必须相同,值类型也必须相同user[‘name’]STRUCT一组命名的字段,字段类型可以不同user.ageHive概述Hive的数据类型Hive概述Hive跟传统数据库的对比HiveMySQL查询语言HQLSQL数据存储HDFS本地文件系统执行MapReduce执行引擎执行延迟高低处理数据规模大小数据更新不支持支持模式读模式写模式日志分析:大部分互联网公司使用hive进行日志分析,包括百度、淘宝等。统计网站一个时间段内的pv、uv多维度数据分析海量结构化数据离线分析Hive概述Hive应用Hive安装与配置master192.168.128.130NameNode/ResourceManager/slave1slave2slave3192.168.128.131DataNode/NodeManager192.168.128.132DataNode/NodeManager192.168.128.133DataNode/NodeManagerRunJar确认已经安装好Hadoop和MySQLHive安装配置把安装包上传到/opt目录下解压安装包到/usr/local/目录下进入到Hive的安装目录的conf目录下,修改hive-env.sh文件Hive安装配置在MySQL中新建hive数据库Hive安装配置将hive-site.xml文件上传到Hive安装目录的conf目录下Hive安装配置上传MySQL驱动到Hive安装目录的lib目录下替换Hadoop的jline-0.9.94.jar为jline-2.12.jarHive安装配置在/etc/profile文件中添加Hive的环境变量启动HiveHive安装配置启动Hive之前先启动Hadoop集群Hive安装配置启动远程服务HiveQL是一种类SQL语言,用于分析存储在HDFS中的数据。不支持事务及更新操作,延迟比较大。HiveQL语句通过解释器转换为MapReduce作业提交到Hadoop集群上。HiveQL执行方式:

hive命令行hive–eHive语句hive–fHive脚本Hive表定义HQL语句简介执行shell命令用户不需要退出hiveCLI就可以执行简单的bashshell命令。只要在命令前加上!并且以分号(;)结尾就可以在Hive中使用Hadoop的dfs命令Hive表定义HQL语句简介Hive表定义数据库操作Hive表定义创建表的语法CREATE[EXTERNAL]TABLE[IFNOTEXISTS][db_name.]table_name[(col_namedata_type[COMMENTcol_comment],...)][PARTITIONEDBY(col_namedata_type,...)][CLUSTEREDBY(col_name,col_name,...)[SORTEDBY(col_name[ASC|DESC],...)]INTOnum_bucketsBUCKETS][ROWFORMATrow_format][STOREDASfile_format][LOCATIONhdfs_path]Hive表定义创建内表创建外表创建静态分区表创建动态分区表创建带有数据的表Hive表分类在train数据库下创建表person,表的结构如下idint类型namestring类型ageint类型Hive表定义创建内表创建Hive外部表external_person,指定HDFS的路径为/user/root/external/person,表的结构如下idint类型namestring类型ageint类型Hive表定义创建外表现有一份数据student_part.txt,如下图所示。该数据表示某学校某年级ClassA班的成绩,数据有三个字段,分别为id,name,score。创建Hive静态分区表student_part,指定分区字段为班级classHive表的定义创建静态分区表Hive表的定义创建静态分区表已知数据student_part.txt是属于班级ClassB的数学成绩,需要把数据归档到某个班级某个科目的分区下,Hive创建静态分区表是如何指定多个分区?Hive定义创建静态分区表已知数据students.txt记录了某个年级的信息,包括2a,2b,3a,3c这4个班级的成绩,要求创建动态分区表,把每个班级的成绩存储到对应的分区里数据如图所示Hive表定义创建动态分区表第一步:创建普通表student第二步:导入数据到student表Hive表定义创建动态分区表第三步:创建动态分区表student_dynamicHive表定义创建动态分区表第四步:导入数据到student_dynamicHive表定义创建动态分区表对应关系Hive表定义创建动态分区表创建stu表,从student表查询数据并导入到stu表Hive表定义创建带有数据的表Hive查询detpno部门编号dname部门名称loc位置empnoempno员工编号ename员工姓名job职位mgr对应的上司编号hiredate入职日期sal工资commdeptno部门编号grade工资等级losal最低工资hisal最高工资dept表emp表salgrade表Hive查询创建表dept,emp和salgrade将数据emp.txt导入到表emp将数据dept.txt导入到表dept将数据salgrade.txt导入到表salgradeHive查询Hive查询HiveQL查询的基本语法SELECT[ALL|DISTINCT]字段列表(字段1别名,....)FROM表1别名,表2别名,....WHERE条件….GROUPBY分组字段HAVING(组约束条件)ORDERBY排序字段1Asc|Desc,字段2Asc|Desc,.....[CLUSTERBY字段|[DISTRIBUTEBY字段][SORTBY字段]]LIMITM,N;查询emp中所有的部门编号查询emp中相同部门不同职位的部门职位信息Hive查询distinct去重查询将部门编号不为10的所有员工按员工编号升序排列Hive查询orderby查询查询结果deptno不包含10,且数据是根据empno降序排序将所有员工先按部门编号升序,当部门一样时,再按姓名降序排Hive查询orderby查询查询结果先按部门编号升序排序,当部门一样时,再按姓名降序排序Hive查询内置函数内置函数minmaxround其他avgcount查看emp表中平均薪水是多少并对其四舍五入保留两位小数显示统计emp表中有多少个不重复部门Hive查询内置函数查询emp表平均薪水大于2000的部门编号、平均薪水Hive查询groupby分组查询groupby按照其后的字段分组,可使用多个字段进行分组。通常配合having使用,having后面的条件是对组的约束。同时SELECT子句中的字段必须是分组中的字段或分组函数查询emp表薪水大于2500的员工姓名及所在部门名称Hive查询join连接查询LEFT[OUTER

温馨提示

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

评论

0/150

提交评论