Hive数据仓库应用教程高职全套教学课件_第1页
Hive数据仓库应用教程高职全套教学课件_第2页
Hive数据仓库应用教程高职全套教学课件_第3页
Hive数据仓库应用教程高职全套教学课件_第4页
Hive数据仓库应用教程高职全套教学课件_第5页
已阅读5页,还剩555页未读 继续免费阅读

下载本文档

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

文档简介

项目一认识Hive《Hive数据仓库应用教程》项目1认识Hive.pptx项目2Hive环境搭建.pptx项目3Hive基本语法.pptx项目4Hive数据定义.pptx项目5数据的导入与导出.pptx项目6Hive数据查询.pptx项目7Hive函数.pptx项目8Hive优化.pptx项目9综合案例.pptx全套可编辑PPT课件目录/CONTENTS任务1-1认识数据仓库行业PPT模板/hangye/任务1-2认识Hive数据仓库123项目小结163认识数据仓库任务1-1《Hive数据仓库应用教程》1.1.1任务描述本任务将带领大家了解数据仓库的概念,包括数据仓库的特点、数据模型以及体系结构。通过与传统数据库进行对比,让大家了解数据仓库相较于传统数据库的优势。1.1.2任务准备知识1.数据库概述(1)什么是数据库?(2)数据库的组成(3)数据库的作用结构化的数据集合存储、检索、查询、管理数据的系统支持多种数据类型:文本、数字、图片等数据库模型:关系型、非关系型等数据库架构:单层、两层、三层架构数据和数据库模式数据组织与管理提供信息存储和检索的高效方式支持应用程序和用户决策1.1.2任务准备知识2.数据库管理系统(DBMS)(1)DBMS的定义(2)DBMS的功能(3)DBMS的重要性软件系统,用于创建和管理数据库提供数据的安全性、完整性、备份与恢复数据定义、更新、管理数据安全管理和访问控制性能监控和优化保证数据一致性和完整性支持多用户环境和并发控制提供数据独立性和抽象化1.1.2任务准备知识3.传统数据库的局限性(1)面向业务过程的设计(2)分散的数据源问题(3)缺乏时间变化维度以日常业务操作为中心,不利于全局数据分析数据结构围绕业务过程,限制数据的宽泛应用多个应用程序有各自的数据库,导致数据孤立数据集成、标准化和一致性维护困难传统数据库关注当前状态,不记录历史变化历史数据分析和趋势预测能力不足1.1.2任务准备知识3.传统数据库的局限性(4)性能受限于复杂查询:传统数据库设计优化事务处理,不适合复杂分析(5)缺少元数据管理:传统数据库不提供元数据管理工具,影响数据理解和使用。(6)决策支持不足:传统数据库不适合需复杂数据分析和挖掘的决策支持和商业智能。1.1.3任务实施1.数据仓库的概念数据仓库是一种专为分析和决策支持设计的集中化数据存储环境。它不同于传统数据库,因为它专注于数据的整合、历史存储和复杂查询性能。数据仓库整合来自多个业务系统的数据,使用特定的数据模型如星型或雪花模型,并采用列式存储等技术优化分析性能。它还配备了严格的数据治理和安全措施以保证数据准确和合规。对用户而言,数据仓库提供了一个统一的视图,支持高级数据探索和业务趋势预测的分析工具。1.1.3任务实施2.数据仓库的特点(1)面向主题:数据仓库围绕企业的关键主题(如客户、销售、库存、财务等)来组织数据,以便于进行跨领域的分析。(2)集成:它整合了来自企业内多个分散的操作型数据库的数据,提供了一个清洁、一致的全局视图。(3)数据稳定性:数据仓库中的数据相对稳定,更多用于查询和分析,而不像操作型数据库那样频繁更新。(4)历史变化:数据仓库存储数据的历史状态,使得分析师可以执行趋势分析和预测分析。(5)高性能查询:通过使用特定的存储技术和查询优化,数据仓库能够高效处理大量数据的复杂查询。1.1.3任务实施3.数据仓库的数据模型数据仓库的数据模型是按层次组织的,它定义了数据如何被组织、存储和分析,主要分为三个层次:1.数据物理层:这是与数据的物理存储和检索机制直接相关的层级。它关注数据的物理存储结构、编码方式和存储位置。2.概念数据层:这一层面向整体逻辑结构和关系,提供一个全局和抽象的视图,描述数据实体、属性和它们之间的关系。3.逻辑数据层:是用户交互的层级,基于概念层设计,更聚焦于用户的数据需求。它通过视图、报表等形式,为用户提供定制的数据展示和分析工具。1.1.3任务实施4.数据仓库的体系结构数据仓库的体系结构是支撑其高效运行和满足各种数据需求的关键。一个典型的数据仓库体系结构通常分为三个主要层次:源数据层、数据仓库层和数据应用层。认识Hive数据仓库任务1-2《Hive数据仓库应用教程》1.1.1任务描述在当前的任务中,我们将深入探讨Hive,这是一个基于Hadoop的数据仓库工具。我们将详细介绍Hive的架构、基本数据类型及其如何融入整个大数据生态系统。通过本次任务,读者将更好地理解Hive的功能、优点以及它在大规模数据处理和分析中的角色。1.1.2任务准备知识1.OLTP(联机事务处理)OLTP是传统的关系型数据库的主要应用,如MySQL、Oracle和SQLServer。它主要处理基本的日常事务,如银行交易、订单处理等。OLTP系统的特点是高并发、小数据量的事务,要求快速的读写响应。2.OLAP(联机分析处理)与OLTP不同,OLAP专注于数据仓库系统,支持复杂的分析操作,侧重于决策支持。它处理的数据量通常很大,但查询的并发性相对较低。OLAP系统通常为用户提供直观、易懂的查询结果,帮助决策者进行趋势分析、数据挖掘等操作。了解这两者的区别对于理解Hive在大数据生态系统中的位置非常重要。Hive主要作为一个OLAP工具,允许用户在Hadoop上进行复杂的数据分析。1.1.3任务实施1.Hive概述Hive是一个为处理大规模数据集而构建的数据仓库工具,它专门为Hadoop生态系统开发。利用Hadoop的HDFS进行数据存储,Hive允许分析和处理海量数据,同时保持了高度的可扩展性和容错能力。Hive支持表、列和数据类型的定义,但主要面向的是批量处理,而不是实时读写。它通过HiveQL——一种类SQL查询语言,允许用户执行查询操作,这些查询被转换成MapReduce作业以在Hadoop集群上运行。Hive的用户自定义函数(UDF)功能增加了灵活性,使得用户可以根据需要进行专门的数据分析。总的来说,Hive为在Hadoop上的大数据分析提供了一个强大、灵活且可扩展的数据仓库解决方案。1.1.3任务实施2.Hive架构Hive作为一个构建在Hadoop上的数据仓库工具,它的架构体现了如何处理、存储和查询大规模数据集。以下是Hive架构的主要组件及其功能的详细描述。1.1.3任务实施3.Hive数据类型Hive支持多种数据类型,以满足各种数据存储和查询需求。这些数据类型可以分为两大类:基本数据类型和集合数据类型。Hive数据类型Java数据类型长度例子TINYINTbyte1byte有符号整数20SMALINTshort2byte有符号整数20INTint4byte有符号整数20BIGINTlong8byte有符号整数20BOOLEANboolean布尔类型,true或者falseTRUEFALSEFLOATfloat单精度浮点数3.14159DOUBLEdouble双精度浮点数3.14159STRINGstring字符系列。可以指定字符集。可以使用单引号或者双引号。‘nowisthetime’“forallgoodmen”TIMESTAMP

时间类型2022-10-25BINARY

字节数组基本数据类型1.1.3任务实施数据类型描述语法示例STRUCT和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{firstSTRING,lastSTRING},那么第1个元素可以通过字段.first来引用。struct()MAPMAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素map()ARRAY数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’,‘Doe’],那么第2个元素可以通过数组名[1]进行引用。Array()集合数据类型项目小结《Hive数据仓库应用教程》项目小结我们在项目中首先学习了数据库、数据仓库的概念,其中重点介绍了数据仓库的特点和数据仓库的数据模型以及数据仓库的体系结构,其次进一步学习了Hive数据仓库的基本概念,详细介绍了Hive的架构和Hive的数据类型。在本项目中,不仅理解和掌握数据仓库的基本概念和特点,同时也认识了Hive的基本概念和架构,是后续应用Hive解决实际问题的重要基础。课后练习1.简述数据仓库特点?2.简述Hive架构主要组件和功能?感谢您的观看《Hive数据仓库应用教程》项目二Hive环境搭建《Hive数据仓库应用教程》目录/CONTENTS任务2-1Linux环境搭建行业PPT模板/hangye/任务2-2Hadoop环境搭建123任务2-3Hive环境搭建Linux环境搭建任务2-1《Hive数据仓库应用教程》2.1.1任务描述本任务将学会如何使用虚拟机工具软件VMwareWorkstation来创建、克隆和启动Linux系统,同时在虚拟机中对Linux系统的网络、主机名等进行设置,为后续Hadoop和Hive的部署打下基础。2.1.2任务准备知识LinuxLinux全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。2.VMwareWorkstationVMwareWorkstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试、部署新的应用程序的最佳解决方案。2.1.3任务实施1.虚拟机的安装与创建步骤1:单击图2-2中的【创建新的虚拟机】选项,打开【新建虚拟机向导】对话框,选择【自定义(高级)】选项,然后单击【下一步】按钮,如图2-3所示。图2-2图2-32.1.3任务实施1.虚拟机的安装与创建步骤2:选择【稍后安装操作系统】,然后单击【下一步】按钮,如图2-4所示。步骤3:选择Linux,版本下拉选择【CentOS764位】,然后单击【下一步】按钮,如图2-5所示图2-4图2-52.1.3任务实施1.虚拟机的安装与创建步骤4:填写虚拟机名node1,选择虚拟机文件的位置,然后单击【下一步】按钮,如图2-6所示。步骤5:选择处理器数量为1,每个处理的内核数量为2,然后单击【下一步】按钮,如图2-7所示。图2-6图2-72.1.3任务实施1.虚拟机的安装与创建步骤6:根据自身电脑硬件配置情况,设置内存为2048MB,也即是2GB,然后单击【下一步】按钮,如图2-8所示步骤7:选择【使用网络地址转换(NAT)】选项,然后单击【下一步】按钮,如图2-9所示。图2-8图2-92.1.3任务实施1.虚拟机的安装与创建步骤8:选择默认的【LSILogic(L)】选项,然后单击【下一步】按钮,如图2-10所示。步骤9:此处选择默认的【SCSI(S)】选项,然后单击【下一步】按钮,如图2-11示。图2-10图2-112.1.3任务实施1.虚拟机的安装与创建步骤10:选择默认的【创建新虚拟磁盘】选项,然后单击【下一步】按钮,如图2-12所示。。步骤11:设置最大磁盘大小为20GB,然后单击【下一步】按钮,如图2-13所示。图2-12图2-132.1.3任务实施1.虚拟机的安装与创建步骤12:设置磁盘文件名为node1.vmdk,然后单击【下一步】按钮,如图2-14所示。步骤13:打开【已准备好创建虚拟机】对话框,确认无误后单击【完成】按钮,如图2-15所示。图2-14图2-152.1.3任务实施1.虚拟机的安装与创建步骤14:最终完成新建虚拟机的创建,并在VMWare主页右侧打开node1选项卡,其中显示node1虚拟机的配置情况,同时在左侧【我的计算机】下出现node1菜单选项,如图2-16所示。图2-162.1.3任务实施2.Linux安装步骤1:在上图2-16中点击【编辑选项卡设置】,选择本机Linux的镜像文件,单击【确定】按钮,如图2-17所示。步骤2:VMWare重新回到了如图2-16的界面,此时选择【开启此虚拟机】,进入安装界面,选择【InstallCentOS7】,按键盘回车键,开始在虚拟机中安装Linux,如图2-18所示。图2-17图2-182.1.3任务实施2.Linux安装步骤3:选择语言为默认的English(UnitedStates),然后点击继续【Continue】按钮,如图2-19所示步骤4:设置时间与时区,点击【DATE&TIME】,如图2-20所示。。图2-19图2-202.1.3任务实施2.Linux安装接步骤4,打开时间与时区界面【DATE&TIME】,选择区域为亚洲【Asia】,城市为上海【Shanghai】,同时可以设置时间与日期,完成设置后点击完成按钮【Done】,如图2-21。步骤5:回到如图2-20的安装概览界面,选择并打开【SOFTWARESELECTION】界面,选择默认的最小化安装【MinimalInstall】,完成设置后点击完成按钮【Done】,如图2-22所示。图2-21图2-222.1.3任务实施2.Linux安装步骤6:回到如图2-20的安装概览界面,选择并打开【INSTALLDESTINATION】界面,选择默认的自动配置分区【Automaticallyconfigurepartitioning】,然后点击【Done】,如图2-23所示。步骤7:回到如图2-20的安装概览界面,选择并打开【NETWORK&HOSTNAME】界面,开启网络为【ON】状态,设置主机名为【node1】,点击【Apply】按钮,完成设置后点击完成按钮【Done】,如图2-24所示。图2-23图2-242.1.3任务实施2.Linux安装步骤8:完成配置后点击开始安装按钮【BeginInstallation】,如图2-25所示。步骤9:安装过程中设置root密码,点击【ROOTPASSWORD】,如图2-26所示。图2-25图2-262.1.3任务实施2.Linux安装接步骤9,设置密码123456,以及相同的确认密码,设置后点击【Done】,如图2-27所示。步骤10:安装完成后在【CONFIGURATION】界面中点击【Reboot】按钮,将重启Linux系统,如图2-28所示图2-27图2-282.1.3任务实施2.Linux安装步骤11:重启Linux系统后输入用户名root和密码123456,出现Linux的提示符[root@node1~]#,如图2-29所示,安装Linux成功。图2-292.1.3任务实施3.Linux克隆步骤1:在如图选中的node1,快捷键【Ctrl+E】关闭虚拟机,点击【关机】在如图2-30所示,步骤2:右键node1虚拟机,弹出快捷菜单,选择【管理】

【克隆】菜单,在如图2-31所示,图2-30图2-312.1.3任务实施3.Linux克隆接步骤2,

弹出克隆虚拟机向导界面,如图2-32所示,点击【下一页】按钮。步骤3:步骤3:在克隆源页面选择【虚拟机中的当前状态(C)】,如图2-33所示图2-32图2-332.1.3任务实施3.Linux克隆步骤4:在克隆类型页面选择【创建完整克隆(F)】,然后点击【下一页】按钮,如图2-34所示。步骤5:填写虚拟机名称为【node2】,位置填写【D:\node2】,点击【完成】按钮,如图3-35。图2-34图2-352.1.3任务实施3.Linux克隆步骤6:用同样的方法,重复上述步骤,即可完成node3虚拟机的创建,最终三台虚拟机创建完成的情况如图3-36所示。图2-362.1.3任务实施4.Linux配置步骤1:修改主机名,启动名为node2的虚拟机,输入用户名root和密码123456登录系统,在Linux提示符输入修改主机名的命令,然后在重启虚拟机,以便设置的新主机名node2生效,具体命令如图2-37所示。[root@node1~]#hostnamectlset-hostnamenode2[root@node1~]#reboot图2-372.1.3任务实施4.Linux配置接步骤1,重启node2虚拟机的主机名被修改成了node2,如图2-38所示,用同样的方法也把node3虚拟机的主机名改成node3.图2-382.1.3任务实施4.Linux配置步骤2:修改网络配置,启动node2虚拟机,输入查看网络配置文件目录的命令,具体如下[root@node2~]#ls/etc/sysconfig/network-scripts/在此目录下可以看到网络配置文件ifcfg-ens33,如图2-39所示图2-392.1.3任务实施4.Linux配置使用vi编辑命令修改网络配置文件,具体命令如下,如图2-40所示。[root@node2~]#vi/etc/sysconfig/network-scripts/ifcfg-ens33图2-402.1.3任务实施4.Linux配置使用vi编辑命令修改网络配置文件,修改完保存配置并退出vi编辑器,网络配置如图2-41所示。图2-412.1.3任务实施4.Linux配置由于node2是完全克隆node1、网络配置中的UUID也完全相同,UUID是虚拟机的唯一标识码,通过命令来重新生成UUID,具体命令如下:[root@node2~]#sed-i'/UUID=/c\UUID='`uuidgen`''/etc/sysconfig/network-scripts/ifcfg-ens33注意区分上述命令中的单引号“'”与反引号“`'”。完成上述node2的网络设置与UUID的重生成后一定要执行servicenetworkrestart命令,使其生效。使用同样的方法设置node1的ip为28,node3的ip为30,其他网络配置相同,同时也将node3的UUID重生成。2.1.3任务实施5.Xshell连接Linux虚拟机步骤1:打开Xshell工作窗口,点击【文件】

【新建会话属性】菜单,打开如图【新建会话属性】窗口,在名称处输入【node1】,主机输入【28】,然后点击【确定】按钮,如图所示。步骤2:新建连接后,打开【会话】窗口,选中node1,点击【连接】按钮,如图43所示。图2-42图2-432.1.3任务实施5.Xshell连接Linux虚拟机步骤3:在打开【SSH用户名】窗口中输入用户名root,勾选【记住用户名】然后点击【确定】按钮。如图2-44所示步骤4:在打开【SSH用户身份验证】窗口中输入密码123456,勾选【记住密码】,如图45所示图2-44图2-452.1.3任务实施5.Xshell连接Linux虚拟机用同样的方法新建node2、node3连接,最终Xshell连接三台虚拟机的效果如图2-46、图2-47、图2-48所示,后面就可以通过Xshell来连接虚拟机完成Hadoop、Hive等相关操作。图2-46图2-47图2-48Hadoop环境搭建任务2-2《Hive数据仓库应用教程》2.2.1任务描述Hive数据仓库底层的数据存储依赖的是Hadoop平台的分布式文件系统(HDFS)。因此在搭建Hive之前需要先部署Hadoop环境,本任务将学会如何搭建全分布式Hadoop环境,为后续搭建Hive数据仓库打好基础。2.2.2任务准备知识Hadoop搭建有三种模式,分别为单机模式、伪分布模式、全分布模式。单机(本地)模式:这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点全分布式模式:全分布模式通常被用于生产环境,使用n台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上2.2.3任务实施1.准备工作步骤1:配置主机名与IP的映射,修改node1的/etc/hosts文件,命令如下:[root@node1~]#vi/etc/hosts在文件末尾添加如图2-49内容,然后保存退出。node2、node3都做同样的修改。图2-492.2.3任务实施1.准备工作步骤2:SSH免密登录,在完全分布式模式下,集群内任意一台主机可免密登录集群内所有主机,即实现了两两免密登录。以node1免密登录集群内其他所有主机为例进行操作。1.在node1生成密钥对,使用“ssh-keygen-trsa”命令生成密钥对,其中rsa表示加密算法,键入上面一条命令后连续敲击四次回车键,如图2-50所示:在/root/.ssh目录下生成公钥(id_rsa.pub)和私钥(id_rsa),可通过命令“ls/root/.ssh”查看,如图2-51所示。图2-50图2-512.2.3任务实施1.准备工作接步骤2,2.将node1公钥id_rsa.pub复制到node1、node2和node3主机上,使用“ssh-copy-id”命令来复制公钥,命令如下,[root@node1~]#ssh-copy-idnode1[root@node1~]#ssh-copy-idnode2[root@node1~]#ssh-copy-idnode3执行命令过程中会提示输入密码,此处密码都为123456。3.验证免密登录,在nodel主机输入“sshnode2”、“sshnode2”命令验证,验证结果如图2-52所示。图2-522.1.3任务实施2.安装JDK步骤1:解压JDK,在node1使用mkdir命令创建/tools目录,使用Xftp新建连接node1的会话,如图2-53所示。将本机事先从Oracal官网下载的jdk-8u221-linux-x64.tar上传到node1的tools目录下,如图2-54所示:图2-53图2-542.1.3任务实施2.安装JDK将当前目录切换到/tools目录,可以通过ls命令查看通过Xftp上传的到/tool目录下的jdk安装包,然后使用tar命令将jdk安装包解压到tools文件内,如图2-55所示:使用mv命令将jdk1.8.0_221安装目录重命名,以便后面进行配置的时候更加简洁,重命名如图2-56所示图2-55图2-562.1.3任务实施2.安装JDK步骤2:配置环境变量,使用vi/etc/profile命令编辑系统的环境变量文件,在文件尾部添加如下内容,如图2-57所示。exportJAVA_HOME=/tools/jdkexportPATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar图2-57图2-58配置环境变量后记住一定要使用source/etc/profile命令使得配置生效,然后使用java-version命令验证JDK环境是否配置成功,如图2-58所示2.1.3任务实施2.安装JDK步骤3:远程拷贝JDK与配置文件,使用scp命令将node1的JDK安装包与配置文件远程拷贝到node2与node3虚拟机里,拷贝前在node2、node3虚拟机的根目录下新建tools目录,命令如下:[root@node1/]#scp-r/tools/jdk/root@node2:/tools[root@node1/]#scp-r/tools/jdk/root@node3:/tools远程拷贝配置文件的命令如下:[root@node1/]#scp/etc/profileroot@node2:/etc/profile[root@node1/]#scp/etc/profileroot@node3:/etc/profile配置文件拷贝后一定要使用source/etc/profile命令使配置在node2、node3虚拟机生效,同时再使用java-version命令验证一下JDK是否安装成功。2.1.3任务实施3.部署Hadoop(完全分布模式)步骤1:将事先下载的Hadoop安装包hadoop-2.7.4.tar.gz使用Xftp工具上传到node1的tools目录下,如图2-59所示.在node1中将当前目录切换到/tools目录,可以通过ls命令查看通过Xftp上传的到/tool目录下的Hadoop安装包,然后使用tar命令将Hadoop安装包解压到tools文件夹内,如图2-60所示:图2-59图2-602.1.3任务实施3.部署Hadoop(完全分布模式)接步骤1,使用mv命令将hadoop-2.7.4安装目录重命名为hadoop,以便后面进行配置的时候更加简洁,重命名如图2-61所示步骤2:配置Hadoop用vi/etc/profile命令编辑系统的环境变量文件,在文件尾部添加如下内容,如图2-62所示。exportHADOOP_HOME=/tools/hadoopexportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin图2-61图2-622.1.3任务实施3.部署Hadoop(完全分布模式)接步骤2,配置环境变量后记住一定要使用source/etc/profile命令使得配置生效,同时使用hadoopversion命名验证Hadoop环境是否配置成功,如图2-63所示图2-632.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群1.编辑hadoop-env.sh文件用Xshell连接node1,hadoop-env.sh在hadoop安装目录的etc/hadoop目录下,用vi命令编辑hadoop-env.sh,指定Hadoop运行的Java环境变量,将JAVA_HOME设置为node1中JDK的安装路径,如图2-64所示。图2-642.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群2.编辑yarn-env.sh文件yarn-env.sh在hadoop安装目录的etc/hadoop目录下,用vi命令编辑yarn-env.sh,指定Yarn运行的Java环境变量,将JAVA_HOME设置为node1中JDK的安装路径,如图2-65所示图2-652.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群3.编辑core-site.xml文件core-site.xml在hadoop安装目录的etc/hadoop目录下,是Hadoop的核心配置文件,用vi命令编辑core-site.xml,指定namenode的地址在node1上,同时设置Hadoop的临时目录(事先使用mkdir命令在hadoop目录下新建tmp目录),在<configuration>标签内添加内容如下,完成配置后如图2-66所示。<property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/tools/hadoop/tmp</value></property>图2-662.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群4.编辑hdfs-site.xml文件hdfs-site.xml在hadoop安装目录的etc/hadoop目录下,是HDFS的核心配置文件,用vi命令编辑hdfs-site.xml,指定HDFS的数量,同时设置secondarynamenode所在主机的和端口,在<configuration>标签内添加内容如下,完成配置后如图2-67所示。

<property><name>dfs.replication</name><value>3</value></property><property><name>node.secondary.http-address</name><value>node2:50090</value></property>图2-672.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群5.编辑mapred-site.xml文件在hadoop安装目录的etc/hadoop目录下只有mapred-site.xml.template文件,使用cpmapred-site.xml.templatemapred-site.xml命令拷贝模板来新建mapred-site.xml文件,用vi命令编辑mapred-site.xml,指定MapReduce运行时的框架,这里指定在YARN上,默认在local,在<configuration>标签内添加内容如下,完成配置后如图6-68所示:<property><name></name><value>yarn</value></property>图2-682.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群6.编辑yarn-site.xml文件yarn-site.xml在hadoop安装目录的etc/hadoop目录下,用vi命令编辑yarn-site.xml,指定YARN集群的管理者(ResourceManager)的地址,在<configuration>标签内添加内容如下,完成配置后如图2-69所示:<property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>图2-692.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群7.编辑slaves文件slaves在hadoop安装目录的etc/hadoop目录下,用vi命令编辑slaves,将文件中的localhost删除,添加主节点和子节点的主机名称,此处主节点为node1,子节点为node2和node3,完成配置后如图2-70所示图2-702.1.3任务实施3.部署Hadoop(完全分布模式)步骤3:配置Hadoop集群8.远程拷贝Hadoop安装包与配置文件使用scp命令将node1的Hadoop安装包与配置文件远程拷贝到node2与node3虚拟机里,远程拷贝Hadoop安装包的命令如下。[root@node1/]#scp-r/tools/hadoop/root@node2:/tools[root@node1/]#scp-r/tools/hadoop/root@node3:/tools远程拷贝配置文件的命令如下:[root@node1/]#scp/etc/profileroot@node2:/etc/profile[root@node1/]#scp/etc/profileroot@node3:/etc/profile配置文件拷贝后一定要使用source/etc/profile命令使配置在node2、node3虚拟机生效。2.1.3任务实施3.部署Hadoop(完全分布模式)步骤4:主节点文件系统格式化,在node1上执行hdfsnamenode–format命令,对主节点上的文件系统进行格式化,此命令只在初次启动Hadoop的时候执行,出现successfullyformatted信息则表明格式化成功,如图2-71所示。图2-712.1.3任务实施3.部署Hadoop(完全分布模式)步骤5:配置Hadoop集群使用start-dfs.sh命令启动Hadoop集群的HDFS,node1和node2的NameNode,以及node1、node2和node3的DataNode都会被启动。使用start-yarn.sh命令启动Hadoop集群的Yarn,node1的ResourceManager和node1、node2和node3的NodeManager都会被启动。两个命令及其执行结果如图2-72所示图2-722.1.3任务实施3.部署Hadoop(完全分布模式)步骤6:使用jps命令查看进程在node1、node2和node3上分别执行jps命令,查看完全分布模式Hadoop集群是否启动成功效果如图2-73、图2-74、图2-75所示。图2-73图2-74图2-752.1.3任务实施3.部署Hadoop(完全分布模式)步骤7:关闭防火墙默认情况下CentOS7是开启防火墙的,在node1、node2和node3上分别执行关闭防火墙服务和禁止防火墙开机启动命令,如下所示[root@node1/]#systemctlstopfirewalld[root@node1/]#systemctldisablefirewalld步骤8:在Windows系统下,访问28:50070,查看HDFS集群状态,如图2-76所示图2-762.1.3任务实施3.部署Hadoop(完全分布模式)步骤9:在Windows系统下,访问28:8088,查看Yarn集群状态,如图2-77所示图2-77搭建Hive环境任务2-3《Hive数据仓库应用教程》2.3.1任务描述Hive是基于Hadoop的一个数据仓库工具,用来进行数据的提取、转化和加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive十分适合对数据仓库进行统计分析,本任务将学会Hive的三种部署模式的搭建过程,为后续Hive数据仓库操作打好基础。2.3.2任务准备知识Hive部署模式有内嵌模式、本地模式、远程模式等3种,客户端连接MetaStore元数据服务,MetaStore再去连接MySQL数据库进行元数据存取。1.内嵌模式:使用内置的Derby数据库来存储元数据,是默认的方式,解压hive安装包,执行bin/hive启动即可使用,但是一次只能一个客户端连接,不支持多会话连接,元数据无法共享,一般适用于测试环境。2.本地模式:采用独立的数据库来存储元数据,支持MySQL、Postgres、Oracle等数据库。MetaStore服务和Hive在同一个进程中启动,无需单独启动MetaStore服务,支持本地多会话连接。3.远程模式:远程模式的MetaStore服务和Hive运行在不同的进程里,Hive客户端通过远程连接MetaStore服务获取元数据,远程模式同样使用独立数据库来存储元数据,并且支持远程多会话连接。2.2.3任务实施1.内嵌模式的部署步骤1:步骤一:将本机事先下载的Hive安装包apache-hive-2.3.9-bin.tar.gz使用Xftp工具上传到node1的tools目录下,如图2-78所示,在node1中将当前目录切换到/tools目录,使用tar命令将Hive安装包解压到tools文件夹内,如图2-79所示:图2-78图2-79使用mv命令将apache-hive-2.3.9-bin安装目录重命名为hive,以便后面进行配置的时候更加简洁,重命名如图2-80所示图2-802.1.3任务实施1.内嵌模式的部署步骤2:启动Hadoop,使用前述的start-dfs.sh和start-yarn.sh命令启动Hadoop。步骤3:初始化Hive,启动Hive之前需要初始化Hive内嵌的Derby数据库,具体命令如下,运行结果显示schmaToolcompleted表明初始化成功,如图2-81所示[root@node1hive]#bin/schematool-initSchema-dbTypederby图2-812.1.3任务实施1.内嵌模式的部署步骤4:启动Hive,使用bin/hive命令在初始化的目录启动hive,运行成功后则显示hive提示符,同时可以使用showdatabases命令查看hive数据库,如果能查看到默认的hive数据库default,表明内嵌模式的Hive部署成功,如图2-82所示图2-822.1.3任务实施2.本地模式的部署步骤1:安装MySQL1.下载wget命令[root@node2/]#yum-yinstallwget2.在tools下创建mysql文件夹,同时切换到mysql目录下[root@node2/]#mkdir-p/tools/mysql[root@node2/]#cd/tools/mysql3.下载官方mysql-rpm包[root@node2mysql]#wget-i-c/get/mysql57-community-release-el7-10.noarch.rpm4.安装下载好的rpm包[root@node2mysql]#yum-yinstallmysql57-community-release-el7-10.noarch.rpm5.安装mysql-server[root@node2mysql]#yum-yinstallmysql-community-server6.MySQLGPG密钥已过期导致的安装失败,运行以下命令,以2022年为例[root@node2mysql]rpm--importhttps:///RPM-GPG-KEY-mysql-20222.1.3任务实施2.本地模式的部署步骤1:安装MySQL7.再次安装mysql-server,安装成功则显示“Complete!”,如图2-83所示[root@node2mysql]#yum-yinstallmysql-community-server图2-832.1.3任务实施2.本地模式的部署步骤1:安装MySQL8.启动mysql,并查看状态,启动成功则显示“active(running)”,如图2-84所示[root@node2mysql]systemctlstartmysqld.service[root@node2mysql]servicemysqldstatus9.查看MySQL初始密码,如图2-85所示[root@node2mysql]grep'password'/var/log/mysqld.log图2-84图2-852.1.3任务实施2.本地模式的部署步骤1:安装MySQL10.通过初始密码登录mysql,提示输入的密码为前面查看到的初始密码,如图2-86所示[root@node2mysql]mysql-uroot–p11.初始密码复杂没有规律,不便记忆,登录后可以修改密码,此处把密码修改成了Hive@2022,如图2-87所示[root@node2mysql]ALTERUSERUSER()IDENTIFIEDBY'Hive@2022';[root@node2mysql]FLUSHPRIVILEGES;图2-86图2-872.1.3任务实施2.本地模式的部署步骤2:上传并安装Hive到node2的tools目录下,过程参看嵌入模式的步骤一步骤3:配置Hive,进入hive安装目录的conf目录下,根据配置模板文件新建hive-env.sh[root@node2mysql]cdconf[root@node2conf]cphive-env.sh.templatehive-env.sh用vi命令编辑hive-env.sh,添加以下配置项,配置完结果如图2-88所示exportHADOOP_HOME=/tools/hadoopexportHIVE_CONF_DIR=/tools/hive/confexportHIVE_AUX_JARS_PATH=/tools/hive/libexportJAVA_HOME=/tools/jdk图2-882.1.3任务实施2.本地模式的部署步骤4:配置Hive,/tools/hive目录下新建warehouse目录和tmp目录,然后在/tools/hive/conf目录下用vi新建hive-site.xml并配置相关信息[root@node2hive]cdconf[root@node2conf]vihive-site.xml<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><!--配置Hive数据存储在HDFS上的目录--><property><name>hive.metastore.warehouse.dir</name><value>/tools/hive/warehouse</value></property>

<!--配置Hive在HDFS上的临时目录--><property><name>hive.exec.scratchdir</name><value>/tools/hive/tmp</value></property>

<!--配置Hive开启本地模式-><property><name>hive.metastore.local</name><value>true</value></property>

<!--配置MySQL的连接字符串--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&usessL=false</value></property>

<!--配置MySQL的连接驱动--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property>

<!--配置登录MySQL的用户--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property>

<!--配置登录MySQL的密码--><property><name>javax.jdo.option.ConnectionPassword</name><value>Hive@2022</value></property>

<!--配置在cli中是显示表的列名--><property><name>hive.cli.print.header</name><value>true</value></property>

<!--配置在cli中是显示当前数据库名--><property><name>hive.cli.print.current.db</name><value>true</value></property>

<!--配置beeline访问连接被拒绝问题-><property><name>hive.server2.enable.doAs</name><value>false</value></property></configuration>2.1.3任务实施2.本地模式的部署步骤5:用Xftp将JDBC连接MySQL的驱动包mysql-connector-java-5.1.49从本地上传到node2虚拟机/tools/hive/lib目录下面,如图2-89所示步骤6:配置hive环境变量,使用vi/etc/profile命令编辑系统的环境变量文件,在文件尾部添加如下内容,如图2-90exportHIVE_HOME=/tools/hiveexportPATH=$PATH:$HIVE_HOME/bin图2-89图2-90配置环境变量后记住一定要使用source/etc/profile命令使得配置生效2.1.3任务实施2.本地模式的部署步骤7:初始化mysql,运行以下命令,看到“schemaToolcompleted”,则表明初始化成功,如图2-91所示[root@node2hive]#schematool-initSchema-dbTypemysql步骤8:输入hive命令,显示hive>提示符则说明Hive本地模式部署以及配置成功,如图2-92所示图2-91图2-922.1.3任务实施3.远程模式的部署步骤1:node2启动HiveServer2服务在node2虚拟机上运行hiveserver2命令,启动HiveServer2服务,HiveServer2启动成功后如图2-93所示。步骤2:上传并安装Hive到node3的tools目录下,参看嵌入模式的步骤1图2-932.1.3任务实施3.远程模式的部署步骤3:配置Hive,/tools/hive目录下新建warehouse目录和tmp目录,然后在/tools/hive/conf目录下用vi新建hive-site.xml并配置相关信息[root@node3hive]cdconf[root@node3conf]vihive-site.xml<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><!--配置Hive数据存储在HDFS上的目录--><property><name>hive.metastore.warehouse.dir</name><value>/hive/warehouse</value></property>

<!--配置Hive在HDFS上的临时目录--><property><name>hive.exec.scratchdir</name><value>/tools/hive/tmp</value></property>

<!--配置Hive开启本地模式-><property><name>hive.metastore.local</name><value>false</value></property>

<property><name>hive.metastore.uris</name><value>thrift://node2:9083</value></property></configuration>2.1.3任务实施3.远程模式的部署步骤4:配置node3的hive环境变量,使用vi/etc/profile命令编辑系统的环境变量文件,在文件尾部添加如下内容,如图2-94所示。exportHIVE_HOME=/tools/hiveexportPATH=$PATH:$HIVE_HOME/bin图2-94配置环境变量后记住一定要使用source/etc/profile命令使得配置生效2.1.3任务实施3.远程模式的部署步骤5:node3启动Hive客户端,在node3虚拟机上运行Hive的客户端工具beeline来远程连接node服务端,命令如下:[root@node3~]#beeline-ujdbc:hive2://node2:10000-nroot–p上述命令beeline表示客户端连接命令;-u为beeline命令参数,表示连接的HiveServer2的服务端地址;-n表示服务端用户名;-p为服务端用户密码。连接成功后如图2-95所示。图2-952.1.3任务实施3.远程模式的部署步骤6:验证Hive远程连接在node3虚拟机的beeline客户端工具中执行showdatabases命令,查看服务端数据库列表,如果能够显示node2中Hive数据库列表则表示远程连接成功,如图2-96所示。图2-96项目总结我们在项目中首先学习了虚拟机软件的安装、创建,在虚拟机中安装和克隆Linux系统,以及进行网络配置的详细步骤,其次介绍了Hadoop环境的搭建过程,包括如何配置主机名与IP的映射,SSH免密登录,JDK的安装,Hadoop的完全分布式部署的步骤,最后详细介绍了Hive内嵌模式、本地模式、远程模式这三种模式的搭建过程。在本项目中,不仅掌握虚拟机安装Linux的过程,同时掌握了Hadoop完全分布式部署步骤,以及Hive三种模式的安装与部署。感谢您的观看《Hive数据仓库应用教程》项目三Hive基本语法《Hive数据仓库应用教程》目录/CONTENTS任务3-1认识数据类型行业PPT模板/hangye/任务3-2认识运算符1234任务3-3认识Hive命令任务3-4存储数据认识数据类型任务3-1《Hive数据仓库应用教程》3.1.1任务描述在当前的任务中,我们将深入探讨Hive基本数据类型、复杂数据类型及数据类型之间的转换。数据表的设计与实现将直接影响数据库的运行效率。通过本次任务,读者将更好地理解Hive数据类型为认识和理解数据表结构打下基础。3.1.2任务准备知识1.Hive数据类型的概念(1)数据类型是如何在文本文件中进行表示的(2)考虑文本存储中为了解决各种性能问题2.Hive支持的数据类型(1)基本数据类型(数值型、字符串型、布尔型、日期时间型)(2)复杂数据类型(数组(Array)、映射(Map)和结构体(Struct)类型)3.1.3任务实施1.Hive基本数据类型基本数据类型基本数据类型TINYINTSTRINGSMALLINTVARCHARINTCHARBIGINTBOOLEANFLOATDATEDOUBLETIMESTAMPDECIMALBINARYNUMERIC3.1.3任务实施2.Hive复杂数据类型包括:数组Array、映射Map、结构体StructArray类型声明格式为Array<data_type>,表示相同数据类型的数据所构成的集合。Array元素的访问通过从0下标开始。Map类型通过Map<key,value>键值对来声明,key只能是基本数据类型,value可以是任意数据类型。Map数据元素的访问使用[],例Map[‘Tom’]。Struct类型包含不同数据类型的元素,其类型可以是任意的基本数据类型。Struct类型更灵活,可以存储多种数据类型的数据,Struct元素的访问使用点运算符。3.1.3任务实施2.Hive复杂数据类型包括:数组Array、映射Map、结构体Struct这里有一个用于演示如何使用这些数据类型的表结构声明语句,这是一张虚构的表:CREATETABLEcomplex(nameSTRING,friendsARRAY<STRING>,ChildrenMAP<STRING,INT>,AddressSTRUCT<street:STRING,city:STRING>);其中,name是一个简单的字符串﹔friends使用的是数组类型,children使用的是map类型,包括孩子的姓名和年龄分别使用了字符串和整型。address字段使用的是struct类型,包括street和city都使用字符串类型。3.1.3任务实施3.Hive类型转换(1)隐式类型转换所有整数类型、FLOAT和STRING类型都可以隐式地转换成DOUBLE。

TINYINT、SMALLINT、INT都可以转换为FLOAT。BOOLEAN类型不可以转换为任何其它的类型。TimeStamp类型和Date类型可以隐式地转换成文本类型(2)强制数据类型转换数据类型强制转换的语法格式:CAST(exprAS<type>)例如CAST(1'ASINT)将把字符串'1'转换成整数1;如果强制类型转换失败,如执行CAST('80'ASINT),表达式返回空值NULL。Hive可以在TimeStamp类型与Date类型和字符串类型之间进行强制转换。认识运算符任务3-2《Hive数据仓库应用教程》3.2.1任务描述

在Hive的基本操作中,经常需要查询出数据表中满足条件的数据,往往条件不是单一的,需要配合相应的运算符来进行实现。本任务将学会Hive的不同运算符,包括关系运算符、算术运算符、逻辑运算符、复杂运算符等。为实现数据表的查询打下基础。3.2.2任务准备知识

Hive运算符与其他高级语言中运算符类似,由变量、常量等连接表达式中的各个操作数,其作用是指明对操作数进行运算。Hive中常见的运算符有关系运算符、算术运算符、逻辑运算符、复杂运算符。3.2.3任务实施1.关系运算符关系运算符又称比较运算符,用于比较两个表达式的值,其运算结果为逻辑值,可以为True、False或NULL。(1)=运算符=运算符用于比较表达式的两边是否相等,也可以对字符串进行比较:select3.14=3.142,2.12=2.120,'a'='a','apple'='pear';3.2.3任务实施1.关系运算符(2)<>运算符与=运算符相反的是!=运算符,它用来检测表达式的两边是否相等,如果不相等返回真值,相等则返回假值。示例如下:select3<>3,5<>6,'5a'<>'5c';3.2.3任务实施1.关系运算符(3)>、>=、<、<=运算符与=运算符相反的是!=运算符,它用来检测表达式的两边是否相等,如果不相等返回真值,相等则返回假值。示例如下:select3<>3,5<>6,'5a'<>'5c';3.2.3任务实施1.关系运算符(4)[not]null运算符判断表达式的结果是否为null,为null则为真,否则相反,如果是notnull则情况正好和null相反。举例如下:select1fromdualwhere'hello'isnull;3.2.3任务实施1.关系运算符(5)[not]like运算符like运算符是字符串模式匹配,可以包含字符或数字:%代表零或多个字符,_代表一个字符。若与其匹配,则返回true,否则返回false。举例:select1fromdualwhere'hello'like'he%';3.2.3任务实施1.关系运算符(6)rlike运算符确定字符串是否匹配正则表达式,是REGEXP_LIKE的同义词。例如:判断起始为h,结尾为o的字符串匹配:select1fromdualwhere'hello'rlike'^h.*o$';3.2.3任务实施2.算术运算符算术运算符是Hive中最基本的运算符,用于各类数值运算,返回数值类型。运算符支持数据类型示例示例描述+所有数字数据类型A+BA和B相加-所有数字数据类型A-BA减去B*所有数字数据类型A*BA和B相乘/所有数字数据类型A/BA除以B,返回商%所有数字数据类型A%BA对B取余,返回余数3.2.3任务实施3.逻辑运算符逻辑运算符用于对某个条件进行测试,运算结果为TRUE或FALSE。逻辑运算符支持数据类型示例示例描述ANDBoolean数据类型A逻辑与,表达式A与表达式B必须都为true,表达式结果才为trueORBoolean数据类型A逻辑或,表达式A或表达式B至少一个为true,表达式结果才为trueNOTBoolean数据类型NOT逻辑非3.2.3任务实施3.逻辑运算符(1)and运算符and运算符用于测

温馨提示

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

评论

0/150

提交评论