Hive的安装部署

目录

Hive的安装部署

Hive部署模式

Hive环境部署

软件准备

MySQL安装

Hive安装

Hive元数据配置到MySQL


Hive的安装部署

Hive部署模式

按照元数据(Metastore)存储位置的不同,其部署模式分为内嵌模式、本地模式和完全远程模式三种。当使用完全模式时,可以提供很多用户同时访问并操作Hive,并且此模式还提供了各类接口(BeeLine,CLI,甚至是Pig)。

(1)内嵌模式

此模式是安装时的默认部署模式,此时元数据存储在一个内存数据库Derby中,并且所有组件(如数据库、元数据服务 )都运行在同一个进程内,这种模式下,一段时间内只支持一个活动用户。但这种模式配置简单,所需机器较少。

(2)本地模式

此模式是Hive元数据服务依旧运行在Hive服务主进程中,但元数据存储在独立的数据库中(可以是远程机器),当涉及元数据操作时,Hive服务中的元数据服务模块会通过JDBC和存储于DB里的元数据数据库交互。

(3)完全远程模式

此时,元数据服务以独立进程运行,并且元数据存储在一个独立的数据库里。此时HiveServer2、Hcatalog、Cloudera ImpalaTM等其他进程可以使用Thrift客户端通过网络来获取元数据服务。而Metastore service则通过JDBC和存储在数据库(如MySQL)里的Metastore Database交互。

其实这就是典型的网站架构模式,前台页面给出查询语句,中间层使用Thrift网络API将查询传到Metastore service,接着Metastore service根据查询得出相应结果,并且给出回应。

Hive环境部署

在这里我们搭建本地模式的Hive环境。

软件准备

(1)Hive官网地址:Hive官网地址

(2)下载地址:下载地址

(3)Hadoop集群环境。

(4)MySql安装包:下载地址

(5)驱动mysql-connector-java-5.1.27-bin.jar:下载地址

MySQL安装

我使用如下版本进行安装。

(1)检测本地是否存在mysql的包。

(2)检测本地是否有mariadb已存在的包。

(3)如果存在,则使用yum命令卸载它。

(4)上传jar包到/opt/soft下,并且解压

(5)安装mysql的server、client、common、libs、libcompat

来到/opt/module/mysql/目录下,可以看到这些安装文件。分别进行安装。

安装server

安装client

安装common

安装libs

安装lib-compat

汇总结果:

(6)查看mysql的服务是否启动

因为我是第一次装,所以目前还是未启动状态。所以我们可以启动一下。

 

(7)查看默认生成的密码

马赛克部分就是我生成的默认密码

当然,也可以直接查找

(8)登陆mysql服务

(9)修改密码

修改密码之前,我们需要了解一下5.7版本mysql密码强度的设置规则

0 or LOW

长度

 

1 or MEDIUM

长度、大小写、数字、特殊字符

 

2 or STRONG

长度、大小写、数字、特殊字符、词典

 

 

为了操作方便,我在这里暂时将密码强弱设置成LOW级别(0/LOW,1/MEDIUM,2/STRONG)

设置密码至少要含有的大小写字母个数

设置密码至少要包含的数字个数

设置密码至少要包含的特殊字符个数

设置密码的最小长度

现在,终于可以修改密码了

刷新一下

我们可以查看一下密码设置表

退出保存

(10)修改远程登录权限

查看一下mysql的user表

我们可以看到目前有登录权限的只有localhost本地

修改权限为所有%:

这样就可以进行远程登录了

刷新一下

测试看权限是否修改成功

能登陆说明修改成功了。

Hive安装

(1)上传安装包,然后解压缩,这里我使用的1.2.1的版本

tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/

(2)修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh

(3)配置hive-env.sh文件

(4)修改hive的log存放日志到/opt/module/hive/logs

首先,修改conf/hive-log4j.properties.template文件名称为hive-log4j.properties

在hive-log4j.properties文件中修改log存放位置

(5)Hadoop集群配置

启动hdfs和yarn

在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写,后一个目录是hive默认的存储目录。如果出现错误的话可以尝试重启机器( :( )

我们可以看到/tmp目录只有用户具有权限,/user目录组只具有读和执行的权限,我们将其修改成拥有写权限

我们可以通过web页面直接打勾设置,也可通过命令行设置

(6)配置Hive环境变量

source一下

(7)启动Hive,测试Hive是否启动。

Hive部署成功,但是此时Hive默认使用的诗Derby数据库,Derby只支持同一时间内单个用户的访问,所以此时如果有其他用户访问会报错。

Hive元数据配置到MySQL

(1)上传驱动mysql-connector-java-5.1.27-bin.jar到/opt/module/hive/lib/,在/opt/module/apache-hive-1.2.1-bin/conf/目录下创建hive-site.xml文件,并加入以下官方文档配置参数。官方文档

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://yourhostname:3306/metastore?createDatabaseIfNotExist=true</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>your password</value>
	  <description>password to use against metastore database</description>
	</property>
</configuration>

(2)在hive的bin目录下执行./schematool -dbType mysql -initSchema,该命令的目的是初始化元数据库。

(3)重新启动Hive,如果启动hive异常,可以重新启动虚拟机。(重启后,别忘了启动hadoop集群)

mysql应该可以多用户登录,我们可以测试一下,再开一个bigdata111页面

可以多用户登录。

(4)上面Hive已经启动成功,但是Info中还存在Warning,我们可以再hive-site.xml中进行修改,消除这个warning。另外,默认的官方hive-site.xml文档没有配置utf-8字符集,导致数据库可能无法存储中文,所以我们可以再修改一下hive-site.xml文件。

值得一提的是,常规的xml文件只要用 & 连接属性就行,但是在JDBC中无法识别,所以要使用 &amp; 的格式。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://bigdata111:3306/metastore?createDatabaseIfNotExist=true&amp;characterEncoding=utf-8&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>
</configuration>

修改之后再重新启动,就没问题了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值