1 元数据相关名词

1.1 Metadata

Metadata即元数据。元数据包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。

1.2 Metastore

Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由metastore再去连接MySQL数据库来存取元数据。

有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。某种程度上也保证了hive元数据的安全。

2 metastore三种配置方式

metastore服务配置有3种模式:内嵌模式、本地模式、远程模式。区分3种配置方式的关键是弄清楚两个问题:

  • Metastore服务是否需要单独配置、单独启动?
  • Metadata是存储在内置的derby中,还是第三方RDBMS,比如Mysql。

2.1 内嵌模式

内嵌模式(Embedded Metastore)是metastore默认部署模式。此种模式下,元数据存储在内置的Derby数据库,并且Derby数据库和metastore服务都嵌入在主HiveServer进程中,当启动HiveServer进程时,Derby和metastore都会启动。不需要额外起Metastore服务。

但是一次只能支持一个活动用户,适用于测试体验,不适用于生产环境。

2.2 本地模式

本地模式(Local Metastore)下,Hive Metastore服务与主HiveServer进程在同一进程中运行,但是存储元数据的数据库在单独的进程中运行,并且可以在单独的主机上。metastore服务将通过JDBC与metastore数据库进行通信。

本地模式采用外部数据库来存储元数据,推荐使用MySQL。

hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式。

缺点是:每启动一次hive服务,都内置启动了一个metastore。

2.3 远程模式

远程模式(Remote Metastore)下,Metastore服务在其自己的单独JVM上运行,而不在HiveServer的JVM中运行。如果其他进程希望与Metastore服务器通信,则可以使用Thrift Network API进行通信。

在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性/安全性。

远程模式下,需要配置hive.metastore.uris 参数来指定metastore服务运行的机器ip和端口,并且需要单独手动启动metastore服务。

3 Hive部署实战

安装前准备

由于Apache Hive是一款基于Hadoop的数据仓库软件,通常部署运行在Linux系统之上。因此不管使用何种方式配置Hive Metastore,必须要先保证服务器的基础环境正常,Hadoop集群健康可用。

服务器基础环境

集群时间同步、防火墙关闭、主机Host映射、免密登录、JDK安装

Hadoop集群

启动Hive之前必须先启动Hadoop集群。特别要注意,需等待HDFS 安全模式关闭之后再启动运行Hive。

Hive不是分布式安装运行的软件,其分布式的特性主要借由Hadoop完成。包括分布式存储、分布式计算。

3.1 内嵌模式安装

(1)上传压缩安装包

# 上传解压安装包
cd /home/
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive-3.1.2

(2) 解决hadoop、hive之间guava版本差异

#解决hadoop、hive之间guava版本差异
cd /homw/hive
rm -rf lib/guava-19.0.jar
cp /home/hadoop-2.5.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

(3)修改hive环境变量文件 添加Hadoop_HOME

#修改hive环境变量文件 添加Hadoop_HOME
cd /home/hive-3.1.2/conf/
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/home/hadoop-2.5.0
export HIVE_CONF_DIR=/home/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/home/hive-3.1.2/lib

(4)初始化metadata

#初始化metadata
cd /home/hive
bin/schematool -dbType derby -initSchema

(5)启动服务

#启动hive服务
bin/hive

注意:Hive3版本需要用户手动进行元数据初始化动作。内嵌模式下,判断是否初始化成功的依据是执行命令之后输出信息和执行命令的当前路径下是否有文件产生。

注意:该模式每次换目录就需要重新初始化,数据无法共享。

3.2 本地模式安装

本地模式和内嵌模式最大的区别就是:本地模式使用mysql来存储元数据。

注意:需要先准备mysql环境,请自行准备

(1)上传解压安装包

# 上传解压安装包
cd /home/
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive-3.1.2

(2)解决hadoop、hive之间guava版本差异

#解决hadoop、hive之间guava版本差异
cd /home/hive-3.1.2
rm -rf lib/guava-19.0.jar
cp /home/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

(3)添加mysql jdbc驱动到hive安装包lib/文件下,根据自己mysql的版本选择相应的mysql驱动

(4)修改hive环境变量文件 添加Hadoop_HOME

#修改hive环境变量文件 添加Hadoop_HOME
cd /export/server/hive-3.1.2/conf/
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/home/hadoop-2.5.0
export HIVE_CONF_DIR=/home/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/home/hive-3.1.2/lib

(5)新增hive-site.xml 配置mysql等相关信息

#新增hive-site.xml 配置mysql等相关信息
vim hive-site.xml
<configuration><!-- 存储元数据mysql相关配置 --><property><name>javax.jdo.option.ConnectionURL</name><value> jdbc:mysql://192.168.222.130:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- 关闭元数据存储授权  --><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><!-- 关闭元数据存储版本的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property>
</configuration>

(6)初始化metadata

#初始化metadata
cd /home/hive-3.1.2
bin/schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表

(7)启动hive服务

#启动hive服务
bin/hive

3.3 远程模式安装

选择node1作为hive安装的机器。大家可以根据自己实际情况调整机器位置,注意主机名和IP和等信息的变更。

注意:该模式也需要有mysql环境,请自行安装

(1)上传解压安装包

# 上传解压安装包
cd /home/
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive-3.1.2

(2)解决hadoop、hive之间guava版本差异

#解决hadoop、hive之间guava版本差异
cd /home/hive
rm -rf lib/guava-19.0.jar
cp /home/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

(3)添加mysql jdbc驱动到hive安装包lib/文件下,根据自己mysql的版本选择相应的mysql驱动

(4)修改hive环境变量文件 添加Hadoop_HOME

#修改hive环境变量文件 添加Hadoop_HOME
cd /export/server/hive-3.1.2/conf/
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/home/hadoop-2.5.0
export HIVE_CONF_DIR=/home/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/home/hive-3.1.2/lib

(5)初始化metadata

#初始化metadata
cd /home/hive-3.1.2
bin/schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表

(6)新增hive-site.xml 配置mysql等相关信息

#新增hive-site.xml 配置mysql等相关信息
vim hive-site.xml
<configuration><!-- 存储元数据mysql相关配置 --><property><name>javax.jdo.option.ConnectionURL</name><value> jdbc:mysql://192.168.222.132:3306/hiveremote?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- H2S运行绑定host --><property><name>hive.server2.thrift.bind.host</name><value>hadoop138.com</value></property><!-- 远程模式部署metastore 服务地址 --><property><name>hive.metastore.uris</name><value>thrift://hadoop138.com:9083</value></property><!-- 关闭元数据存储授权  --><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><!-- 关闭元数据存储版本的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property>
</configuration>

(7)远程模式Metastore服务手动启动

如果不启动Metastore,直接启动hive会出现报错,如下:

启动Metastore有三种方式,如下:

#前台启动  关闭ctrl+c
/home/hive-3.1.2/bin/hive --service metastore#后台启动 进程挂起  关闭使用jps + kill
#输入命令回车执行 再次回车 进程将挂起后台
nohup /home/hive-3.1.2/bin/hive --service metastore &#前台启动开启debug日志
/home/hive-3.1.2/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console

(8)启动服务

#启动hive服务
bin/hive

Hive(2):Apache Hive 安装部署相关推荐

  1. Apache Atlas 安装部署

    Apache Atlas 安装部署 1.Atlas 原理及相关概念 2.安装前置条件 3.安装Hbase 4.安装Solr 5.安装kafka 6.编译Atlas 7.安装Atlas 8.集成hive ...

  2. Apache Livy 安装部署使用示例

    Livy 安装部署使用示例 1. Apache Livy 简介 2. 安装前置要求 3.下载安装包配置相关配置文件 4. 启动服务配置使用 5.提交任务获取运行结果 6.拓展参考 1. Apache ...

  3. PHP7.2与apache环境安装部署详细流程

    php-agent 安装部署详细流程 一.环境 测试机内网IP: 10.128.5.98 用户名口令: root/oneapm21 cat /etc/system-release cat /etc/i ...

  4. Apache Atlas安装部署报错之解决方案

    说明:在按照官网文档安装Atlas的过程中,遇到了各种各样的问题,现将本人在实践中,成功安装部署的过程分享给大家. 一.下载安装包 下载安装JDK.(不要用Linux自带的jdk,且atlas2.0要 ...

  5. Apache Ranger安装部署

    1.下载 $ git clone https://github.com/apache/incubator-ranger.git $ cd incubator-ranger $ git checkout ...

  6. Apache Druid安装部署手册

    一 Apache Druid架构 1. Coordinator 监控Historical处理,负责分配segments到指定的服务,确保存在HIstorical中是自平衡的 2. Overlord 监 ...

  7. Hive结合Apache Ranger进行数据脱敏

    Hive概述         Apache Hive是构建在Hadoop之上的数据仓库,支持通过SQL接口查询分析存储在Hadoop中的数据. 在Hive出现之前,数据分析人员需要编写MapReduc ...

  8. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  9. ssis组件_使用SSIS Hadoop组件连接到Apache Hive和Apache Pig

    ssis组件 In our previously published articles in this series, we talked about many SSIS Hadoop compone ...

最新文章

  1. 度量,跟踪和日志记录
  2. 如何用 Slack 和 Kubernetes 构建一个聊天机器人?| 附代码
  3. html form通过ajax提交表单提交数据,Jquery通过Ajax方式来提交Form表单的具体实现
  4. 如何重开固定资产会计年度
  5. [深度学习] Attention机制,一文搞懂从实例到原理
  6. rbac权限管理5张表_thinkphp框架下基于rbac的后台程序
  7. Elasticsearch自动补全(拼音查询自动补全)
  8. homework5_ZhankunLuo
  9. 单片机开发系列(一)之Keil 5 安装使用教程
  10. python制作二维码并打印_通过python扫描二维码/条形码并打印数据
  11. 《Python助力交通》公众号说明
  12. 网页鼠标点击特效代码
  13. 电脑每次开机都要硬盘自检percent complete
  14. 快消品图像识别丨无人店背后的商品识别技术
  15. 如何利用Python编程批量处理Excel来提高日常工作效率!
  16. Xtext语言语法介绍
  17. 解读京东提出的第四次零售革命
  18. 【干货收藏】数据分析师必备的20种分析思维
  19. 【图像分割】萤火虫算法图像聚类分割【含Matlab源码 2106期】
  20. min capacitance 违例

热门文章

  1. 业余无线电通信_享年109岁,美国最年长业余无线电爱好者因感染新冠肺炎逝世...
  2. 2021年中国国有企业经营现状分析:营业收入及利润总额均增加[图]
  3. 如何应聘项目经理,或成为项目经理
  4. 暮光之城 - Eclipse的DVD发行 - 另一个重磅炸弹DVD
  5. 白话数字签名(3)—Web程序中的数字签名
  6. 目标跟踪之Lukas-Kanade光流法
  7. Tableau数据分析笔记-Chapter13雷达图和凹凸图
  8. 每日一题 LeetCode909. 蛇梯棋 java题解
  9. 降本增收 相约Q4 |衡石九月头条
  10. QT_disconnect