大数据--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个地方。
4.初始化 Derby
在启动Hive之前需要在Hive的安装目录下进行初始化Derby数据库的操作,出现“schemaTool completed”信息,则证明成功初始化Derby数据库。
cd /export/servers/apache-hive-2.3.9-bin/
bin/schematool -initSchema -dbType derby
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
node02
node03
6.启动Hive客户端工具
执行“hive”命令启动Hive客户端工具HiveCLI。可以执行“quit;”命令退出Hive客户端工具HiveCLI,此时在Hive安装目录下会默认生成文件derby.log和文件夹metastore_db。
三.本地模式
驱动包和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;
(4)在Navicat上建立远程连接
这里是为了后面可视化操作,可以忽略
主机:192.168.121.130
用户名:root
密码:MySQL@2022
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&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)
3.建立远程连接
DBeaver貌似可以直接连接hive数据库,参考:https://blog.csdn.net/LMTX069/article/details/127336615
Navicat貌似没有这个选项,这边就不做展示了
远程模式待更新~