当前位置:   article > 正文

第五章 Hive的安装与配置_hive的安装与配置头歌答案

hive的安装与配置头歌答案

系列文章:
第一章 Hadoop集群搭建的准备
第二章 Hadoop集群搭建
第三章 Zookeeper分布式集群部署(2n+1台虚拟机)
第四章 Hadoop高可用集群搭建(HA)
第五章 Hive的安装与配置
待更新
第九章 spark独立模式部署(Standalone)
第十章 spark配置历史服务
第十一章 搭建Spark高可用(HA)
第十二章 spark配置Yarn模式(混合部署模式)
待更新



前言

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 上传到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
  • 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/
  • 1
  • 2
  • 修改Hive环境变量文件hive-env.sh,添加HADOOP_HOME。
vim /export/servers/hive-3.1.2/conf/hive-env.sh
  • 1
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
  • 1
  • 2
  • 3

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

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

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

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

2、启动hive服务

/export/servers/hive-3.1.2/bin/hive
  • 1

二、本地模式。

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
  • 1
  • 2

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
  • 1
  • 2

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

mkdir data 
  • 1

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

groupadd mysql
useradd -g mysql mysql
  • 1
  • 2

5、授权用户

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

6、初始化基础信息

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

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

7、编辑my.cnf文件

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

添加以下信息:

basedir=/export/servers/mysql-8.0/
datadir=/export/servers/mysql-8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
  • 1
  • 2
  • 3
  • 4

8、添加mysqld服务到系统

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

9、授权以及添加服务

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

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

service mysql start
service mysql status
  • 1
  • 2

11、将mysql命令添加到服务

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

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';
  • 1
  • 2
  • 3
  • 4

14、修改远程连接并生效

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

15、生效

flush privileges;
  • 1

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

yum install mysql mysql-server mysql-devel
  • 1

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

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

2、启动MySQL服务:

service mysqld start
或者/etc/init.d/mysqld start
  • 1
  • 2

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

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

(2)设置允许远程登录

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

(3)强制写入

flush privileges;
  • 1

2、Hive配置

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

export HADOOP_HOME=/export/servers/hadoop-3.1.4
  • 1

(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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

(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
  • 1

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

/export/servers/hive-3.1.2/bin/hive
  • 1

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

特点:需要安装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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

(2)启动客户端

/export/servers/hive-3.1.2/bin/hive
  • 1

四、hive命令行客户端

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

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

在这里插入图片描述

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 &
  • 1

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

!connect jdbc:hive2://hadoop01:10000
  • 1

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/628271
推荐阅读
相关标签
  

闽ICP备14008679号