




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hadoop大数据项目开发——Hive概述目录content02Hive支持的文件存储格式01Hive简介03Hive特点Hive简介Hive是构建在Hadoop上的数据仓库Hive是Hadoop的顶级项目之一Hive可以将Hive查询语句解析成MapReduce作业Hive不适合实现复杂的机器学习算法等Hive适合批量处理海量数据。Hive并非数据库。Hive的数据存储在HDFSHive支持的文件存储格式文本文件(TextFile)该格式是Hive默认的存储格式。文本文件格式简单,但用它存储的数据会占用大量的磁盘空间。序列文件(SequenceFile)该格式文件存储的数据是有序键值对,并具有可分割和可压缩的特点。列式记录文件(RCFile)使用该格式存储数据时,先对数据水平切分,再做垂直切分。Hive的特点操作接口采用类SQL语法,提供快速开发的能力。Hive优势在于处理大数据Hive支持用户自定义函数优点缺点Hive的HQL表达能力有限Hive的效率比较低Hive延时较高本章小结本节介绍了Hive,包括Hive简介,Hive支持的文件存储格式和Hive特点,相信大家对Hive有了全新的认识。Hadoop大数据项目开发——MySQL安装目录content01MySQL安装02MySQL授权MySQL安装步骤由于Hive的元数据需要保存在关系型数据库MySQL中,本节将介绍如何在CentOS环境下安装MySQL,以便用它来保存Hive的元数据。MySQL安装步骤查询Mariadb步骤1卸载Mariadb步骤2MySQL安装步骤Xshell中的文件传输拖到文件传输窗口查看MySQL安装包步骤3MySQL安装步骤安装MySQL步骤4MySQL安装步骤启动服务和查看服务状态步骤5启动MySQL服务查看MySQL服务状态MySQL安装步骤查询初始密码步骤6:查询密码命令MySQL安装步骤启动HBase步骤7:输入/var/log/mysqld.log文件中查询到的默认root用户登录密码输入新密码Password123$输入新密码Password123$输入新密码Password123$输入新密码Password123$初始化命令MySQL授权登录到MySQL命令输入新设定的密码Password123$MySQL授权本章小结本节介绍了MySQL的安装,相信大家对Linux操作系统下安装MySQL有了全新的认识,为我们后续学习Hive打下来基础。Hadoop大数据项目开发——Hive安装与验证目录content0201Hive安装Hive验证Hive安装步骤Xshell中的文件传输拖到文件传输窗口查看Hive安装包步骤1Hive安装步骤解压Hive安装包命令Hive系统环境变量步骤2步骤3重命名命令步骤4编辑profile文件步骤5使profile文件生效Hive安装步骤步骤6hive-site.sh文件内容Hive安装步骤步骤7将mysql驱动jar包上传到Hive的安装目录的lib中Hive验证启动HiveHive验证Hive的元数据信息表本章小结本节介绍了Hive的安装与配置,相信大家已经掌握了Hive的安装与配置,为我们后续学习Hive表操作打下了坚实的基础。Hadoop大数据项目开发——Hive安装与验证目录content0201Hive安装Hive验证Hive安装步骤步骤1:使用Xshell的文件传输功能,将下载的Hive安装包传到虚拟机master中,点击Xshell中的文件传输,然后将Hive安装包直接拖到文件传输窗口即可,此时可以切换到文件传输路径;Hive安装步骤Hive安装步骤使用查看命令,查看Hive安装包是否已经传输成功。Hive安装步骤步骤2:在虚拟机master上安装Hive,解压Hive安装包即可,解压命令如下所示:步骤3:为了配置Hive系统环境变量方便,此处可以修改目录名,命令如下:Hive安装步骤步骤4:配置Hive系统环境变量,修改文件/etc/profile,执行以下命令:在文件的末尾添加如下内容:步骤5:profile文件配置完成之后,需要使刚刚修改的内容生效,执行如下命令:Hive安装步骤步骤6:修改Hive的配置文件:新建hive-site.xml配置文件配置文件位于Hive安装目录下的conf目录下面,在该目录下可以使用自带hive-default.xml.template文件,由于该文件中内容较多,本课程中使用新建hive-site.xml的方式。Hive安装步骤hive-site.xml配置文件的内容如下:Hive安装步骤上述配置文件中参数是设置存储元数据的:javax.jdo.option.ConnectionURL:连接URL;javax.jdo.option.ConnectionDriverName:数据库驱动javax.jdo.option.ConnectionUserName:数据库用户名;javax.jdo.option.ConnectionPassword:数据库密码。Hive安装步骤<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&characterEncoding=utf8</value>中:master是MySQL存储元数据的主机名;Hive是MySQL中数据库的名称,用来存储Hive中的元数据信息;配置JDBCURL时,将&写为&:因为&符号在xml中有特殊语义,必须进⾏转义。Hive安装步骤如果想要设置Hive在hdfs中的存储路径,可以使用如下参数配置:Hive.metastore.warehouse.dir如非特殊需求,则不需要配置,默认值为/user/hive/warehouseHive安装步骤步骤7:上传一个mysql的驱动jar包到Hive的安装目录的lib中,mysql的驱动jar包需要自行下载,本课程中使用的版本为mysql-connector-java-8.0.16.jar。Hive验证启动Hive:确保要连接的Hadoop集群是启动状态,并且能够正常运行;确保MySQL服务是运行状态。输入hive命令,出现如图界面,则hive安装成功。Hive验证通过Navicat连接到master上的的MySQL,如下所示:Hive验证可以查看Hive的元数据信息,DBS表中存储着Hive中数据库信息,TBLS中存储中Hive中的表信息,包括表名、数据位置、所有者等信息,VERSION中存储着版本信息,Hive的元数据信息表如图所示。本章小结本节介绍了Hive的安装与配置,包括Hive的安装,Hive配置文件的修改,Hive的启动以及查看Hive的元数据信息,相信大家已经对Hive的安装与配置有了新的认识,为我们后续学习Hive打下了坚实的基础。Hadoop大数据项目开发——数据库操作目录content0201创建数据库查看数据库02删除数据库创建数据库此时需要初始化数据,再打开一个终端,在linux命令行下执行如下命令:第一次执行该命令时,会报如下错误:(1)show:显示数据库,执行命令初始化完成创建数据库初始化数据完成后,再执行showdatabases;默认数据库存储路径:hdfs://master:9000/user/hive/warehouseHive默认数据库:default创建数据库(2)创建数据库的语法如下:createdatabasedbnameIFNOTEXISTSCOMMENTLOCATIONWITHDBPROPERTIES;createdatabase:创建数据的关键字dbname:要创建的数据库名称IFNOTEXISTS:如果不存在则创建COMMENT:添加注释LOCATION:指定hdfs存放路径WITHDBPROPERTIES:添加自定义属性。创建数据库(3)新建数据库bigdata数据库建好后,在hdfs中会生成一个数据库目录,见上图;创建数据库(4)创建数据库时,如果数据库已经存在则会报错再次创建数据库createdatabasebigdata;则出现下图所示报错信息:为了避免创建的数据库已经存在时系统报错,可以添加
ifnotexists命令,如图所示:数据库在HDFS上默认存储路径是/user/hive/warehouse/*.db。查看数据库(1)describe:查看数据库bigdata的默认存储路径(2)use:打开数据库查看数据库新建数据库bigdata的默认存储路径如下图所示删除数据库(1)drop:删除空数据库,命令如下:如果删除的数据库不存在,直接删除则会报如下错误,命令如下:为了避免上述错误,在删除数据时可以使用ifexists判断数据库是否存在,命令如下:删除数据库(2)如果数据库不为空,使用drop命令删除数据库,则会出现如下错误,命令如下:为了避免上述错误,删除非空数据库时可以采用cascade命令,强制删除,命令如下:本章小结本节内容主要介绍了Hive中的数据库,包括创建数据库、查询数据库和删除数据库,为后续学校表操作奠定了坚实的基础。Hadoop大数据项目开发——Hive表简介目录content02外部表01内部表03分区表内部表默认创建的表都是属于内部表Hive会控制着数据的生命周期内部表默认存储在warehouse目录中当删除表时,表的数据和元数据将会被同时删除内部表的特点内部表被删除后,表的元数据和表数据都从HDFS中完全删除创建Hive内部表时,数据将真实存在于表所在的目录内,删除内部表时,物理数据和文件也一并删除。内部表数据存储的位置是HDFS下的warehouse目录下,如果创建内部表时没有指定location,就会在/user/hive/warehouse/下新建一个表目录。外部表Hive并非认为其完全拥有这份数据删除该表并不会删除掉这份数据,元数据信息会被删除掉。外部表管理仅仅是在逻辑和语法意义上的,删除时也并不物理删除外部目录,而仅仅是将引用和定义删除。外部表的特点表中的数据在删除后仍然在HDFS中如果创建一个外部表,在删除表之后,只有与表相关的元数据被删除,而不会删除表的内容。内部表和外部表的区别内部表未被external修饰;外部表被external修饰内部表数据由Hive自身管理,外部表数据由HDFS管理内部表的目录在Hive的仓库目录中,而外部表的目录由用户指定删除内部表会直接删除元数据及存储数据;删除外部表仅删除元数据,HDFS上文件不会被删除Hive创建内部表时,会将数据移动到数据仓库指向的路径分区表分区表可以根据PARTITIONEDBY创建分区表。分区表实际上就是对应一个HDFS文件系统上的独立文件夹分区表的特点一个表可以拥有一个或者多个分区分区是以伪字段的形式在表结构中存在分区建表分为2种本章小结本节内容主要介绍了Hive中表的相关操作,包括内部表,外部表和分区表的操作,相信大家已经对Hive表有了新的认识,为我们后续学习Hive打下了坚实的基础。Hadoop大数据项目开发——数据表创建操作目录content0201创建内部表创建内部表创建数据库创建数据表的语法如下:CREATE[EXTERNAL]TABLE[IFNOTEXISTS]table_name[(col_namedata_type[COMMENTcol_comment],...)][COMMENTtable_comment][PARTITIONEDBY(col_namedata_type[COMMENTcol_comment],...)][CLUSTEREDBY(col_name,col_name,...)storedas文件存储类型[ROWFORMATrow_format][LOCATIONhdfs_path]创建内部表初始化数据报错信息使用bigdata数据库创建表创建内部表根据查询结果创建表创建内部表student01在HDFS上的存储创建内部表根据已经存在的表结构创建表student3在HDFS上的存储创建内部表查询表的类型创建外部表创建外部表查询表的类型本章小结本节内容主要介绍了Hive中内部表和外部表的创建,相信大家已经对Hive表的创建有了新的认识,为我们后续学习Hive打下了坚实的基础。Hadoop大数据项目开发——分区表操作目录content0201创建分区表查询分区表0403增加分区删除分区创建分区表创建分区表加载数据到分区表创建分区表在对应的HDFS存储路径目录下产生的目录查询分区表查询分区表中分区为202306中的数据查看分区表分区数量增加分区增加分区202304HDFS上对应的变化增加分区增加分区202301和202302HDFS上对应的变化删除分区删除202301分区HDFS上对应的变化删除分区HDFS上对应的变化删除202302和202004分区本章小结本节内容主要介绍了分区表的相关操作,包括分区表的创建、增加分区、删除分区和查看分区表等操作。相信大家对Hive分区表有了一定的了解,为我们后续学习Hive表操作,打下了坚实的基础。Hadoop大数据项目开发——Hive数据导入导出目录content0201数据导入数据导出数据导入—向表中装载数据语法如下:loaddata[local]inpath'文件名'[overwrite]intotablestudent[partition(partcol1=val1,…)];向表中装载数据:数据导入—向表中装载数据加载学生信息到student表中student表中的数据与HDFS上student目录下的student.txt文件中的内容相同/user/hive/warehouse/bigdata.db/student目录下面的数据位于家目录下待上传的数据本地文件加载到Hive表中数据导入—向表中装载数据HDFS上student表中数据存储的位置本地文件加载到Hive表中数据导入—向表中装载数据加载HDFS文件到Hive中将文件上传至HDFS上清除student表中数据将HDFS根目录下的student.txt文件加载到student表中student表中的数据数据导入—向表中装载数据加载HDFS文件到Hive中直接把文件上传到表所在hdfs的目录下数据导入—向表中装载数据加载数据覆盖表中数据数据导入查询表类型通过查询语句向表中插入数据数据导入查询语句中创建表并加载数据数据导入查询表类型通过location指定加载数据路径数据导入通过location指定加载数据路径数据导出—insert方式将查询的结果导出到本地数据导出—insert方式将查询的结果格式化导出到本地数据导出—HiveShell命令导出数据导出—HiveShell命令导出HiveShell命令导出基本语法如下:hive-e执行语句>filehive-f脚本>file数据导出—HiveShell命令导出student2.txt文件中的数据HiveShell命令导出数据导出—HiveShell命令导出查询表类型export导出到HDFS上本章小结本节内容主要介绍了Hive中的数据库,包括创建数据库、查询数据库和删除数据库,为后续学校表操作奠定了坚实的基础。Hadoop大数据项目开发——表查询操作目录content02条件查询01基本查询04排序03分组查询Hive表查询Hive中查询语句的语法格式如下所示:select[ALL|DISTINCT]select_expr,select_expr,...FROMtable_reference[WHEREwhere_condition][GROUPBYcol_list][ORDERBYcol_list][CLUSTERBYcol_list|[DISTRIBUTEBYcol_list][SORTBYcol_list]][LIMITnumber]Hive表查询创建emp表将本地数据emp.txt文件加载到emp表基本查询全表查询特定列查询基本查询LIMIT语句列别名条件查询—WHERE语句查询出薪水大于1000的所有员工查询出薪水等于5000的所有员工查询工资在500到1000的员工信息条件查询—WHERE语句查询comm为空的所有员工信息查询工资是1500和5000的员工信息条件查询—LIKE关键字查找以2开头薪水的员工信息查找第二个数值为2的薪水的员工信息条件查询—逻辑运算符查询薪水大于1000,部门是30查询薪水大于1000,或部门是30查询除20和30部门以外的员工信息分组查询—GROUPBY全表查询特定列查询计算emp表每个部门的平均工资分组查询—GROUPBY计算emp每个部门中每个岗位的最高薪水分组查询—HAVING不正确使用方法求每个部门的平均薪水大于2000的部门排序—全局排序查询员工信息按工资升序排列排序—全局排序查询员工信息按工资降序排列排序—全局排序按照员工薪水的2倍排序排序—全局排序按照部门和工资升序排序排序—分区排序先按照部门编号分区,再按照员工编号降序排序设置reduce数量查询语句查询数据存储到/root/result中本章小结本节介绍了Hive表查询,包括基本查询、条件查询、分组和排序,能够实现Hive表数据的查询,相信大家对Hive表查询有了一定的了解。Hadoop大数据项目开发——Hive函数目录content02Hive窗口函数01Hive内置函数Hive内置函数分类函数描述数值相关函数
greatest(Tv1,Tv2,..)返回一组相同类型数据中的最大值(过滤NULL值)least(Tv1,Tv2,...)返回一组相同类型数据中的最小值(过滤NULL值)rand()返回0~1之间的随机值rand(INTseed)返回固定的随机值round(DOUBLEA)返回参数A四舍五入后的BIGINT值Hive内置函数分类函数描述字符串相关函数
upper(STRINGA)ucase(STRINGA)将字符串A中的小写字母转换成大写字母lower(STRINGA)lcase(STRINGA)将字符串A中的大写字母转换成小写字母concat(STRINGA,STRINGB,...)字符串拼接函数,返回A连接B等产生的字符串regexp_replace(STRINGA,STRINGB,STRINGC)字符串替换函数,用字符串C替换字符串A中的Brepeat(STRINGstr,INTn)返回字符串str重复n次的结果trim(STRINGA)ltrim(STRINGA)rtrim(STRINGA)trim(STRINGA)删除字符串两边的空格,但不会删除中间的空格,ltrim(STRINGA)和rtrim(STRINGA)分别删除左边和右边的空格length(STRINGstr)获取字符串str的长度split(STRINGstr,regex)按给定的正则表达式regex分割字符串str,将结果作为字符串数组返回substr(STRINGa,STRINGb)从字符串a中,第b位开始取,取右边所有的字符Hive内置函数分类函数描述条件函数
if(BOOLEANtestCondition,TvalueTrue,TvalueFalseOrNULL)函数会根据条件返回不同的值,如果满足条件,返回第一个参数值,否则返回第二个参数值nvl(Tvalue,Tdefault_value)判断值是否为空,如果T(可以为任意数据类型)为空,则返回默认值时间相关函数
unix_timestamp()获取当前系统时间,返回值为数字型秒数to_date(stringtimestamp)将时间戳转换为日期,传入参数也可以是当前时间戳current_timestampdatediff(STRINGenddate,STRINGstartdate)返回INT类型的两个日期相差的天数date_add(STRINGstartdate,INTdays)获取增加天数后的日期last_day(STRINGdate)获取传入日期的月末日期Hive内置函数分类函数描述聚合函数
count(*)和count(expr)返回检索行的总数sum(col)和sum(DISTINCTcol)返回col所有元素的总和avg(col)和avg(DISTINCTcol)返回col所有元素的平均值min(col)返回col所有元素的最小值max(col)返回col所有元素的最大值类型转换函数cast(expras<type>)将一个数据类型转换为另一个数据类型膨胀函数explode()将一行数据转换成列数据,可以用于array和map类型的数据,函数中的参数传入的是arrary数据类型的列名。此函数不能关联原有的表中的其他字段、不能与groupby、clusterby、distributeby、sortby联用、不能进行UDTF嵌套和不允许选择其他表达式。窗口分析函数想要既显示聚集前的数据,又要显示聚集后的数据,引入了窗口函数。窗口函数又叫分析函数,窗口函数兼具分组和排序功能。over()默认的窗口大小是从第一行到最后一行的所有数据。partitionby是按照要求进行分组,这样设定之后,over的窗口大小就是一个分组。当只指定分组时,sum、avg统计的数据就是分组内的数据,当既指定分组又指定排序时,sum、avg统计的数据就是分组第一行到当前行的数据。窗口函数最重要的关键字是partitionby和orderby。分组TOPN函数创建userinfo表将本地数据user.txt文件加载到userinfo表分组TOPN函数查询结果分组TOPN函数最终查询结果累加计算函数创建index表将本地数据index.txt文件加载到index表累加计算函数最终查询结果本章小结本节介绍了Hive函数,包括内置函数和窗口函数,在窗口函数中介绍了分组求TOPN和累加计算,相信大家对Hive函数有了一定的了解,为我们后续数据使用Hive函数打下了坚实的基础。Hadoop大数据项目开发——Hive数据类型目录content02Hive复合数据类型01Hive基本数据类型03复合数据类型的定义与使用方法Hive基本数据类型类型描述TINYINT(tinyint)一个字节(8位)有符号整数,-128~127SMALLINT(smallint)2字节(16位)有符号整数,-32768~32767INT(int)4字节(32位)有符号整数BIGINT(bigint)8字节(64位)有符号整数FLOAT(float)4字节(32位)单精度浮点数DOUBLE(double)8字节(64位)双精度浮点数DECIMAL(decimal)任意精度的带符号小数BOOLEAN(boolean)true/falseSTRING(string)字符串VARCHAR(varchar)变长字符串CHAR(char)固定长度字符串BINANY(binany)字节序列TIMESTAMP(timestamp)时间戳,纳秒精度 DATE(date)日期Hive复合数据类型数据类型描述语法示例array数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。array()mapMAP是一组键-值对元组集合,使用数组表示法可以访问数据。map()struct和C语言中的struct类似,都可以通过“点”符号访问元素内容。struct()复合数据类型的定义与使用方法数组类型键值对类型结构体类型复合数据类型的定义与使用方法要获取每个学生的数学成绩获取每个学生的父亲的联系电话获取每个学生的家庭住址的省和市信息将本地的“student.txt”文件加载到student表本章小结本节介绍了Hive中的数据类型,包括基本数据类型和复合数据类型,以及复合数据类型的定义与使用方法,相信大家对Hive中的数据类型有了一定的了解,为我们后续Hive数据打下了坚实的基础。Hadoop大数据项目开发——
Sqoop概述目录content02Sqoop特点01Sqoop简介Sqoop简介Sqoop由Apache软件基金会提供。Sqoop是一款开源工具。用于在Hadoop和关系数据库服务器之间传输数据的工具。于从关系数据库导入数据到HadoopHDFS、Hive等,并从HadoopHDFS、Hive导出到关系数据库。Sqoop简介Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在。Sqoop类似于其他ETL工具,使用元数据模型来判断数据类型并在数据从数据源转移到Hadoop时确保类型安全的数据处理。Sqoop可以通过调整任务数来控制任务的并发度,自动完成数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业如何借助智慧城市平台提升竞争力
- 教育技术创新与职场竞争力的提升
- 在线音乐制作大师班创新创业项目商业计划书
- 猪肉餐饮连锁加盟创新创业项目商业计划书
- 五金件自动化喷涂线创新创业项目商业计划书
- 畜牧产品跨境电商营销创新创业项目商业计划书
- 母婴用品跨境电商数据分析创新创业项目商业计划书
- 300MW1200MWh全钒液流储能电站项目可行性研究报告写作模板-备案审批
- 天津市滨海新区2024年八上物理期末达标检测试题含解析
- 山东省滨州市惠民县2025届九上化学期末考试试题含解析
- 全新退换货协议模板
- 危重患者的早期识别与处理
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 商务礼仪之座次及用餐
- SEO谷歌推广方案
- 注塑标准成型条件表电子表格模板
- 企业数字化管理
- 道闸系统施工方案
- DB41-T 2563-2023 新生儿脐静脉导管维护技术操作规范
- 配置管理与漏洞修复
- 新版中国复发难治性急性髓系白血病诊疗指南
评论
0/150
提交评论