大数据--Hadoop环境部署(5)Hive部署

Hadoop集群部署:https://www.cnblogs.com/Studywith/p/16948866.html


一.Hive的三种部署模式

1.嵌入模式
使用内嵌的Derby数据库存储元数据,是Hive最简单的部署方式。嵌入模式下的Hive不支持多会话连接,不适合生产环境,只适合测试环境。
2.本地模式
使用本地独立数据库存储元数据,这里的独立数据库通常使用MySQL数据库。本地模式部署的Hive支持元数据共享,并且支持多会话连接。
3.远程模式
远程模式与本地模式一样,同样是使用独立数据库存储元数据。不同的是,远程模式使用的是远端的独立数据库,而本地模式使用的是本地独立数据库。远程模式主要应用于Hive客户端较多的情况。


二.嵌入模式

1.下载安装包+上传+解压

官网:https://dlcdn.apache.org/hive/

这里下载的是apache-hive-2.3.9-bin.tar.gz,上传到node01的/export/software/,解压到/export/servers/

tar -zxvf /export/software/apache-hive-2.3.9-bin.tar.gz -C /export/servers/


2.系统环境变量

便于在各个文件夹下可以直接调用Hive

vim /etc/profile

HIVE_HOME=/export/servers/apache-hive-2.3.9-bin
PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME PATH

source /etc/profile


3.Hive配置文件

参考:https://blog.csdn.net/QYHuiiQ/article/details/124157773

(1)hive-env.sh

cd /export/servers/apache-hive-2.3.9-bin/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

export HIVE_CONF_DIR=/export/servers/apache-hive-2.3.9-bin/conf
export JAVA_HOME=/export/servers/jdk1.8.0_161
export HADOOP_HOME=/export/servers/hadoop-2.7.4
export HIVE_AUX_JARS_PATH=/export/servers/apache-hive-2.3.9-bin/lib


(2)hive-site.xml

cp hive-default.xml.template hive-site.xml
vim hive-site.xml

(命令的意思就是全文查找对应符号,将符号替换为指定符号)
#1.将${system:java.io.tmpdir}替换为我们的tmp目录(iotmp,该目录会自动创建)。直接在当前模式下输入以下命令即可替换,不需要切换为insert模式

:%s#${system:java.io.tmpdir}#/export/servers/apache-hive-2.3.9-bin/iotmp#g

#执行完之后,会提示我们替换了4个地方。
 

#2.再将系统用户名替换为root

:%s/${system:user.name}/root#g

#执行完之后提示我们修改了3个地方。

image

image


4.初始化 Derby

在启动Hive之前需要在Hive的安装目录下进行初始化Derby数据库的操作,出现“schemaTool completed”信息,则证明成功初始化Derby数据库。

cd /export/servers/apache-hive-2.3.9-bin/
bin/schematool -initSchema -dbType derby

image


5.启动Hadoop

必须先启动Hadoop再启动Hive

#node01,02,03分别依次执行(具体见上文Hadoop执行)
zkServer.sh start
zkServer.sh status
hadoop-daemon.sh start journalnode

#node01执行
start-dfs.sh
start-yarn.sh

#完成后分别执行jps查看启动情况

node01

image

node02

image

node03

image


6.启动Hive客户端工具

执行“hive”命令启动Hive客户端工具HiveCLI。可以执行“quit;”命令退出Hive客户端工具HiveCLI,此时在Hive安装目录下会默认生成文件derby.log和文件夹metastore_db。

image


三.本地模式

驱动包和hive-site文件链接:https://github.com/2227558856/resource

1.安装MySQL

参考:https://www.cnblogs.com/ag-chen/p/16004311.html

(1)安装MySQL

使用在线安装MySQL的方式,安装MySQL 5.7版本,在线安装需要确保虚拟机可以连接外网。

#下载并安装wget工具,wget是Linux中的一个下载文件的工具
yum install wget -y
#查看是否存在已安装的mysql
rpm -qa | grep -i mysql
#删除已安装的mysql
rpm -ev mysqlname

#下载MySQL 5.7的yum资源库,资源库文件会下载到当前目录下
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
#安装MySQL 5.7的yum资源库
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
#检查是否安装成功
yum repolist enabled | grep "mysql.*-community.*"

#安装MySQL 5.7服务
yum install mysql-community-server

(2)启动MySQL服务

#启动服务
systemctl start mysqld
#查看MySQL服务运行状态
systemctl status mysqld
#设置开机自启
systemctl enable mysqld
systemctl daemon-reload

(3)登录MySQL

MySQL安装完成后需要通过用户名和密码进行登录,MySQL为本地默认用户root自动生成密码,可以在MySQL的日志文件中查看此密码。

#查看初始密码
grep "password" /var/log/mysqld.log
#输入初始密码
mysql -u root -p
#修改密码,密码策略规则要求密码必须包含英文大小写、数字以及特殊符号,这里也可以修改密码规则,可以自行搜索教程
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL@2022';
#授权其他机器远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MySQL@2022' WITH GRANT OPTION;
#刷新MySQL配置,使得配置生效
FLUSH PRIVILEGES;

查看mysql用户表

select user,host from mysql.user;

image

(4)在Navicat上建立远程连接

这里是为了后面可视化操作,可以忽略

主机:192.168.121.130

用户名:root

密码:MySQL@2022

image

image


2.部署Hive

执行上文三.123,完成基础配置(2.(2)不要执行,如果执行了记得删掉hive-site文件)

(1)hive-site.xml

进入Hive安装目录下的conf目录,新建一个新的文件hive-site.xml用于配置Hive相关参数,可以使用上面的资源链接。

(详细参数修改参考,踩坑参考)

cd /export/servers/apache-hive-2.3.9-bin/conf
touch hive-site.xml

<property>
    <name>hive.metastore.warehouse.dir</name>  #配置Hive数据存储在HDFS上的目录
    <value>/user/hive_local/warehouse</value>    
  </property>
  <property>
      <name>hive.exec.scratchdir</name>  #配置Hive在HDFS上的临时目录
      <value>/tmp_local/hive</value>
  </property>
  <property>
    <name>hive.metastore.local</name>  #指定Hive开启本地模式
    <value>true</value>    
  </property>    
  <property>
      <name>javax.jdo.option.ConnectionURL</name>  #配置JDBC连接地址
      <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;usessL=false</value>
  </property>
  <property>
      <name>javax.jdo.option.ConnectionDriverName</name>  #配置JDBC驱动 
    <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>MySQL@2022</value>
  </property>
  <property>
       <name>hive.cli.print.header</name>  #配置在命令行界面(CLI)中显示表的列名
      <value>true</value>
  </property>
  <property>
    <name>hive.cli.print.current.db</name>  #配置在命令行界面(CLI)中显示当前数据库名称    
       <value>true</value>
  </property>

(2)上传JDBC 连接MySQL的驱动包

进入Hive存放依赖的lib目录下,上传JDBC连接MySQL的驱动包,可以官网下载mysql-connector-java-5.1.47.jar,也可以访问上面的资源链接。

(3)初始化MySQL

启动Hive之前需要执行“schematool -initSchema -dbType mysql”命令初始化MySQL,若初始化完成后出现“schemaTool completed”信息,则说明成功初始化MySQL。

(4)启动Hive

输入hive进行启动(前提是启动了Hadoop,参照上文 二.5)

image


3.建立远程连接

DBeaver貌似可以直接连接hive数据库,参考:https://blog.csdn.net/LMTX069/article/details/127336615

Navicat貌似没有这个选项,这边就不做展示了

image


远程模式待更新~

posted @ 2022-12-04 16:54  脑袋凉凉  阅读(348)  评论(0编辑  收藏  举报