Hadoop大数据开发基础 5 实训指导手册_第1页
Hadoop大数据开发基础 5 实训指导手册_第2页
Hadoop大数据开发基础 5 实训指导手册_第3页
Hadoop大数据开发基础 5 实训指导手册_第4页
Hadoop大数据开发基础 5 实训指导手册_第5页
已阅读5页,还剩66页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

课程名称:Hadoop大数据开发基础

章节名称:Hadoop大数据仓库工具Hive

北京智酷道捷教育科技有限公司

2020年02月

目录

一、实训目的....................................................................2

二、实训方式....................................................................2

三、实训内容....................................................................2

.直HIVE的安装配置.........................................................2

,更HIVE表的操作..........................................................41

四、实训环境..................................................................67

五、项目登辛..................................................................68

六、评分桶隹..................................................................69

一、实训目的

了解了Hive的概念、Hive与关系型数据库的异同、Hive的组件以及体系结构等知识

后,为了让学生掌握Hive的安装配置和Hive表的相关操作,特制订本项目实训指导手册。

通过本项目课程的学习,要求学生掌握并达成以下的目标:

>理解Hive的组件架构和体系结构。

>能够熟练搭建Hive及其各个组件。

>掌握Hive表的创建和相关操作。

二、实训方式

项目实训采取理论+实战的学习辅导形式,先理论后实战,循序渐进,以练为主。

具体分为两个部分:实训基础、实战演练。

实训基础:教师带领学生解析项目案例,回顾之前课堂所学知识,了解Hive的概念、

Hive与关系型数据库的异同、Hive的组件以及体系结构等知识。

实战演练:教师带领学生实操完成Hive的安装配置和Hive表的相关操作,通过案例

实战,进一步巩固所学知识,快速掌握Hadoop大数据仓库工具Hive的应用。

三、实训内容

Hive的安装配置

1.Hive介绍

本节课我们学习Hadoop大数据仓库工具Hive,首先要了解其概念、组件、体系结构

以及应用等,下面逐一进行介绍。

(1)什么是Hive

Hive是基于Hadoop的数据仓库技术,可以用来分析存储在Hadoop中的大规模数

据,并进行ETL操作(提取、转化、加载I

实际上Hive就是用来操作HDFS上的数据的工具。在Hive之前通过MapReduce或

HDFS的API也能够对分布式文件系统中的数据进行访问和操作,那为什么还要开发Hive

技术呢?主要是基于两点原因:首先,由于MapReduce实现复杂,并且要求分析人员熟

悉Java语言的编写,实现一个M叩Reduce不仅要编写M叩逻辑、Reduce逻辑,还要

将项目打包上传到集群中,然后才能执行程序的分析,这个过程比较麻烦,而且调试起来也

不够便捷;其次,以前在传统的数据分析中,数据都是存储在关系数据库里面的,当时就有

很多熟悉SQL语言的数据分析人员通过SQL语言对关系数据库中的数据进行分析,那么如

果HDFS上的数据也能像关系数据库一样通过SQL或者类似于SQL语言的方式来进行分析

的话,很多以前传统的数据分析人员就能非常容易地转到大数据分析行业来,这对整个大数

据分析的工作会非常有利。基于以上两点原因,一些开发人员就开发了Hive技术框架,最

早这个框架是由Facebook实现的,并且在Apache上进行了开源。

Hive的主要功能就是能够把结构化和半结构化的数据文件映射为一张数据库表,并提

供了类似SQL的查询功能。

(2)Hive与关系型数据库的差异

Hive既然支持SQL查询,下面我们就来了解一下它与关系型数据库的差异,可以通过

如下所示的表1来对比加深理解。

表1Hive与关系型数据库的差异

区别Hive关系型数据库

查询语言HQLSQL

数据存储位置HDFS本地文件系统

数据格式判断查询时判断插入时判断

执行MRExecutor

执行延迟高低

处理数据规模大小

从表1可以看出Hive与关系型数据库的差异主要表现在以下6点下面分别进行分析。

查询语言不同。关系型数据库的查询语言为SQL语言,Hive的查询语言是类似SQL

语言的HQL。

数据存储位置不同。Hive的数据是存储在HDFS分布式系统之上的,关系型数据库的

数据存储在操作系统的本地文件系统上。

数据格式判断不同。Hive的数据在查询的时候才进行数据格式的判断;关系型数据库

的数据则比较严谨,在插入的时候就会进行数据格式的判断。

执行不同。Hive的查询操作是转化为底层的M叩Reduce执行的,关系型数据库的SQL

操作是通过底层的执行器Executor执行的。

执行延迟不同。Hive查询操作的速度比较慢,延迟性比较高,不能做到实时查询;关

系型数据库查询延迟比较低,可以做到实时查询。

处理数据规模不同。Hive数据处理规模非常大,是针对大数据的数据仓库,能够处理

海量数据;关系型数据库数据处理规模达不到海量级别,只适合传统数据的处理。

(3)Hive组件总体框图

了解了Hive的概念以及Hive与关系型数据库的差异后,再来了解一下Hive组件的总

体框图,通过如下所示的图1从宏观的角度来了解一下Hive的工作原理。

2

CLI

图1Hive组件总体框图

从上面的Hive组件总体框图中可以看出,Hive提供了CLI命令行的方式对HDFS中的

数据进行访问和操作同时也提供了Beeline和HiveServer2组件的方式访问底层的数据。

访问数据首先必须知道数据存储的位置,对此可以通过Hive提供的HCatalog元数据服务

来获取数据存储的信息,获得存储信息之后就可以通过相应的计算引擎,根据YARN计算

资源分配框架对HDFS中的数据进行操作了。Hive支持的数据计算引擎有多种,默认为

MapReduce但同时也支持Spark和TEZ计算引擎所以说Hive的功能还是非常强大的。

(4)Hive的体系结构

下面我们再通过如下所示的图2来看一下Hive的体系结构,进一步从更微观的角度了

解Hive的工作原理。

HiveclientsHiveservicesHiv暗断口计算

Metastore

Metastoredatabase

Driver■FileSystem

Server

\Hadoop

HiveWebExecutioncluster

InterfaceEngine

图2Hive的体系结构

图中的左侧提供了一些客户端的API机制,可以通过三种协议访问Hive数据,一种是

ThriftRPC的协议,第二个是JDBC的协议,第三个是ODBC的协议,这三种协议通过客

户端的API封装之后,以代码的方式借助它里面的HiveServer组件,通过相关的驱动类

即可访问底层的元数据服务。也可以调用分布式文件系统的FileSystem类,包括一些计算

弓摩的API,对Hadoop中的数据进行分析和处理。

除了客户端API的方式访问Hive数据外,还提供了一个命令行的方式,也就是图2中

中间部分左上角的CLI的方式,以及图中黄色的部分通过浏览器接口进行访问。

(5)Hive的应用

了解了Hive的组件和体系结构后,下面我们再来看一下Hive的具体应用场景。Hive

目前主要应用于以下几个方面:一是数据仓库ETL任务,当然这个数据仓库是指大数据的

数据仓库;二是对网站日志的分析,因为现在互联网公司非常多,互联网的访问数据量也非

常大,所以也需要通过Hive进行数据分析;三是海量数据的离线分析,也就是只要适合

MapReduce工作的场景,一般Hive都会适用。

2.安装Hive

Hive的安装可以按照以下三个步骤进行,具体介绍如下。

第一步,确定Hive的版本。因为Hive是在Hadoop上使用的,所以Hive的版本需

要与当前使用的Hadoop版本匹配。

第二步,解压安装包。下载匹配的Hive版本后要解压安装包,解压命令为tarxzf

apache-hive-x.yz-bin.tar.gz,,

第三步,设置环境变量。首先配置HIVE_HOME环境变量为exportHIVE_HOME={安

装目录路径};然后将HIVE_HOME下的bin目录配置到PATH目录下,具体为export

PATH=$PATH:$HIVE_H0ME/bino

这样就完成了Hive最简单的安装,下面我们通过实际操作来熟悉这个安装的过程。

打开Hive官网,在页面左侧的菜单列表中有一个Downloads链接,单击该链接进入

DOWNLOADS页面,在该页面中单击Downloadareleasenow!链接,进入新的页面,

该页面中提供了Hive安装包的下载地址,单击该地址链接,进入Indexof/hive页面,这

里提供了很多版本的Hive安装包,如图3、图4所示。

GENERALDOWNLOADS

Hnmp

Downloads|W®

LicenseReleasesmaybedownloadedfromApachemirrors:

PrivacyPolicyDownloadaasenow!|

DOCUMENTATION

LanguageManualOnthemirror,allrecentreleasesareavailable,butarenotguarank

Javadoc

图3单击Downloads链接进入DOWNLOADS页面

WesuggestThefollowingmirrorsiteforyourdownload:

http:〃apache.m/hive/

Othermirrorsitesaresuggestedbelow.

ItisessentialthatyouverifytheintegrityofthedownloadedfileusingthePGPsignature(:,as

PleaseonlyusethebackupmirrorstodownloadKEYS,PGPsignaturesandhashes(SHA*etc)

HTTP

http:〃/hive/

http://apache.clazyg/hive/

http:〃apache.cs.utah.edu/hive/

图4单击Hive安装包的下载地址链接

目前Hive的最新版本为hive-3.1.2,这个版本是与hadoop-3版本相匹配的,而这里

我们使用的是hadoop-2.9.2版本,与其匹配的是hive-2.3.6版本,所以单击hive-2.3.6

版本的链接,进入Indexof/hive/hive-2.3.6页面,右键单击下载的链接地址

叩ache-hive-2.3.6-bin.tar.gz,在快捷菜单中选择"复制链接地址",如图5、图6所示。

Indexof/hive

NameLastmodifiedSizeDescription

j

QParentDirectory

hive-1.2.2/2018-05-0413:51

hive-2.3心/~|彳,2019-08-2211:53

□hive-3.fLJ/2019-08-2613:21

hive-standalone-metastore-3,0,0/2018-06-0711:12

hive-storaNe-2,6,1/2018-05-1115:26

口hive-stora女e-2.7,1/2019-12-0109:42

stable-2/2019-08-2211:53

图5单击hive-2.3.6版本链接

图6复制链接地址

打开客户端工具,选择0主机(node3),输入pwd,按下Enter键,输

出结果显示该主机当前处在opt目录下,在该目录下下载安装包即可。通过Linux的wget

命令下载,输入wget,然后粘贴之前复制的下载链接地址,完整命令为wgethttp:

///hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz,按下Enter键,即可

下载安装包,下载完成后如图7所示。

|«W192.168.44.9192J6M4J0X

[root^node3opt]#pwd

/optr-----------------------------------------------------------------------------------------------------j

[roor@node3opt]#wgethttp://apache.claz.org/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz।

--2019-12-2415:56Tin^=~hvrp://apactreTctazrorgTiTtve/

Resolving()...34

connectingto(apache.claz.org)|69.162.86.134|:80...connected.

HTTPrequestsent,awaitingresponse...302Found

Location:http://10.255.250.28/ri1es/6047000010B46693/m/apache/hive/hive-2.3.6/a|

following]

--2O19-12-2415:56:10—http://10.255.250.28/files/6047000010B46693/mirror.bit./apache/hi-

.6-bin.tar.gz

Connectingto8:80...connected.

HTTPrequestsent,awaitingresponse...200OK

Length:232225538(221M)[application/octet-stream]

savingto:j^tgpache-hive-2.3.6-bin.tar.gzt*;]

2019-12-2415:56:30(11.2MB/s)-i^^pache-hive-2.3.6-bin.tar.gzt<saved[232225538/232225538]

[root@node3opt]#

图7下载安装包

输入tarxzvfapache-hive-2.3.6-bin.tar.gz命令,按下Enter键解压安装包。解压完

成后输入cdapache-hive-2.3.6-bin命令,按下Enter键进入安装目录下;然后输入pwd

命令,按下Enter键显示当前目录所在路径,复制该路径,如图8所示。

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/1ib/jaxb-impl-2.2.3-1.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/1ib]ackson-core-asl-l.9.13.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/lib/jersey-core-1.14.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/lib/iersey-servlet-l.14.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/1ib/nive-webhcat-2.3.6.jar

apache-hive-2.3・6-bin/hcatalog/share/webhcat/svr/lib/wadl-resourcedoc-doclet-1.4.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/Iib/commons-exec-1.1.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/lib/qetty-all-server-/.6.0.V20120127.j

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/lib/jul-to-slf4i-l.7.10.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/java-client/hive-webhcat-java-client-2.3.6

[root@node3opt]#cdapache-hive-2.3.6-bin

|root@node3apache-hive-2.3.6-bin]#pwd

/opt7apache-mve^2.3.6而n

[rodt.6诙3apa己芯二frf。9二W6-bin]#

图8复制安装目录路径

输入vi/etc/profile命令,按下Enter键,进入etc目录下的profile文件,将光标移

到最下面,在倒数第二行位置插入HIVE.HOME环境变量的设置,即输入export

HIVE_HOME=/opt/apache-hive-2.3.3-bin,也就是将HIVE_HOME指向前面复制的安装

目录。然后在最后一行的PATH路径下添加HIVE.HOME的bin目录,即在最后一行的后

面输入:$HIVE_HOME/bin即可。这样配置工作就完成了,输入wq命令,按下Enter键

保存退出,如图9所示。

exportJAVA_HOME«/usr/1ocal/jdkl.8.0_161

exportJRE_HOME-$JAVA_HOME/jre

exportPATH=$PATH:SJAVA_HOME/bin:$JRE_HOME

exportCLASSPATH»$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

1Q

fexportHIVE_HO^E=ODL.aoache-hive-2.3.6-bin

exportPATH=$PAfH:$HADOdP_HOME/bin:$HADOOP_HOME/sb-in:/opt/zookeeper-3.4.6/biiL:$HiyE_HOMEbin

*7etc/profile*'91L,2395cwritten

[ro<n@node3apache-hive-2.3.6-bin]#■

图9设置环境变量

配置工作完成后下面进行测试。首先输入source/etc/profile,按下Enter键,将新添

加的环境变量激活;然后输入echo$HIVE_HOME,按下Enter键,查看是否能够正常输

出HIVE_HOME,结果显示能够正常输出,证明前面的配置没有错误,如图10所示。

exportHADOOP_HOME»/usr/hadoop/hadoop-2.9.2

exportHiVE_HOME-/opt/apache-nive-2.3.6-bin

exportPATH-SPATH:$HADOOP_HOME/bin:SHADOOP.HOME/sbin:/opt/zookeeper-3.4.6/

"/etc/profile"91L,2395Cwritten

[root@node3apache-hive-2.3.6-bin]#(source/etc/profile

rrpot@node3apache-hive-2.3n]#echoSHIVEHOME

oot/apache-hive-2.3.6-bin2

「root@hode3apache-hive-2.3.6二bin]*

图10检查配置是否有误

输入Is命令,按下Enter键,查看当前目录(hive目录)下的文件。在hive目录下有

一个bin目录,输入Isbin命令,按下Enter键,查看bin目录下的文件。可以看到bin

目录下有一些Hive提供的脚本,使用Hive最简单的方式就是使用hive脚本启动相应的服

务,如图11所示。

[root@node3apache-hive-2.3.6-bin]#Is

LICENSENOTICE

[rooT®nnrip^AnArhp-hiVA-?.^.6-hinl#Is_b.in

-、*1«甲■"tool

[root@node3apache-hive-2.3.6-6in]#■__________________________________

图11查看Hive的脚本文件

在使用hive脚本之前需要通过schematool命令实现Hive元数据库的初始化。Hive

和NameNode有一点是相似的,就是要访问分布式文件系统中的文件,必须要知道这个文

件的存储位置。在HDFS中元数据信息是存储在NameNode上的,是通过文件的形式保

存的。而在Hive中元数据信息是通过关系型数据库来保存的,Hive安装好之后默认提供一

个名为derby的数据库,这个数据库上可以存储元数据信息。关系型数据库是以表的形式

保存数据的,所以需要通过初始化工作把相关的表创建出来。可以通过bin/schematool

指定初始化的工作,输入bin/schematool-dbTypederby-initSchema命令,按下Enter

键,执行元数据初始化的相关工作,元数据初始化完成后效果如图12所示。

beelinehivehive-confiq.sh如乜91…MM器:*洞立|

[root©node3apache-hive-2.3.6-Din]#;bin/schematool-dbTypederby-initSchema

SLF4J:classpathcontainsmultipleSLF4JbindingsT^

SLF4J:Foundbindingin[jar/opt/apache-hive-2.3.6-bin/lib/log4j-slf4j-impl-2.6.2.jar

r.class]

SLF4J:Foundbindingin[jar:file:/usr/hadoop/hadoop-2.9.2/share/hadoop/common/lib/slf4j-lo

taticLoggerBinder.class]

SLF4J:Seehttp://www.slf4i.org/codes.html#multiple_bindingsforanexplanation.

SLF4J:Actualbindingisortype[org.apache.logging.slf4j.Log4jLoggerFactory]

MetastoreconnectionURL:jdbc:derby:;databaseName=ffietastore_db;create=true

MetastoreConnectionDriver:org.apache.derby.jdbc.EmbeddedDriver

Metastoreconnectionuser:APP

Startingmetastoreschemainitializationto2.3.0

initializationscripthive-schema-2.3.0.derby.sql

initializationscriptcompleted

schemaToolcompleted

_____________________________________1

图12实现元数据库初始化

下面就可以执行hive命令了,输入bin/hive命令,按下Enter键,hive成功启动后

会出现一个hive>提示符的窗口,在这个窗口中就可以输入HQL语句了。可以先通过show

databases;命令查看当前Hive环境下有哪些数据库,按下Enter键,结果显示刚安装好

的Hive只有一个默认的default数据库,如图13所示。

Logginginitializedusingconfigurationinjar:fi1e:/opt/apache-hiv<

iesAsync:true

Hive-on-MRisdeprecatedinHive2andmaynotbeavailableinthei

ne(1spark?tez)orusingHive1.Xreleases.

hive>ishowdatabases:!

OK_____

default

Timetaken:6.121seconds,Fetched:1row(s)

图13查看当前环境的数据库

输入createdatabasetestdb;命令,按下Enter键,创建一个名为testdb的数据库,

提示创建成功。再输入showdatabases;命令进行查看,按下Enter键,输出结果显示多

了一个数据库testdb,证明Hive已经可以正常使用了,如图14所示。

hive>showdatabases;

OK

default

Timetaken:6.121seconds.Fetched:1row(s)

hive>[createdatabasetestdbj

OK

Timetaken:0.049seconds

hive>ishowdatabases;

----

default

tesrdb_

Timetaken:0.018secondstFetched:2row(s)

图14创建数据库并查看

当前这种方式是Hive最基本的使用方式,至此,这种方式就演示完了。

3.元数据库配置

下面我们进一步来学习Hive的配置,前面已经在0主机上执行过hive,

输入Is命令,按下Enter键查看一下执行hive命令后的目录变化,输出显示当前执行hive

脚本的目录下生成了一个名为derby.log的日志文件和一个metastore_db目录。其中

metastore_db目录下存储了Hive的derby的元数据库的信息,如图15所示。

•|9192.168^4.9|V192.16&44.10X

[roo工@node3apache-hive-2.3.6・bin]44_____

■皿LICENSENOTICI

[root©node3apache-hive-2.3.6-bin]#

图15查看执行hive脚本后当前目录的变化

下面切换到opt目录下执行hive。输入cd/opt命令,按下Enter键,切换至(lopt目

录;输入Is命令,按下Enter键;在当前目录下输入hive命令,按下Enter键,同样进入

hive>提示符下;输入showdatabases;命令,按下Enter键,查看当前数据库信息,输

出结果报错,显示找不到相关的数据库,如图16所示。

[rcx)t@node3apache-hive-2.3.6-bin]#cd_/opt

[root@node3opt]#Is

index,html

[root@node3opt]#hive

which:nohbasein(/usrlocal/sbin:/usr/local/bin:/usr/sbin:usr/bin:opt/jdkl.8.0_16

hadoop-2.9.2/sbin:opt/zookeeper-3.4.6/bin://opt/apache-hive-2.3.6-bin/bin:/root/bin:/

in:/usr/hadoop/hadoop-2.9.2/sbin:/opt/zookeeper-3.4.6/bin:/opt/apache-hive-2.3.6-bin/b

SLF4J:classpathcontainsmultipleSLF4Jbindings.

SLF4J:Foundbindingin[jar/opt/apache-hive-2.3.6-bin/lib/loq4-2.6.

SLF4J:Foundbindingin[jar/usr/hadoop/hadoop-2.9.2/share/haaoop/common/lib/slf

SLF4J:seehrtp:///codes.html#multiple_bindingsforanexplanation.

SLF4J:Actualbindingisortype[org.apache.logging.slf4j.Log4jLoggerractory]

Logginginitializedusingconfigurationinjar:file:/optapache-hive-2.3.6-bin/lib/hiv

Hive-on-MRisdeprecatedinHive2andmaynotbeavallableinrhefutureversions,co

hive>showdatabases:

FAILED:semanticExceptionorg.apache,hadoop.hive.ql.metadata.HiveException:java.lang.

hive>|

图16查看当前数据库信息

输入quit;命令,按下Enter键退出;然后输入Is命令,按下Enter键,查看当前目

英opt)下的信息,我们会发现在当前目录下也产生了derby.log日志文件和metastore_db

目录。也就是说通过这种默认的元数据的方式无论在哪个目录下执行hive脚本,都会在当

前的目录下创建相应的元数据的目录,并且在该目录下查找Hive元数据的信息。由于当前

的opt目录下没有执行元数据的初始化所以生成的metastore_db目录中的信息是空的,

也就导致之前执行showdatabases;命令时会报错。而在Hive的安装目录

(apache-hive-2.3.6-bin)下的metastore_db目录执行过元数据的初始化操作,所以

metastore_db目录中有相应的表,那么执行showdatabases;命令时就能查到相应的库

信息。

从上面的操作中可以看出,采用默认的方式使用Hive是非常不方便的,这种方式限定

了只能在一个固定的目录下执行hive的脚本服务。基于上述原因,我们还需要对Hive的

元数据做进一步的配置,以便更便捷地应用Hive技术。

在进行元数据库具体的配置工作之前我们先了解一些基础知识,首先通过如下所示的表

2来了解一下Hive元数据库设置的相关信息。

表2Hive元数据库设置

属性名称类型默认值描述

hive.metastore.warehouse.dirURI/user/hive/warehouse托管表存储位置

逗号分隔如果未设定厕使用

hive.metastore.uris的URI未设定当前的metastore

jdbc:derby:;database

javax.jdo.option.ConnectionURLURImetastore数据库

Name=metastore_db;

的JDBCURL

create=true

org.apache.derbtyjdbJDBC驱动器的类

javax.jdo.option.ConnectionDriverName字符串

c.EmbeddedDriver名

javax.jdo.option.ConnectionUserName字符串略JDBC用户名

javax.jdo.option.ConnectionPassword字符串略JDBC密码

Hive提供了多种方式对元数据库进行配置,通常在生产环境中使用的方式需要配置相

应的参数,主要是通过JDBC的方式配置连接信息。如表中的第三行所示,即配置

javax.jdo.option.ConnectionlIRL参数,通过JDBC的方式连接Hive,会在里面配置连接

的数据库、数据库的名称和数据库的类型等信息。然后还需要配置数据库连接的驱动类、配

置连接的用户名和密码等参数。这些参数配置好之后再使用Hive的时候,就会通过JDBC

的方式查找元数据库的位置,不再依赖当前目录的方式了。在生产环境下使用这种方式配置

元数据库会更加便捷。

下面我们再通过如下所示的图17来了解一下Hive元数据库的三种配置方式。

EmbeddedHiveServiceJVM

metastore

Local

metastore

RemoteHiveServiceJVM

metastore

图17Hive元数据库的三种配置方式

前面我们在配置Hive时采用的默认方式就是图中所示的第一种方式Embedded

metastore,即嵌入式元数据的方式,使用derby的默认方式,在执行脚本的当前目录下

查找元数据库信息。

第二种方式是Localmetastore,即本地模式,这种方式需要配置一个单独的元数据库,

通常这个数据库会采用MySQL,然后在Hive的配置文件中配置相应的元数据库信息,如

表2中提到的4个参数。配置好之后在任何目录下使用Hive的时候都会根据配置的参数查

找数据库,从而获得元数据信息。这种方式使用起来相对会更加灵活,但会有一个问题,就

是只能在本机上使用,因为它的元数据信息是在本机的配置文件里面记录的。

如果需要在集群环境下使用Hive,最好配置为图中所示的第三种方式Remote

metastore即远程服务器的方式。这种方式也需要有一个MySQL数据库来充当元数据库,

然后需要额外在集群中的一台机器上配置元数据库的配置信息酒已置好之后在这台服务器上

启动一个元数据服务,这时候这台主机就充当了元数据的服务器,集群中的其他机器都是通

过客户端的方式来连接元数据Server,并通过连接元数据Server来访问MySQL中的元数

据服务。这时候就可以通过远程的方式来访问,并且集群中有一台机器是充当元数据服务器

的,其他机器是元数据的客户端。

我们可以通过如下所示的图18来理解元数据库Server的配置。

MetaStoreServerMySQL

(Thrift)

Server

图18元数据库Server配置图示

在Hive服务器端通过hive-servicemetastore命令启动元数据库服务,其他充当

Hive客户端的机器上在hive-site.xml文件中配置hive.metastore.uris,即配置元数据库

服务器的连接地址。然后通过ThriftRPC协议访问这个元数据库的信息。

下面我们通过实际操作来具体演示元数据库的另外两种配置方式。

(1)利用MySQL本地数据库配置Hive

打开Linux客户端工具,切换到主机(nodel),这台主机还没有安装

Hive,所以无法使用Hive,下面我们在这台主机上安装Hive.

依然是到Hive的官网复制安装包地址链接,然后返回客户端工具窗口,输入wget命

令,并粘贴刚刚复制的安装包地址链接,即完整命令为wgethttp:

///hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz,按下Enter键,下载

Hive安装包,如图19、图20所示。

Indexof/hive/hive-2.3.6

NameLastmodifiedSizeDescription

A

apache-hive-2.3.6-bin°Rr,国2019-08-2211:532211

apache-hive-2.3.6-srHjLr.gz'2019-08-2211:53201

Apache/2.4.29(Ubuntu)ServeratPort80

图19复制安装包地址链接

[root<anodelopt]#Is

hadoop.tar.gzjdkl.8.O_J.61jdk-8ul61-linux-x64.tar.gzzookeeper-3.4.6zookeeper-3.4.6.tar

[roott&nodeloptJ#rm-fr*.gz

[root(&nodelopt]#Is

jdkl.8.0_J.61zookeeoer-3.4.6

(root@nodelopt]#wqethttp:2/apache./hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.qz||

图20下载安装包

安装包下载完成后要进行解压,输入tarxzvfapache-hive-2.3.6-bin.tar.gz命令,按

下Enter键解压安装包。解压之后输入cdapache-hive-2.3.6-bin命令,按下Enter键进

入hive目录下;输入pwd命令,按下Enter键显示当前目录所在路径,复制该路径;然后

输入vi/etc/profile命令,按下Enter键,进入etc目录下的profile文件,如图21所示。

apacne-mve-2.3.b-Din/ncataiog/snare/webncat/svr/iiD/nive-weoncat-z.3.b.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/1ib/wadl-resourcedoc-doclet-1.4.

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/lib/commons-exec-l.1.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/lib/jetty-all-server-7.6.0.v2O12i

apache-hive-2.3.6-bin/hcatalog/share/webhcat/svr/1ib/jul-to-slf4i-1.7.10.jar

apache-hive-2.3.6-bin/hcatalog/share/webhcat/java-client/hive-webhcat-java-client

[root@nodelopt]#cdapache-hive-2.3.6-bin

(rccrMcdalapaoha-hHv。-?.3.6-bin]#pwd

[root^nodelapache-hive-2.3.6-bin]#vi/etc/profile

图21复制hive目录路径

与前面安装Hive时相同,需要在profile文件中配置两个环境变量。将光标移到倒数

第二行,输入exportHIVE_HOME=/opt/apache-hive-2.3.3-bin,即将HIVE_HOME指

向安装目录。然后在最后一行的结尾处输入:$HIVE_HOME/bin,即在PATH路径下添加

HIVE_HOME的

温馨提示

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

评论

0/150

提交评论