Hive的安装部署及配置MySQL元数据

  • Post author:
  • Post category:mysql



目录


前言:版本说明


一:Hive环境介绍


1.1 Hive的安装模式


1.1.1 内嵌模式


1.1.2 独立模式


1.1.3 远程模式


1.2 基本要求


二:安装MySQL


2.1 下载MySQL


2.2 安装


2.3 设置MySQL


三:安装 Hive


3.1 下载 Hive


3.2 解压 Hive并配置环境


3.3 添加MySQL驱动


3.4 格式化 Hive


3.5 启动 Hive


前言:版本说明

  • CentOs 7
  • hive-2.3.6
  • mysql-5.7.28
  • hadoop-2.7.7

一:Hive环境介绍

hive的安装不需要安装为集群模式,只需要安装一个服务端和一个客户端即可,也可以将服务端和客户端配置在一台节点上。MySQL是用来存储元数据信息的,可以是本地的,也可以是远程的,也可以是Windows上的MySQL,这里为了模拟远程部署的MySQL,在node01主机上设置客户端和服务端,在node03上设置为MySQL的服务器。

1.1 Hive的安装模式

HIve的安装模式主要针对于元数据的存储位置来说的,因此共分为三种模式:内嵌模式、独立模式和远程模式。

1.1.1 内嵌模式

内嵌模式安装不需要额外安装元数据库,采用的是Hive默认的Derby数据库,但这种模式有着极大的缺陷就在于只允许一个Hive会话连接。

1.1.2 独立模式

独立模式其实就是在安装Hive的节点上安装一个MySQL服务端,并且将


hive.metastore.local


设置为


true,


配置MySQL地址和用户名密码即可。

1.1.3 远程模式

远程模式就是将Hive服务端与元数据的存储地址分开,元数据直接存储在远程的数据库服务器上即可。因此我们采用的是node01安装Hive服务端,而node03安装MySQL,以此来实现Hive于元数据的解耦操作。

1.2 基本要求

  • Java 1.7

Note: Hive versions 1.2 onward require Java 1.7 or newer. Hive versions 0.14 to 1.1 work with Java 1.6 as well. Users are strongly advised to start moving to Java 1.8(see

HIVE-8607

)

注意Hive1.,2版及更高版本需要Java1.7或更高版本。Hive0.14至1.1版本也可与Java1.6一起使用。强烈建议用户开始使用Java1.8。

  • Hadoop 2.x(preferred), 1. x(not supported by Hive 2.0.0 onward).

Hive versions up to 0. 13 also supported Hadoop 0.20.x, 0.23. x.

Hadoop2.x(首选),1X(Hive2.0.0及更高版本不支持) 。

Hive0.13版本还支持 Hadoop0.20.X,0.23.X。

  • Hive is commonly used in production Linux and Windows environment. Mac is a commonly used development environment. The instructions in this document are applicable to Linux and Mac. Using it on Windows would require slightly different steps.

Hive通常用于生产 Linux和 Windows环境。Mac是常用的开发环境。本文档中的说明适用于 Linux和Mac。在 Windows上使用它需要略有不同的步骤。

二:安装MySQL

2.1 下载MySQL

下载地址:

https://dev.mysql.com/downloads/mysql/

选择如图即可:

2.2 安装

注意:MySQL安装只需要在其中一台节点上安装即可。这里安装在 node03 节点上

  • 首选要卸载数据库mariadb
##查看是否含有数据库mariadb
rpm -qa | grep mariadb
##删除
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
  • 安装 net-tools 和 perl 工具,否则会出现缺少依赖的错误
yum -y install net-tools
yum -y install perl
  • 上传解包安装包(注意是解包,不是解压)
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

  • 开始安装,注意要按顺序依次安装,不然会出现依赖问题安装失败
##第一步
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm

##第二步
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm

##第三步
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm

##第四步
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm

##第五步
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

ps:如果这里安装有问题,请参考 :

https://blog.csdn.net/yxf19034516/article/details/107616632

  • 开始启动MySQL服务
systemctl start mysqld
  • 查看MySQL服务的运行状态
systemctl status mysqld

  • 设置MySQL开机自启
systemctl enable mysqld

2.3 设置MySQL

  • 在日志文件中查看MySQL的root用户默认密码
grep 'temporary password' /var/log/mysqld.log

红色框内的即为默认密码

  • 取消密码策略检查,修改 /etc/my.cnf 文件,在文件中添加以下内容以禁用密码策略。
validate_password=off

如果不取消,则在MySQL5.7中必然会出现密码太过简单的错误。

  • 修改数据库编码为utf-8
##在 /etc/my.cnf 文件中添加以下内容
character_set_server=utf8
init_connect='SET NAMES utf8'
  • 修改完成之后,重启服务
systemctl restart mysqld
  • 进入MySQL,并输入上面所获取的默认密码  >Enqlw22=jvv
#建议先写-p然后输入密码,不然可能出现有语法错误之类的错误
mysql -uroot -p
  • 修改MySQL数据库密码
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> quit;
  • 添加 root 用户的远程登录权限,默认只允许root用户在本地登录,如果要在其他机器上连接MySQL,必须修改root允许远程连接,或者添加一个允许远程连接的账户
mysql -uroot -p123456

##修改权限,此处不修改会导致无法在windows用navicat等工具连接
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
##刷新MySQL系统权限,使其即时生效
mysql> flush privileges;
##退出
mysql> quit;

三:安装 Hive

3.1 下载 Hive

下载地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

3.2 解压 Hive并配置环境

##配置环境变量
vim /etc/profile
##Hive 环境变量
export HIVE_HOME=/opt/SoftWare/hive-2.3.6
export PATH=$PATH:$HIVE_HOME/bin

##关联hadoop
cd hive-2.3.6/conf
cp hive-env.sh.template hive-env.sh
##添加
export HADOOP_HOME=/opt/SoftWare/hadoop-2.7.7
export HIVE_CONF_DIR=/opt/SoftWare/hive-2.3.6/conf

##修改相关配置
cd hive-2.3.6/conf
touch hive-site.xml

在 hive-site.xml 中粘贴以下内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

	<property><!--数据库连接地址,使用MySQL存储元数据信息-->
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://node03:3306/metastore?createDatabaseIfNotExist=true&amp;useSSL=false</value>
	  <description>JDBC connect string for a JDBC metastore</description>
	</property>

	<property><!--数据库驱动-->
	  <name>javax.jdo.option.ConnectionDriverName</name>
	  <value>com.mysql.jdbc.Driver</value>
	  <description>Driver class name for a JDBC metastore</description>
	</property>

	<property><!--数据库用户名-->
	  <name>javax.jdo.option.ConnectionUserName</name>
	  <value>root</value>
	  <description>username to use against metastore database</description>
	</property>

	<property><!--数据库密码-->
	  <name>javax.jdo.option.ConnectionPassword</name>
	  <value>123456</value>
	  <description>password to use against metastore database</description>
	</property>

	<property><!--HDFS路径,用于存储不同map/reduce 阶段的执行计划和这些阶段的中间输出结果-->
	  <name>hive.exec.local.scratchdir</name>
	  <value>/hive/tmp</value>
	  <description>password to use against metastore database</description>
	</property>

	<property><!--本地表的默认位置-->
	  <name>hive.metastore.warehouse.dir</name>
	  <value>/user/hive/warehouse</value>
	  <description>location of default database for the warehouse</description>
	</property>
	<property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
    </property>

    <!--在hive shell显示所属数据库-->
	<property>
	  <name>hive.cli.print.header</name>
	  <value>true</value>
    </property>
    <property>
	  <name>hive.cli.print.current.db</name>
	  <value>true</value>
    </property>
</configuration>

3.3 添加MySQL驱动

下载地址:

https://dev.mysql.com/downloads/connector/j/

解压mysql-connector-java-5.1.48.tar.gz,将里面的 mysql-connector-java-5.1.48.jar 放入 hive-2.3.6/lib 包下

3.4 格式化 Hive

schematool -initSchema -dbType mysql

如图说明成功。

3.5 启动 Hive

注意:Hive的环境需要依赖于Hadoop的集群,在启动hive之前,需要先启动Hadoop的集群

启动成功后,可以看到MySQL的数据库中多出来一个Hive的元数据库

安装完成!



版权声明:本文为yxf19034516原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。