大数据平台部署与运维7_第1页
大数据平台部署与运维7_第2页
大数据平台部署与运维7_第3页
大数据平台部署与运维7_第4页
大数据平台部署与运维7_第5页
已阅读5页,还剩62页未读, 继续免费阅读

下载本文档

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

文档简介

北京出版社大数据平台部署与运维项目七Hive的部署与使用任务一Hive的认知任务二Hive本地模式的部署任务三Hive远程模式的部署目录/CONTENTS任务四利用Hive实现数据导入任务五利用Hive实现词频统计目标知识目标»

理解Hive的整体架构内容。»

了解Hive与Hadoop的关系。»

了解本地环境下部署Hive的操作流程。能力目标»

能在远程环境下部署Hive,能搭建远程服务和配置Hive的连接。»

能使用Hive进行数据的导入操作,包括创建数据库、数据表、装载数据和插入数据等。素养目标»

具备高度的责任心和敬业精神,培养解决数据处理问题的能力,同时具备创新思维,会主动探索数据处理领域的更多可能性。»

认识到Hive在大数据领域的重要性,培养对社会、对国家发展的责任感。»

在使用Hive进行数据处理和分析时,要遵守职业道德和法律法规。01Hive的认知任务导入随着数据规模的增大和数据形式的复杂化,某公司之前部署的基于Hadoop的大数据平台项目中MapReduce的编写过于复杂,为提高客户大数据平台使用效率,公司为客户在Hadoop集群基础上,新增部署Hive。现公司委派工程师华工进行Hive相关内容的学习。那么,什么是Hive呢?一、Hive架构包括CLI、Client和WUI。CLI常用于命令行操作,启动时会启动Hive副本。Client是客户端,需指定HiveServer节点。WUI支持浏览器访问Hive用户接口01.由CLI、Client和WebUserInterface(WUI)组成,各部分协同提供用户交互功能Hive结构组成部分02.一、Hive架构Hive使用MySQL、Derby等数据库保存元数据,包括表名、列和分区属性、表的属性(如外部表)及数据存储位置等信息。元数据存储01Hive的元数据管理涉及表操作,如创建、修改、删除,以及与元数据相关的表结构和属性的更新和查询。元数据管理02HQL查询处理解释器开始,进行词法、语法分析,接着编译器工作,优化器优化查询,生成查询计划存入HDFS。MapReduce随后调用执行计划。查询计划生成从HQL语句解析开始,经过编译步骤,然后由优化器进行优化,最终生成的查询计划存储在分布式文件系统中。执行流程说明查询计划生成后存储在HDFS,MapReduce框架读取执行计划,负责协调和执行查询操作。一、Hive架构Hive中的数据存储在HDFS,以分块形式分布,适合大规模数据处理。Hive数据存储大部分查询由MapReduce处理,优化器根据查询语句生成执行计划,复杂查询可能不使用MapReduce。Hive查询执行一、Hive架构Hive与Hadoop的关系Hive构建于Hadoop,处理HQL查询,优化生成MapReduce任务执行数据检索,部分查询不涉及MapReduce。Hive数据存储数据全存储在Hadoop,Hive查询计划转化为MapReduce在Hadoop集群中运行,编码统一为UTF-8。二、Hive和Hadoop的关系专注于大数据分析,使用HQL进行查询,适合批处理,适用于结构化数据处理。Hive特性01擅长事务处理和实时查询,支持ACID特性,适用于小到中型数据的在线事务应用。RDBMS特性02Hive数据存储在HDFS上,适合离线分析RDBMS数据存储在本地存储系统,提供高效本地访问。数据存储03Hive通过分区、桶化、压缩等方式优化性能,适合大规模数据处理RDBMS通过索引、缓存、优化器等手段保证高性能和低延迟。性能优化04三、Hive和关系数据库管理系统的区别由于SQL被广泛地应用在数据库中,因此,专门针对Hive的特性设计了类SQL的查询语言HQL。熟悉SQL开发的人员可以很方便地使用Hive进行开发工作。(一)查询语言三、Hive和关系数据库管理系统的区别(二)数据存储位置Hive是建立在Hadoop之上的,所有Hive的数据都存储在HDFS中,而数据库则可以将数据保存在块设备或者本地文件系统中。三、Hive和关系数据库管理系统的区别三、Hive和关系数据库管理系统的区别

(三)数据格式Hive数据格式与加载Hive支持自定义数据格式,如TextFile、SequenceFile、RCFile,但加载数据时不进行格式转换,仅做数据复制或移动数据库加载与存储数据库存储引擎和定制格式影响加载速度,与Hive比较,耗时更长(四)数据更新由于Hive是针对数据库应用设计的,而数据库的内容是读多写少的,因此Hive中不支持对数据的改写和添加,所有的数据都是在加载的时候确定好的。而数据库中的数据通常是需要经常进行修改的,因此可以使用INSERTINTO…VALUES添加数据,使用UPDATE…SET修改数据。三、Hive和关系数据库管理系统的区别三、Hive和关系数据库管理系统的区别

(五)索引Hive数据访问不涉及数据处理或扫描,缺乏索引导致访问延迟高Hive的数据访问机制由于数据的访问延迟较高,决定了Hive不适合在线查询数据。Hive的适用场景Hive结合MapReduce能并行处理大数据,即便无索引,仍能在大量数据访问中保持高效Hive&MapReduce结合(六)执行Hive中大多数查询的执行是通过Hadoop提供的MapReduce来

实

现

的(类

似select*fromtable的查询不需要MapReduce),而数据库通常有自己的执行引擎。三、Hive和关系数据库管理系统的区别Hive无索引全表扫描,以及依赖的MapReduce框架高延迟,导致执行效率不高。Hive查询延迟原因01在数据规模较小的情况下,数据库能保持较低的执行延迟。数据库低延迟条件02面对大规模数据,Hive利用并行计算能力,能展现处理优势。Hive并行计算优势03三、Hive和关系数据库管理系统的区别(七)执行延迟Hive基于Hadoop,扩展性与其同步,可扩展性强。Hive与Hadoop数据库如Oracle,因ACID约束,扩展性受限,理论上限约100台。数据库限制三、Hive和关系数据库管理系统的区别(八)可扩展性三、Hive和关系数据库管理系统的区别由于Hive建立在集群上并可以利用MapReduce进行并行计算,因此可以支持很大规模的数据;相应地,数据库可以支持的数据规模较小。(九)处理数据规模什么是数据要素?02Hive本地模式的部署任务导入根据使用场景的不同,Hive的安装部署模式可分为3种,它们分别是内嵌模式、本地模式和远程模式。Hive内嵌模式由于只支持单会话连接,所以很少使用。Hive本地安装模式和远程模式都是常见的安装和部署方法。Hive的本地模式该如何安装与部署呢?确保Hadoop与MySQL已正确安装配置。Hive依赖环境准备调整hive-site.xml以优化性能与兼容性。Hive配置文件详解在master节点安装Hive,连接MySQL存储元数据。Hive本地部署步骤核实3台主机的Hadoop集群规划与资源分配。环境条件确认执行测试查询,验证Hive与Hadoop集成成功。Hive安装验证一、Hive的安装方式Hive依赖Hadoop的HDFS存储数据,依赖MapReduce进行计算。安装使用Hive前需先安装Hadoop。Hive依赖HadoopHQL支持自定义Mapper和Reducer,便于处理复杂数据分析,易于扩展存储和计算能力,优于关系数据库。HQL:自定义数据分析Hive是基于Hadoop的数据仓库,用于处理和查询大规模数据。它支持SQL查询,将语句转换为MapReduce任务运行,适合熟悉SQL的用户。Hive:Hadoop的SQL一、Hive的安装方式(一)Hive安装部署的前提条件Hive数据包含表数据和元数据,元数据描述了数据的结构和位置,如数据库名、表名、字段类型等。Hive支持使用Derby或MySQL作为元数据库,元数据存储路径可本地或远程配置。Hive数据类型与元数据01Hive安装方式有内嵌、本地和远程模式。内嵌模式适用于单会话,元数据存储在Derby数据库中,不支持多会话访问。Hive的安装方式02Hive本地模式采用MySQL等外部数据库存储元数据,支持多用户访问,可部署在同一或远程机器上。Hive的本地模式03Hive远程模式下,元数据服务器与Hive服务器分离,MetaStoreServer在元数据服务器端运行,客户端通过它访问MySQL。Hive的远程模式04一、Hive的安装方式(二)Hive的安装方式部署Hive本地模式的主要工作流程如下。(1)安装并配置MySQL。(2)安装并配置Hive。其中,安装并配置Hive的具体流程如下。①

解压安装包并配置环境变量。②

修改Hive的配置文件。③

在Hive安装目录下创建tmp目录。④

部署jdbc驱动包。⑤

对Hive元数据库进行初始化。⑥

启动Hive客户端,测试Hive部署是否成功。二、Hive本地模式的部署流程(一)工作流程Hive本地模式的安装需要将Hive和元数据库MySQL都安装在master节点上。二、Hive本地模式的部署流程(二)操作步骤使用yum源安装MySQL01下载MySQLrepo源执行wget命令下载MySQLrepo源,解决默认yum源中无MySQL的问题。03安装MySQL包通过rpm命令安装下载的MySQL包,为安装服务器做准备。02安装wget如wget未安装,使用yum命令先行安装,确保wget可用。04安装MySQL服务器使用yum命令安装MySQL服务器,完成MySQL的安装配置。二、Hive本地模式的部署流程(二)操作步骤连接MySQL并配置权限与数据库安装并配置MySQL使用grant命令给root用户授权,允许远程访问,并设置密码,确保安全性,使用flushprivileges刷新权限变更。MySQL远程访问权限执行systemctlstartmysql启动服务,通过mysql命令进入数据库,grant与flushprivileges授予权限并刷新,createdatabasehive创建数据库,最后exit退出MySQL。二、Hive本地模式的部署流程(二)操作步骤解压安装包并配置环境变量。将下载好的Hive安装包进行解压,并修改为短。01安装Hive解压apache-hive-3.1.2-bin.tar.gz,重命名目录为hive。02配置环境变量编辑/etc/profile,添加HIVE_HOME=/opt/hive,更新PATH包括HIVE_HOME/bin和conf。二、Hive本地模式的部署流程(二)操作步骤修改Hive的配置文件配置MySQL连接在Hive的conf目录下新建并编辑hive-site.xml文件,设置MySQL数据库连接参数。安装Hive配置环境变量JAVA_HOME、HADOOP_HOME、HIVE_HOME、HIVE_CONF_DIR在hive-env.sh文件中。二、Hive本地模式的部署流程(二)操作步骤03Hive远程模式的部署任务导入Hive远程模式是指远程部署MySQL数据库来代替Hive自带的Derby数据库,使Hive服务器和元数据MySQL服务器运行在不同的节点上,Hive服务和MetaStore服务运行在不同的进程或不同的机器上。Hive远程模式是企业实际生产中常用的一种部署方式,这种模式的安装部署过程比本地模式相对复杂一些,访问方式也不太一样,需要特别注意。那么,Hive远程模式的安装与部署都有哪些步骤呢?Hive服务器配置Hive服务端部署Hive客户端安装Hive服务器角色master01作为客户端,仅安装Hive的客户端组件,用于提交作业和查看结果。worker01作为服务器端,安装完整Hive服务,处理计算任务。在master01节点配置Hive客户端,确保能远程访问worker01上的Hive服务。在worker01节点上配置Hive服务,设置环境变量,确保能接收并执行客户端提交的任务。一、Hive远程模式元数据服务共享,减少资源浪费,所有客户端共用一个MetaStore服务,提高效率。远程模式优势未提供具体细节,需参照实际Hive文档或操作手册,进行详细安装部署规划。Hive远程模式规划一、Hive远程模式二、部署Hive远程模式

(一)工作流程部署Hive远程模式的主要工作流程如下。(1)在master01和worker01节点部署Hive。(2)worker01作为HiveServer进行配置。(3)master01作为客户端进行配置。(4)在worker02节点上安装MySQL服务器。(5)启动Hive。解压与重命名Hive目录在master01节点,解压ApacheHive到/usr/local后,使用mv命令重命名文件夹为/hive。0102远程复制Hive至worker节点将master01的hive目录通过scp命令远程复制到worker01的/usr/local,命令为:scp-rhive/workerl:/usr/local。03设置Hive环境变量在master01和worker01节点,编辑/etc/profile,添加Hive环境变量:exportHIVE_HOME=/usr/local/hive,exportHIVE_CONF_DIR=/usr/local/hive/conf,$PATH包含$HIVE_HOME/bin和$HIVE_CONF_DIR。二、部署Hive远程模式

(二)操作步骤将MySQL驱动jar包复制到Hive服务器的$HIVE_HOME/lib目录下,以使worker01能与元数据库通信。添加MySQL驱动至Hive01配置hive-env.sh文件,将HADOOP_HOME设置为/usr/local/hadoop/,以匹配实际的Hadoop安装路径。配置hive-env.sh文件02在worker01的$HIVE_HOME/conf创建hive-site.xml,配置文件内容。创建并配置hive-site.xml文件03二、部署Hive远程模式

(二)操作步骤创建hive-site.xml文件01配置master01节点创建hive-site.xml文件,设置元数据存放路径/user/hive/remote/warehouse,禁用本地服务,连接worker01的thrift服务器9083端口。02配置详情详细配置包括hive.metastore.warehouse.dir指向仓库目录,hive.metastore.local设为false,hive.metastore.uris指向thrift://worker01:9083。二、部署Hive远程模式

(二)操作步骤04利用Hive实现数据导入任务导入某科技公司的郑工为客户成功部署Hive后,客户希望将现有文本文件中的内容批量导入到Hive数据仓库中。现有文本文件内容如下图7-13所示,四列内容依次表示:ID、姓名、年龄、是否为男性。那么,该如何将文本文件中的内容批量导入Hive数据仓库呢?数据库名称创建名为'hive'的数据库,使用Hive语句实现,为数据导入提供基础支持。数据导入操作使用Hive的命令将外部数据源导入到刚创建的'hive'数据库中,确保数据可用性。一、创建数据库(一)创建数据库查看Hive中包含的所有数据库,如图7-15所示。hive>showdatabases;查看Hive中以h开头的所有数据库。hive>showdatabaseslike'h*';这里需要说明的是,本任务实施前需要启动Hadoop与Hive。创建数据库hive,如果同名数据库已经存在,则会抛出异常,加上ifnotexists关键字,则不会抛出异常。hive>createdatabaseifnotexistshive;一、创建数据库(二)查看数据库为hive数据库设置dbproperties键值对属性值来描述数据库属性信息,如图7-16所示。hive>alterdatabasehivesetdbpropertiesCowner'='hadoop');一、创建数据库(三)修改数据库展示数据库文件位置,如图7-17,使用命令'describedatabasehive',显示信息指示hive数据库存储在HDFS的/user/hive/warehouse路径下。Hive数据库概述执行命令获取详细信息,包括基本信息和属性信息,以全面了解hive数据库的状态和配置。Hive数据库详细信息一、创建数据库(四)描述数据库创建Hive内部表usr,含id、name和age三列,数据存储在"/usr/local/hive/warehouse/hive/usr"。创建内部表usr01查看Hive数据库信息:先使用“usehive”切换到hive库,再用“showtables;”显示所有表,用“describeusr;”查看表usr的基本信息,或用“describeextendedusr;”查看详细信息。查看hive数据库信息02内部表是Hive默认表,数据存储在warehouse目录,适合ETL中间表或需易于恢复的数据场景。内部表特性与应用场景03使用通配符查看hive数据库中所有以u开头的表和视图:`showtablesinhivelike'u*'`。使用通配符查看数据表04二、创建数据表(一)创建数据表二、创建数据表(二)修改数据表表名重命名数据表usr为usrl,如图7-19所示。hive>altertableusrrenametousrl;将usr1表中的"name"列改为"username",列序在"id"后,命令为:altertableusrlchangenameusernamestringafterid。修改name列01增加新列02在usr1表中添加新列"sex",类型为boolean,命令为:altertableusrladdcolumns(sexboolean)。二、创建数据表(三)修改数据表列名设置数据表分隔符,如将字段分隔符设为空格,示例如:`altertableusrlsetSERDEPROPERTIES('field.delim'='');`。设置数据表分隔符01Hive默认分隔符是^A,但可根据需求在导入数据前设置自定义分隔符。若需在文件中显示^A,需使用<Ctlr+V>和<Ctlr+A>组合键。数据分隔符说明02"usrl"表的分隔符为空格,数据存储在HDFS中,后续任务会用到。查看数据表信息03三、装载数据(一)设置分隔符格式三、装载数据在Linux系统中,创建预装载数据的文件,例如创建usrl.txt文件,如图7-22所示。$cd/usr/local/hive$mkdirdata$vidata/usrl.txt按照usrl表的各字段数据类型要求,编辑内容:1zhangsan15true2lisi25false(二)创建数据文件使用'loaddatalocalinpath'命令,将/usr/local/hive/data/usrl.txt路径的文件数据覆盖写入到usrl表中。数据装载命令01执行'select*fromusrl'命令,查看装载后表usrl的全部数据。数据表查看操作02三、装载数据(三)装载本地数据命令行示例:创建HDFS目录/usr/data,然后上传/usr/local/hive/data/usrl.txt文件至该目录。数据文件上传至HDFS"usrl.txt文件移动至usrl表路径,完成内部表数据装载。"内部表数据装载过程已清空usrl表,正从HDFS路径/husr/data/usrl.txt装载数据。数据装载至usrl表数据装载完成后,HDFS路径/usr/local/hive/warehouse/hive/usr下已存有usrl表文件,可使用$hdfsdfs-ls命令查看此路径及/usr/data路径下的文件。查看HDFS路径下的文件三、装载数据(四)装载HDFS数据使用INSERTINTO语句,向usrl表中插入一条新数据,具体值为(3,'wangwu',18,true)。SQL命令构建确保新插入的用户数据符合表结构,且不违反数据安全规定,如避免插入敏感信息。数据安全规范在插入前检查现有数据,保证新数据的插入不会破坏表的完整性约束。数据完整性检查执行SQL命令,将数据(3,'wangwu',18,true)插入到usrl表中,并确认操作成功。执行SQL操作四、插入数据0102Hive数据查询执行SQL语句:select*fromusrl,验证表中是否存在新增数据。HDFS文件检查操作后,使用HDFS命令检查文件系统,确认文件有无更新。四、插入数据如图7-26所示,删除数据库hive,加上cascade关键字,可以删除当前数据库和该数据库中的表。hive>dropdatabaseifexistshivecascade;需要说明的是,可以看到,Hive将SQL语句转换成MapReduce任务并执行。最终的结果被移到HDFS上。删除数据库时,如果库中有数据表,则应加上关键词cascade,否则系统将会报错。如果不加关键词cascade,则只能删除空数据库,即数据库中无数据表的空数据库。五、删除数据库05利用Hive实现词频统计任务导入某科技公司的郑工利用Hive成功为客户实现数据导入后,客户公司很满意,又希望郑工利用Hive为他们实现词频统计功能,以便于直观地感受Hive组件相对于MapReduce编程更便捷、更高效的功能。那么,郑工该如何完成本任务呢?word.txt内容数据集上传HDFS在实现词频统计之前先设置好需要统计的数据集,并上传到HDFS。

温馨提示

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

评论

0/150

提交评论