第五章 Hive的安装与配置

系列文章:
第一章 Hadoop集群搭建的准备
第二章 Hadoop集群搭建
第三章 Zookeeper分布式集群部署(2n+1台虚拟机)
第四章 Hadoop高可用集群搭建(HA)
第五章 Hive的安装与配置
待更新
第九章 spark独立模式部署(Standalone)
第十章 spark配置历史服务
第十一章 搭建Spark高可用(HA)
第十二章 spark配置Yarn模式(混合部署模式)
待更新
博客推荐系统(适合初学者的javaweb+hadoop结课设计)
毕业设计 博客分享平台的设计与实现(博客推荐系统升级版、大数据组件、可视化大屏、文章查重)



前言

Hive部署的准备工作。


  • 下载hive安装包
    https://archive.apache.org/dist/hive
    本文使用Hive3.1.2版本。
  • Hadoop与Hive整合。
    因为Hive需要把数据存储在HDFS上,并且通过MapReduce作为执行引擎处理数据。
    向Hadoop中的core-site.xml添加以下配置,并将其同步到Hadoop集群并重启。
<!-- 整合hive,配置Hadoop的代理用户和代理用户组 -->
<!-- 允许任何用户及用户组以root权限操作 -->
<property>
	<name>hadoop.proxyuser.root.hosts</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.root.groups</name>
	<value>*</value>
</property>
  • 上传到Linux的某个目录(本文在/export/servers/)下并解压。
tar zxvf /export/servers/apache-hive-3.1.2-bin.tar.gz
mv /export/servers/apache-hive-3.1.2-bin /export/servers/hive-3.1.2
  • 解决Hadoop、hive之间的guava版本差异。
rm -rf /export/servers/hive-3.1.2/lib/guava-19.0.jar
cp /export/servers/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive-3.1.2/lib/
  • 修改Hive环境变量文件hive-env.sh,添加HADOOP_HOME。
vim /export/servers/hive-3.1.2/conf/hive-env.sh
export HADOOP_HOME=/export/servers/hadoop-3.1.4
export HIVE_CONF_DIR=/export/servers/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/export/servers/hive-3.1.2/lib

一、嵌入模式(测试体验模式)。

特征:不需要安装数据库(元数据存储在内置的derby中),不需要配置启动Metastore服务(Metastore服务随着hive服务的启动而启动),解压安装包初始化(Hive3之后的版本需要手动元数据初始化)即可测试体验。

1、初始化metadata(内嵌模式下,在哪个目录下初始化,元数据存储在哪)

/export/servers/hive-3.1.2/bin/schematool -dbType derby -initSchema

2、启动hive服务

/export/servers/hive-3.1.2/bin/hive

二、本地模式。

1、安装MySQL

特征:需要安装数据库MySQL来存储元数据,但是不需要配置启动Metastore服务。
弊端:每启动一个Hive服务都会开启一个Metastore服务,损耗性能。
在这里插入图片描述

查看是否安装MySQL,没有安装则如下,两种方式:
离线安装MySQL
1、离线安装

# 下载mysql
 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

MySQL官网
2、解压mysql

tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0

3、创建data文件夹 存储文件

mkdir data 

4、创建用户组以及用户和密码

groupadd mysql
useradd -g mysql mysql

5、授权用户

chown -R mysql:mysql /export/servers/mysql-8.0

6、初始化基础信息

/export/servers/mysql-8.0/bin/mysqld --user=mysql --basedir=/export/servers/mysql-8.0 --datadir=/export/servers/mysql-8.0/data/ --initialize

得到临时密码,记住该密码。

7、编辑my.cnf文件

vim /export/servers/mysql-8.0/etc/my.cnf

添加以下信息:

basedir=/export/servers/mysql-8.0/
datadir=/export/servers/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4

8、添加mysqld服务到系统

cp -a /export/servers/mysql-8.0/support-files/mysql.server /etc/init.d/mysql

9、授权以及添加服务

chmod +x /etc/init.d/mysql
chkconfig --add mysql

10、启动mysql,查看启动状态

service mysql start
service mysql status

11、将mysql命令添加到服务

ln -s /export/servers/mysql-8.0/bin/mysql /usr/bin

12、登录mysql,mysql -uroot -p 密码使用之前随机生成的密码

13、修改root密码 其中123456是新的密码自己设置,并生效

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
或者
update user set Password=password('123456') where user='root';

14、修改远程连接并生效

use mysql;
update user set host='%' where user='root';
或者
grant all privileges on *.* to 'root'@'%' identified by '123456' with GRANT option;

15、生效

flush privileges;

在线安装MySQL
1、安装MySQL服务。
下载 mysql、mysql-server、mysql-devel:

yum install mysql mysql-server mysql-devel

无法使用yum,请配置yum仓库,参考 第一章 Hadoop集群搭建的准备
安装mysql-server报错,执行以下命令后再次安装即可。

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-eI7-5.noarch.rpm

2、启动MySQL服务:

service mysqld start
或者/etc/init.d/mysqld start

3、输入mysql,启动mysql命令行模式,执行以下命令:
(1)设置用户名及密码

use mysql;
update user set Password=password('123456') where user='root';

(2)设置允许远程登录

grant all privileges on *.* to 'root'@'%' identified by '123456' with GRANT option;

(3)强制写入

flush privileges;

2、Hive配置

(1)进入hive安装包的conf文件夹,将hive-env.sh.template配置文件模板重命名为hive-env.sh,并配置Hadoop环境变量,文件中添加以下内容:

export HADOOP_HOME=/export/servers/hadoop-3.1.4

(2)配置hive-site.xml文件
hive-site.xml中url里参数分隔符&需要转义为 &amp; 才行
添加:

<configuration>
	<!-- 存储元数据MySQL相关配置 -->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
		<description>mysql连接协议</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
		<description>JDBC连接驱动</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>root</value>
		<description>用户名</description>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>123456</value>
		<description>密码</description>
	</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>

(3)将MySQL连接驱动的jar包上传到hive安装包的lib文件夹下。
https://downloads.mysql.com/archives/c-j
例如:mysql-connector-java-5.1.32.jar。
(4)初始化metadata

/export/servers/hive-3.1.2/bin/schematool -dbType mysql -verbos -initSchema

(5)启动hive服务(同时自动启动metastore服务)

/export/servers/hive-3.1.2/bin/hive

三、远程模式(重要,企业常见)

特点:需要安装MySQL来存储Hive元数据,需要手动单独配置、启动Metastore服务(无论哪个客户端访问Hive元数据都要通过同一个独立的Metastore服务)。
在这里插入图片描述

与本地几乎相同,只需要将hive-site.xml文件中添加以下配置。

	<!-- H2S运行绑定host -->
	<property>
		<name>hive.server2.thrift.bind.host</name>
		<value>node1</value>
	</property>
	<!-- 远程模式部署Metastore服务地址 -->
	<property>
		<name>hive.metastore.uris</name>
		<value>thrift://node1:9083</value>
	</property>

远程模式的启动方式:
(1)启动Metastore服务

  • 前台启动
/export/servers/hive-3.1.2/bin/hive --service metastore
  • 后台启动
    输入命令回车执行,再次回车进程将挂起后台,运行日志在当前目录下nohub.out中。
nohup /export/servers/hive-3.1.2/bin/hive --service metastore &
  • 前台启动,设置日志级别(这里开启debug级别日志)
/export/servers/hive-3.1.2/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console

(2)启动客户端

/export/servers/hive-3.1.2/bin/hive

四、hive命令行客户端

前提:将需要使用hive客户端的服务器上配置hive,hive-site.xml配置文件只需配置以下参数。

	<!-- 远程模式部署Metastore服务地址 -->
	<property>
		<name>hive.metastore.uris</name>
		<value>thrift://node1:9083</value>
	</property>

在这里插入图片描述

1、Hive Client交互工具
远程模式下先启动Metastore服务
进入hive安装包,执行/bin/hive。
2、Beeline Client交互工具
在这里插入图片描述
在这里插入图片描述

Hive服务与客户端的关系
在这里插入图片描述
在这里插入图片描述

远程模式下先启动Metastore服务
(1)在hive安装的服务器中开启hiveserver2服务。(hive服务启动后窗口无反应,即已启动RunJar进程。)

nohup /export/servers/hive-3.1.2/bin/hive --service hiveserver2 &

(2)在node2下的hive安装包中执行远程连接命令/bin/beeline。
输入远程连接协议,连接指定的hive服务(hadoop01)的主机号和端口号(默认10000):

!connect jdbc:hive2://hadoop01:10000

接着输入连接hive服务器的用户名root和密码123456。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开朗小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值