大数据之Hive远程模式部署

从logo中就可以看出Hive与Hadoop有着千丝万缕的联系

一,前言

根据小编博客《大数据之Hive》(https://blog.youkuaiyun.com/m0_69086845/article/details/143926529?spm=1001.2014.3001.5502)所介绍,Hive三种部署模式中的远程模式适合企业生产环境,故我只介绍Hive远程模式的部署。在部署Hive之前需要部署JDK,Hadoop以及MySQL,JDK,Hadoop以及MySQL的部署,我后续将会更新,请持续关注小编。
这里我在强调一下Hive远程模式的特点,已经熟悉的可以略过。
特点一:远程模式下,需要单独手动启动Metastore服务,每个客户端都在配置文件里配置连接到该metastore服务。
特点二:远程模式服务和hive不在同一个进程运行。
特点三:远程模式下,需要使用hive.metastore.uris参数来指定metastore服务运行节点的ip和端口号。
特别注意,在启动hive之前要保证以下两点。一是,确保存放hive元数据的MySQL已下载且具有远程访问的权限,由hive-site.xml文件中的这三个参数共同确定,他们是javax.jdo.option.ConnectionURLjavax.jdo.option.ConnectionDriverName,
javax.jdo.option.ConnectionUserName,
javax.jdo.option.ConnectionPassword
;二是,确保Hadoop集群的启动且健康运行。

二,Hive的下载安装

hive的最新版本一般不太稳定和且和Hadoop兼容性不太好,建议退后一两个版本,查找Hive的老版本的地址为
https://archive.apache.org/dist/hive/。一般下载以bin.tar.gz结尾的文件,如apache-hive-3.1.2-bin.tar.gz。解压命令:tar zxvf apache-hive-3.1.2-bin.tar.gz。嫌弃名字太长的可以改名,改名命令:mv apache-hive-3.1.2-bin/ hive。解决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/

三,配置相关文件

1,配置hive-env.sh文件参考

# 1,进入配置文件目录
cd /export/server/apache-hive-3.1.2-bin/conf
# 2,将hive-env.sh.template改名为hive-env.sh
mv hive-env.sh.template hive-env.sh
# 3,编辑hive-env.sh文件
vim hive-env.sh
#,4,以下是配置项
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

2,配置hive-site.xml文件参考

# 1,进入配置文件目录
cd /export/server/apache-hive-3.1.2-bin/conf
# 2,编辑hive-site.xml文件
vim hive-site.xml
# 3,以下为配置项
<configuration>
<!-- 指定连接MetaStore存储介质MySQL的URL -->
<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>
<!-- 连接MySQL的用户名 -->
<property>
	<name>javax.jdo.option.ConnectionUserName</name>
	<value>root</value>
</property>
<!-- 连接MySQL的密码  -->
<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>

3,上传MySQL驱动参考

#上传mysql jdbc驱动到hive安装包lib下

mv ./mysql-connector-java-5.1.32.jar 
$HIVE_HOME/lib

4,配置环境变量参考

vim /etc/profile
export HIVE_HOME=/export/server/apache-hive-3.1.2-bin
export PATH=/export/server/apache-hive-3.1.2-bin/bin
# 使配置文件生效
source /etc/profile

5,初始化元数据命令

bin/schematool -initSchema -dbType mysql -verbos

6,创建hive的存储目录

hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

四,MetaStore的三种常用启动及其终止方式

1,前台启动

hive --service metastore

退出使用ctrl+c 快捷键退出进程

2 ,前台启动并开启日志

hive --service metastore --hiveconf hive.root.logger=DEBUG,console  

退出使用ctrl+c 快捷键退出进程

3,后台启动

nohup hive --service metastore&

关闭进程,使用jps命令查询Hive的进程编号,在使用kill -9 进程编号命令杀死进程

五,Hive的客户端

Hive有第一代客户端和第二代客户端,但第一代客户端hive的官方已经不推荐使用了,所以在这里我只介绍第二代客户端beeline。beeline客户端不直接访问MetaStore服务,而是直接访问HiveServer2服务,HiveServer2直接访问MetaStore服务。所以在使用beeline客户端之前要依次启动MetaStore服务,HiveServer2服务,且启动顺序不能颠倒。启动命令如下:

nohup hive --service metastore & # 后台启动metastore服务
nohup hive --service hiveserver2 &  # 后台启动hiveserver2服务
beeline> ! connect jdbc:hive2://node1:10000  # 连接hiveserver2服务
Enter username for jdbc:hive2://node1:10000: root  # 是登录Linux用户名
Enter password for jdbc:hive2://node1:10000: *******  # root用户的登录密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值