Hive-安装部署

644 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

目录

MetaStore的配置方式

 Hive的安装部署

启动metastore服务


MetaStore的配置方式

metastore的配置分为三种模式,在这里使用远程模式部署

  • 内嵌模式
  • 本地模式
  • 远程模式

​编辑

通过访问metastore元数据服务,来使用hive

Hive的安装部署

Step1:前提条件

Hive是基于Hadoop的数据仓库软件,不管用何种方式配置MetaStore,都需要保证Hadoop可用和服务器基础环境正常,Hive只需要在一台计算机上安装。

Hive虽然不是分布式软件,但是有分布式的能力,hive本身是单机的,它只需完成SQL解析,转换成MR,但是存数据和计算数据分别是HDFS和MapReduce,所以有分布式的能力。

服务器基础环境

  • 集群时间同步
  • 防火墙关闭
  • 主机Host映射
  • 免密登录
  • JDK安装

在启动Hive之前必须先启动Hadoop,需等待HDFS安全模式关闭之后再启动运行Hive。

Step2:Hadoop与Hive整合

Hive需要依赖Hadoop,因此需要在Hadoop中添加相关配置属性,满足Hive在Hadoop上运行。

在core-site.xml中

​编辑

Step3:安装MySQL数据库

仅在一台机器上安装即可,并且需要授权远程访问

  • 查看是否有Centos7自带的mariadb:rpm -qa|grep mariadb
  • 卸载mariadb:rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
  • 建立存放MySQL的文件夹:mkdir /export/software/mysql
  • 上传MySQL压缩包:rz
  • 解压MySQL压缩包:tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
  • 安装:yum -y install libaio
  • 安装MySQL:rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm
  • MySQL初始化:mysqld --initialize
  • 更改所属组:chown mysql:mysql /var/lib/mysql -R
  • 启动MySQL:systemctl start mysqld.service
  • 查看临时密码:cat /var/log/mysqld.log
  • 登录MySQL:mysql -u root -p
  • 修改密码为****:alter user user() identified by "****";
  • 授权保证其他机器可以远程访问:use mysql;
  • 刷新:FLUSH PRIVILEGES;
  • 退出MySQL:CTRL+D
  • 设置开机自启动:systemctl enable mysqld

如何卸载MySQL

​编辑

Step4:Hive安装

  • 上传Hive压缩包:rz
  •  解压:tar zxvf apache-hive-3.1.2-bin.tar.gz
  •  解决Hive与Hadoop之间guava版本差异,删除低版本,并复制高版本:

cd /export/server/apache-hive-3.1.2-bin/

rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

  •  修改配置文件hive-env.sh

cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib

  • 修改配置文件hive-site.xml
vim hive-site.xml

<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hadoop</value>
</property>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<!-- 远程模式部署metastore metastore地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>

  • 上传mysql jdbc驱动到hive安装包lib下:rz
  • 初始化元数据

cd /export/server/apache-hive-3.1.2-bin/
bin/schematool -initSchema -dbType mysql -verbos

启动metastore服务

  • 前台启动

进程会一直占据终端,按CTRL+C结束进程,日志信息会直接在前台打印,便于排错

启动:/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore

开启debug日志:/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console

  • 后台启动

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &

使用jps查看进程,使用kill -9 杀死进程

可以到根目录下的nohup.out中查看日志信息

\