无锡 网站制作 大公司,淘宝网官方网,大连网站设计公司排名,手机app制作公司郑州一、介绍 Apache Hive是一个分布式、容错的数据仓库系统#xff0c;支持大规模的分析。Hive Metastore#xff08;HMS#xff09;提供了一个中央元数据存储库#xff0c;可以轻松地进行分析#xff0c;以做出明智的数据驱动决策#xff0c;因此它是许多数据湖架构的关键组…一、介绍 Apache Hive是一个分布式、容错的数据仓库系统支持大规模的分析。Hive MetastoreHMS提供了一个中央元数据存储库可以轻松地进行分析以做出明智的数据驱动决策因此它是许多数据湖架构的关键组件。Hive构建在Apache Hadoop之上并通过hdfs支持S3adlsgs等存储。Hive允许用户使用SQL读取、写入和管理PB级数据。 官网地址 二、架构 Hive中主要包含Hive-Server 2 (HS2)、Hive Metastore Server (HMS)、以及Hive Client CLI Hive-Server 2 (HS2)HS2支持多客户端并发和身份验证。它旨在为JDBC和ODBC等开放式API客户端提供更好的支持。 简单来说HS2提供JDBC/ODBC访问接口和用户认证 Hive Metastore Server (HMS)是关系数据库中Hive表和分区的元数据的中央存储库并使用元存储库服务API为客户端包括Hive、Impala和Spark提供对此信息的访问。 简单来说Metastore提供元数据访问接口不负责存储元数据通常保存在MySQL当中 元数据在Hive中创建的数据库、表、字段信息不包含数据信息数据信息存储在HDFS中 Hive Client CLI提供客户端访问只能在安装了Hive的本地使用 三、环境搭建
3.1、最小化安装 部署版本3.1.3 下载压缩包
下载地址
解压缩
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/modulemv apache-hive-3.1.3-bin/ /opt/module/hive修改环境变量
vim /etc/profile.d/my_env.sh#HIVE_HOME
export HIVE_HOME/opt/module/hive
export PATH$PATH:$HIVE/bin刷新环境变量
source /etc/profile.d/my_env.sh初始化元数据默认使用derby数据库
/opt/module/hive/bin/schematool -dbType derby -initSchema启动hive
$HIVE_HOME/bin/hive3.2、使用mysql存储元数据
创建元数据库
create database metastore;将mysql的jdbc驱动上传到Hive的lib目录下 新建hive-site.xml文件
vim $HIVE_HOME/conf/hive-site.xml?xml version1.0?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configuration!-- jdbc连接的URL --propertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://hadoop102:3306/metastore?useSSLfalse/value/property!-- jdbc连接的Driver--propertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/value/property!-- jdbc连接的username--propertynamejavax.jdo.option.ConnectionUserName/namevalueroot/value/property!-- jdbc连接的password --propertynamejavax.jdo.option.ConnectionPassword/namevalue123456/value/property!-- Hive默认在HDFS的工作目录 --propertynamehive.metastore.warehouse.dir/namevalue/user/hive/warehouse/value/property
/configuration初始化元数据库
$HIVE_HOME/bin/schematool -dbType mysql -initSchema -verbose3.3、Hive-Server 2(HS2) 部署 上面部署完hive只能在本地客户端访问需要部署HS2才能使用远程jdcb连接访问 修改配置 # 该配置需要分发到所有hadoop节点
vim $HADOOP_HOME/etc/hadoop/core-site.xml!--配置所有节点的root用户都可作为代理用户--
propertynamehadoop.proxyuser.root.hosts/namevalue*/value
/property!--配置root用户能够代理的用户组为任意组--
propertynamehadoop.proxyuser.root.groups/namevalue*/value
/property!--配置root用户能够代理的用户为任意用户--
propertynamehadoop.proxyuser.root.users/namevalue*/value
/propertyvim $HADOOP_HOME/etc/hadoop/hive-site.xml!-- 指定hiveserver2连接的host --
propertynamehive.server2.thrift.bind.host/namevaluehadoop102/value
/property!-- 指定hiveserver2连接的端口号 --
propertynamehive.server2.thrift.port/namevalue10000/value
/property启动HS2 nohup $HIVE_HOME/bin/hive --service hiveserver2 使用DBeaver远程连接 3.4、Hive Metastore Server (HMS) 部署 为Hive CLI或者Hiveserver2提供元数据访问接口其本身不存储元数据 HMS分为两种运行模式嵌入式模式、独立服务模式 嵌入模式在每个HS2和Hive CLI中都都嵌入HMS不做额外配置的情况下采用的是嵌入模式 独立模式HMS独立部署HS2和Hive CLI获取元数据信息通过访问HMS再由HMS访问元数据 3.4.1、嵌入模式
vim $HIVE_HOME/conf/hive-site.xml?xml version1.0?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configuration!-- jdbc连接的URL --propertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://hadoop102:3306/metastore?useSSLfalse/value/property!-- jdbc连接的Driver--propertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/value/property!-- jdbc连接的username--propertynamejavax.jdo.option.ConnectionUserName/namevalueroot/value/property!-- jdbc连接的password --propertynamejavax.jdo.option.ConnectionPassword/namevalue123456/value/property
/configuration3.4.1、独立模式 在嵌入模式的配置基础上增加HS2和Hive CLI访问HMS的地址 !-- 指定metastore服务的地址 --
propertynamehive.metastore.uris/namevaluethrift://hadoop102:9083/value
/property启动HMS nohup $HIVE_HOME/bin/hive --service metastore