一篇文章教会你搭建Hive分布式集群

一篇文章教会你搭建Hive分布式集群

目录

​编辑

一、环境描述

二、安装mysql

2.1 卸载mysql

2.1.1 列出安装的mysql

2.1.2 卸载mysql

2.1.3 删除mysql文件目录

2.1.3.1 查看mysql 目录

2.1.3.2 依次删除

2.2.1 下载安装源

2.2.2 安装源rpm

2.2.3 加入rpm密钥

2.2.4 执行安装

2.2.5 设置开机自启动

2.2.6 修改密码

2.2.6.1 获取临时密码

2.2.6.2 登录MySQL

2.2.6.3 设置密码策略

2.2.6.4 设置密码最小长度

2.2.6.5 设置root密码

2.2.6.6 开启MySQL远程连接权限

三、安装hive

3.1 解压hive包

3.2 移动解压包

3.3 hive基本配置

3.3.1 配置环境变量

3.3.2 刷新环境变量

3.3.3 拷贝重命名hive-env.sh.template

3.3.4 修改hive-env.sh

3.3.5 拷贝重命名hive-log4j2.properties.template

3.3.6 拷贝mysql-connector-java-8.0.30.jar驱动包

3.3.7 决hadoop 和 hive 中guava.har 版本不一致问题

3.4 分发Hive

3.4.1 分发hive包

3.4.2 分发环境配置文件

3.5 配置 metastore

3.5.1 创建hdfs目录

3.5.2 配置metastore-site.xml

3.5.3 启动metastore

3.5.3.1 初始化元数据

3.5.3.2 创建日志目录

3.5.3.3 执行启动命令

3.5.3.4 查看是否启动成功

3.6 配置hiveserver2

3.6.1 配置hiveserver2-site.xml

3.6.2 修改hadoop 配置

3.6.3 启动hiveserver2服务

3.6.3.1 创建日志目录

3.6.3.2 执行启动命令

3.6.3.3 查看启动是否成功

3.7 配置Hive 客户端

3.7.1 配置hive-site.xml

3.7.2 启动hive

3.8 配置Beeline CLI

3.8.1 启动Beeline CLI 连接

3.8.2 启动beeline

3.8.3 测试通过beeline连接hive2

3.9 访问hive2页面


一、环境描述

系统环境描述:本教程基于CentOS 8.0版本虚拟机

hadoop集群:

一篇文章教会你搭建Hive分布式集群

hive 集群规划:

一篇文章教会你搭建Hive分布式集群

软件版本:

一篇文章教会你搭建Hive分布式集群

提示:Hive 是基于Hadoop的,在开始Hive之前,需要确保你的Hadoop集群是可用的。同时,本次部署需要的zookeeper,我使用的是Hadoop集群中的,关于zookeeper的部署,这里不做描述。因为该文章是基于部署Hadoop之后,所以一些机器的基本配置这里也不做描述,比如机器的免密登录,机器的hosts文件设置,包括基本的JDK安装等,如果对于这些部分有操作上的疑问,欢迎查看之前Hadoop的系列文章。Hadoop 集群部署可参考该文章:一篇文章带你学会Hadoop-3.3.4集群部署_夜夜流光相皎洁_小宁的博客-CSDN博客

二、安装mysql

2.1 卸载mysql

2.1.1 列出安装的mysql

rpm -qa | grep -i mysql

一篇文章教会你搭建Hive分布式集群

2.1.2 卸载mysql

— 依次卸载上一步骤罗列出来的依赖

yum remove mysql-common-8.0.26-1.module_el8.4.0+915+de215114.x86_64

yum remove mysql57-community-release-el7-10.noarch

2.1.3 删除mysql文件目录

2.1.3.1 查看mysql 目录

find / -name mysql

一篇文章教会你搭建Hive分布式集群

2.1.3.2 依次删除

rm -rf /var/lib/selinux/targeted/active/modules/100/mysql

一篇文章教会你搭建Hive分布式集群

## 2.2 在线安装

2.2.1 下载安装源

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2.2.2 安装源rpm

yum -y install mysql57-community-release-el7-10.noarch.rpm

2.2.3 加入rpm密钥

rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2.2.4 执行安装

yum -y install mysql-community-server

在CentOS 8 下会报错:错误:没有任何匹配: mysql-community-server
原因是:【注】出现问题的核心原因为:基于RHEL 8和Oracle Linux 8的基于EL8的系统,在默认情况下附带了一个名为mysql的模块。 除非禁用此模块,否则它将屏蔽,

存储库提供的软件包。只要是 EL8系统安装任何版本的 MySQL 都会有这样的问题。

需要执行一下命令:yum module disable mysql

接着再执行:yum -y install mysql-community-server

然后安装是,执行事务检查报错:

错误:事物测试失败:

file /etc/my.cnf from install of mysql-community-server-5.7.43-1.el7.x86_64 conflicts with file from package mariadb-connector-c-config-3.1.11-2.el8_3.noarch

原因分析:

网上搜了下,说是我的yum 里面安装了mariadb-connector-c-config.noarch ,于是就要执行命令查看一下

yum list installed

一篇文章教会你搭建Hive分布式集群

果然如此,于是,就要删除掉mariadb-connector-c-config.noarch,

yum remove mariadb-connector-c-config.noarch

接着再执行:yum -y install mysql-community-server

成功了

2.2.5 设置开机自启动

systemctl start mysqld.service

systemctl status mysqld.service

一篇文章教会你搭建Hive分布式集群

查看状态,发现mysql 服务处于active(running)状态,说明Mysql 服务启动成功。

2.2.6 修改密码

2.2.6.1 获取临时密码

grep “password” /var/log/mysqld.log

2.2.6.2 登录MySQL

mysql -uroot -p

2.2.6.3 设置密码策略

设置密码策略为LOW,此策略只检查密码的长度

set global validate_password_policy=LOW;

2.2.6.4 设置密码最小长度

set global validate_password_length=6;

2.2.6.5 设置root密码

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘xiaoning’;

2.2.6.6 开启MySQL远程连接权限

grant all privileges  on  *.* to ‘root’@’%’ identified by ‘xiaoning’ with grant option;

三、安装hive

3.1 解压hive包

tar -zxvf apache-hive-3.1.3-bin.tar.gz

3.2 移动解压包

mv apache-hive-3.1.3-bin /usr/local/hive-3.1.3

3.3 hive基本配置

3.3.1 配置环境变量

vim /etc/profile

export HIVE_HOME=/usr/local/hive-3.1.3

export PATH=$PATH:$HIVE_HOME/bin

3.3.2 刷新环境变量

source /etc/profile

3.3.3 拷贝重命名hive-env.sh.template

cd /usr/local/hive-3.1.3/conf

cp hive-env.sh.template hive-env.sh

3.3.4 修改hive-env.sh

export HADOOP_HOME=/usr/local/hadoop-3.3.4

export HIVE_CONF_DIR=/usr/local/hive-3.1.3/conf

export HIVE_AUX_JARS_PATH=/usr/local/hive-3.1.3/lib

export JAVA_HOME=/usr/local/jdk1.8.0_211

3.3.5 拷贝重命名hive-log4j2.properties.template

cp hive-log4j2.properties.template hive-log4j2.properties

3.3.6 拷贝mysql-connector-java-8.0.30.jar驱动包

mv mysql-connector-java-8.0.30.jar /usr/local/hive-3.1.3/lib/

3.3.7 决hadoop 和 hive 中guava.har 版本不一致问题

cd /usr/local/hadoop-3.3.4/share/hadoop/common/lib

cp guava-27.0-jre.jar /usr/local/hive-3.1.3/lib/

cd /usr/local/hive-3.1.3/lib

rm -rf guava-19.0.jar

3.4 分发Hive

3.4.1 分发hive包

scp -r /usr/local/hive-3.1.3/  root@node1:/usr/local/

scp -r /usr/local/hive-3.1.3/  root@node2:/usr/local/

scp -r /usr/local/hive-3.1.3/  root@node3:/usr/local/

scp -r /usr/local/hive-3.1.3/  root@node4:/usr/local/

3.4.2 分发环境配置文件

scp /etc/profile root@node1:/etc/profile

scp /etc/profile root@node2:/etc/profile

scp /etc/profile root@node3:/etc/profile

scp /etc/profile root@node4:/etc/profile

注意:执行source /etc/profile 使环境生效

3.5 配置 metastore

3.5.1 创建hdfs目录

hdfs dfs -mkdir -p /usr/local/hive-3.1.3/hive_local/{warehouse,tmp,logs}

hdfs dfs -chmod -R 755 /usr/local/hive-3.1.3/hive_local/

提示:只需要执行一次

3.5.2 配置metastore-site.xml

cd /usr/local/hive-3.1.3/conf

cat > metastore-site.xml

vim metastore-site.xml





	hive.metastore.warehouse.dir
	/usr/local/hive-3.1.3/hive_local/warehouse




	hive.exec.scratchdir
	/usr/local/hive-3.1.3/hive_local/tmp



	hive.scratch.dir.permission
	775



	hive.metastore.local
	true



	javax.jdo.option.ConnectionDriverName
	com.mysql.jdbc.Driver



	javax.jdo.option.ConnectionURL
	jdbc:mysql://node2:3306/hive?createDatabaseIfNotExist=true



	javax.jdo.option.ConnectionUserName
	root



	javax.jdo.option.ConnectionPassword
	xiaoning



	hive.metastore.uris
	thrift://node3:9083

3.5.3 启动metastore

3.5.3.1 初始化元数据

注意:任意node3、node4等部署metastore的节点选一个初始化,且只需要初始化一次

schematool -initSchema -dbType mysql -verbose

分别到 node3、node4启动  metastore

初始化数据后,使用连接工具连接上Mysql ,可以查看到hive数据库

一篇文章教会你搭建Hive分布式集群

3.5.3.2 创建日志目录

mkdir -pv $HIVE_HOME/logs

3.5.3.3 执行启动命令

hive –service metastore >> $HIVE_HOME/logs/metastore.log 2>&1 &

注意:Node4节点上启动metastore 前,需要修改 hive.metastore.uris地址为: thrift://node4:9083

3.5.3.4 查看是否启动成功

netstat -anp | grep 9083

如果出现端口号进程占用,说明启动成功了

一篇文章教会你搭建Hive分布式集群

3.6 配置hiveserver2

3.6.1 配置hiveserver2-site.xml

cd $HIVE_HOME/conf

cat > hiveserver2-site.xml

vim hiveserver2-site.xml



	hive.metastore.uris
	thrift://node3:9083,thrift://node4:9083



  hive.server2.support.dynamic.service.discovery
  true



  hive.server2.active.passive.ha.enable
  true



  hive.server2.zookeeper.namespace
  hiveserver2_zk



  hive.zookeeper.quorum
  node2:2181,node3:2181,node4:2181



  hive.zookeeper.client.port
  2181



  hive.server2.thrift.bind.host
  master



  hive.server2.thrift.port
  10001 




  hive.security.authorization.enabled
  true



  hive.server2.enable.doAs
  false



  hive.users.in.admin.role
  root



  hive.security.authorization.manager  org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory



  hive.security.authenticator.manager
  org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator

3.6.2 修改hadoop 配置

在hadoop安装目录下的core-site.xml中,需要开启hadoop代理用户配置

	hadoop.proxyuser.root.hosts
	*



	hadoop.proxyuser.root.groups
	*

说明:hadoop.proxyuser.xxx.hosts和hadoop.proxyuser.xxx.groups,其中xxx为启动HiveServer2的用户

配置完成后,需要重启hadoop集群,因为我上次部署hadoop集群,已经配置了上述各项配置,这里我可以忽略该步骤

3.6.3 启动hiveserver2服务

分别在master 、 node1、node2启动

其中node1,node2需要修改hiveserver2-site.xml文件,

#node1:

  hive.server2.thrift.bind.host
  node1


#node2:

  hive.server2.thrift.bind.host
  node2
3.6.3.1 创建日志目录

mkdir -pv $HIVE_HOME/logs

3.6.3.2 执行启动命令

hive –service hiveserver2 >> $HIVE_HOME/logs/hiveserver2.log 2>&1 &

3.6.3.3 查看启动是否成功

netstat -anp | grep 10001

一篇文章教会你搭建Hive分布式集群

3.7 配置Hive 客户端

3.7.1 配置hive-site.xml

touch hive-site.xml

vim hive-site.xml



	hive.cli.print.header
	true




	hive.cli.print.current.db
	true

3.7.2 启动hive

hive

3.8 配置Beeline CLI

3.8.1 启动Beeline CLI 连接

提示:使用Beeline CLI连接需要配置hadoop中hdfs-site.xml 配置文件。需要启动webhdfs;



	dfs.webhdfs.enabled
	true

配置完成后,需要重启hadoop集群,因为我上次部署hadoop集群,已经配置了上述各项配置,这里我可以忽略该步骤.

3.8.2 启动beeline

beeline

3.8.3 测试通过beeline连接hive2

!connect jdbc:hive2://master:10001

一篇文章教会你搭建Hive分布式集群

3.9 访问hive2页面

我们配置启动了三个hiveserver2服务,分别在master、node1、node2节点,所以三个节点均可访问到我们的hive2页面

HiveServer2

一篇文章教会你搭建Hive分布式集群

HiveServer2

一篇文章教会你搭建Hive分布式集群

HiveServer2

一篇文章教会你搭建Hive分布式集群

到此,我们就是实现了hive两个metastore节点,三个hiveserver2节点的分布式集群部署。

好了,今天Hive分布式集群部署的相关内容就分享到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/dc170fae81.html