首页 > 其他分享 >metastore作用_Hive安装配置

metastore作用_Hive安装配置

时间:2022-08-17 12:15:09浏览次数:74  
标签:MySQL hive metastore usr mysql Hive 安装

本文介绍Hive安装配置的整个过程,包括MySQL、Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区别。网上有很多介绍Hive Metastore三种配置方式的文章,但是理解都不对,给读者造成了很多误导。本人详细阅读Apache和CDH官方文档中关于Hive Metastore的部分,并经过实践,终于填好各种坑,安装配置成功,遂记录下本文,供大家参考。

  1. 相关概念

Hive Metastore有三种配置方式,分别是:

Embedded Metastore Database (Derby) 内嵌模式

Local Metastore Server 本地元存储

Remote Metastore Server 远程元存储

1.1 Metadata、Metastore作用

metadata即元数据。元数据包含用Hive创建的database、tabel等的元信息。

元数据存储在关系型数据库中。如Derby、MySQL等。

Metastore的作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。

1.2三种配置方式区别

内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。

本地元存储和远程元存储都采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.在这里我们使用MySQL。

本地元存储和远程元存储的区别是:本地元存储不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。远程元存储需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程元存储的metastore服务和hive运行在不同的进程里。

在生产环境中,建议用远程元存储来配置Hive Metastore。

  1. 集群规划

本教程Hadoop相关软件全部基于CDH5.5.1,用yum安装,系统环境如下:

操作系统:CentOS 7.2

Hadoop 2.6.0

Hive1.1.0

Spark1.5.0

MySQL 5.6

JDK 1.8

Maven 3.3.3

Scala 2.10

各节点规划如下:

192.168.117.51 Goblin01 nn1 jn1 rm1 worker master hive metastore mysql

192.168.117.52 Goblin02 zk2 nn2 jn2 rm2 worker hive metastore

192.168.117.53 Goblin03 zk3 dn1 jn3 worker hive

192.168.117.54 Goblin04 zk4 dn2 worker hive

说明:Goblin01~04是每台机器的hostname,zk代表zookeeper,nn代表hadoop的namenode,dn代表datanode,jn代表journalnode,rm代表resourcemanager,worker代表Spark的slaves,master代表Spark的master

如果不需要Hive on Spark,只需要Hive on MR,则不需要安装Spark、Maven和Scala。

我们把metastore服务和MySQL都装在51上(装在哪一台都可以),51-54都安装Hive,这样多个客户端可以同时执行Hive命令。

在执行以下步骤之前,请确保已经安装了Hadoop集群

  1. 安装MySQL

下载mysql的repo源

$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安装mysql-community-release-el7-5.noarch.rpm包

$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

安装mysql

$ sudo yum install mysql-server

  1. 配置MySQL和metastore

Step 1: Install and start MySQL if you have not

already done so

$ sudo yum install mysql-server

$ sudo service mysqld start

Step 2: Configure the MySQL Service and Connector

因为使用MySQL作为存储元数据的数据库,所以需要把连接MySQL的jar包放入或链接到$HIVE_HOME/lib目录下。

$ sudo yum install mysql-connector-java

$ ln -s /usr/share/java/mysql-connector-java.jar /usr/lib/hive/lib/mysql-connector-java.jar

To set the MySQL root password:

$ sudo /usr/bin/mysql_secure_installation

[...]

Enter current password for root (enter for none):

OK, successfully used password, moving on...

[...]

Set root password? [Y/n] y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] Y

[...]

Disallow root login remotely? [Y/n] N

[...]

Remove test database and access to it [Y/n] Y

[...]

Reload privilege tables now? [Y/n] Y

All done!

To make sure the MySQL server starts at boot:

$ sudo /sbin/chkconfig mysqld on

$ sudo /sbin/chkconfig --list mysqld

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Step 3. Create the Database and User

$ mysql -u root -p

Enter password:

mysql> CREATE DATABASE metastore;

mysql> USE metastore;

mysql> SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/hive-schema-0.12.0.mysql.sql;

mysql> CREATE USER 'hive'@'metastorehost' IDENTIFIED BY 'mypassword';

...

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'hive'@'metastorehost';

mysql> GRANT ALL ON metastore.* TO 'hive'@'metastorehost' IDENTIFIED BY 'hive';

mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';

mysql> FLUSH PRIVILEGES;

mysql> ALTER DATABASE metastore CHARACTER SET latin1;

mysql> quit;

Step 4. Format the Database

$ cd /usr/lib/hive/bin

$ ./schematool --dbType mysql --initSchema

  1. Hive配置

5.1 HDFS存储位置配置

Hive配置文件里要用到HDFS的一些路径,需要先手动创建。

hdfs dfs -mkdir -p /usr/hive/warehouse

hdfs dfs -mkdir -p /usr/hive/tmp

hdfs dfs -mkdir -p /usr/hive/log

hdfs dfs -chmod g+w /usr/hive/warehouse

hdfs dfs -chmod g+w /usr/hive/tmp

hdfs dfs -chmod g+w /usr/hive/log

上述语句涉及hive-site.xml hive.metastore.warehouse.dir等,表示数据在hdfs中的存储位置

5.2 hive-env.sh (所有节点)

export HADOOP_HOME=/usr/lib/hadoop

export HIVE_CONF_DIR=/usr/lib/hive/conf

5.3 hive-log4j.properties(所有节点)

首先创建log存放的文件夹

mkdir /usr/lib/hive/logs

然后配置hive-log4j.properties

hive.log.dir=/usr/lib/hive/logs

5.4 服务端hive-site.xml

服务端指的是Metastore服务所在的机器,即安装metastore的机器,这里是51和52。

javax.jdo.option.ConnectionURL

jdbc:mysql://Goblin01:3306/metastore?createDatabaseIfNotExist=true

the URL of the MySQL database

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

Driver class name for a JDBC metastore

javax.jdo.option.ConnectionUserName

hive

javax.jdo.option.ConnectionPassword

hive

hive.metastore.warehouse.dir

/usr/hive/warehouse

hive.exec.scratchdir

/usr/hive/tmp

hive.querylog.location

/usr/hive/log

5.5 客户端hive-site.xml

这里指的是53和54。

hive.metastore.uris

thrift://Goblin01:9083,Goblin02:9083

IP address (or fully-qualified domain name) and port of the metastore host

hive.metastore.warehouse.dir

/usr/hive/warehouse

hive.exec.scratchdir

/usr/hive/tmp

hive.querylog.location

/usr/hive/log

  1. 启动Hive

启动MySQL

$ service mysqld start

启动metastore服务

$ service hive-metastore start

启动Hive CLI

因为在4台机器上都安装了hive,并且作了相关的配置,所有四台机器均可以启动Hive CLI(Hive交互式shell)

$ hive

  1. 参考资料

欢迎进入博客 :linbingdong.com 获取最新文章哦~

欢迎关注公众号: FullStackPlan 获取更多干货哦~
————————————————
版权声明:本文为CSDN博主「乃逸夫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42488542/article/details/111952118

标签:MySQL,hive,metastore,usr,mysql,Hive,安装
From: https://www.cnblogs.com/dhcc/p/16594644.html

相关文章

  • VMware虚拟机上的Linux安装(CentOS 7)
    一、什么是shell?Shell是用户与系统(内核)交互的一种方式,传统的GUI也是shell的一种,一般Linux下默认的Shell是Bash,其他的还有zsh、xsh等等。。。他们与Bash的操作差不......
  • Windows服务器Oracle11G安装与完全卸载详细教程(附Oracle11g安装程序)
     首先解压Oracle的安装包,得到安装程序文件(链接:https://pan.baidu.com/s/1lxr_H52kk6R4BrWrBywVfA提取码:73pz)进入到目录下,找到setup.exe右键使用管理员身份运行......
  • 【区块链与隐私保护系列】基于Linux的TensorFlow Federated安装与使用
    一、TensorflowTederated安装基础环境:操作系统:Ubuntu20.04首先,安装Anaconda:具体的安装步骤可以查看这篇文章,亲测实用,https://blog.csdn.net/ITBigGod/artic......
  • node.js安装过程中遇到的坑
    node.js的安装noide.js的完全卸载node.js的安装一些报错的解决1.node.js的完全卸载第一步:打开系统自带的应用管理器卸载ndoe.js。第二步:删除和node.js相关......
  • Windows11下使用WSL2安装Ubuntu(详解+踩坑)错误代码:0x800701bc
    前言曾经在Windows10上使用过WindowsforLinux后来换到Windows11,但因为WSL踩了不少坑。(因为Windows11升级之后使用的是WSL2而非Win10中的WSL1且无法自动升级,因此我们需......
  • docker 安装oracle
    1、docker安装参考:     https://www.cnblogs.com/snailgirl/p/15503867.html2、拉取镜像     dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin......
  • Docker 安装nacos
    1、拉取镜像dockerpullnacos/nacos-server:v2.1.02、准备挂载目录mkdir-p/home/myname/nacos/logs/mkdir-p/home/myname/nacos/init.d/vim/mydat......
  • Redis安装及常用配置
    Redis安装说明大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis.此处选择的Linux版本......
  • elastic search 安装,启动总结
    elasticsearch安装,启动个人机器:Anolis8.2下载地址https://repo.huaweicloud.com/elasticsearch/7.14.0/解压,新建用户【es不能以root启动】tar-xfuserad......
  • 二.Wazuh的安装与使用
    一.安装Wazuh1.安装必要的库#yuminstallcurlunzipwgetlibcapnet-tools2.安装RPM源#rpm--importhttps://packages.wazuh.com/key/GPG-KEY-WAZUH3.添加Re......