CentOS7搭建远程连接hive的JDBC的环境

hive远程连接JDBC的环境搭建

  • 一、 环境
  • 二、先下载需要用到的环境
  • 三、开始安装
  • 四、配置文件
  • 五、使用beeline连接hiveserver2
  • 六、参考

一、 环境

centos版本:7
hive版本:2.3.7
hadoop版本:2.10.1
mysql版本:5.7.35
java版本:1.8.0_231

二、先下载需要用到的环境

链接: link.
hive的bin包、mysql的驱动包、hadoop版本包、java包,mysql我使用的是yum下载所以就没有包提供了。

三、开始安装

首先讲hive的包拉到虚拟机里比如我的包在如下位置:
CentOS7搭建远程连接hive的JDBC的环境_第1张图片

然后我们使用如下命令:tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/MySoft/MySoftWare
将包安装到指定目录
然后我们改个名,使用如下命令:mv apache-hive-2.3.7-bin.tar.gz hive-2.3.7
改完名之后我们到/etc/profile.d 里面创建一个文件vim hive.sh,写这个文件是为了方便后续使用,相当于windows的环境变量的设置
文件内容:
在这里插入图片描述

使用:source /etc/profile更新配置或者单更新hive.sh也可以
然后用hive --version看看是否有如下信息,有的话代表完成了hive环境变量的配置。

在这里插入图片描述

更新完文件之后设置hive的配置文件
进入到$HIVE_HOME/conf目录下($HIVE_HOME是我们刚刚配置的hive的路径)
可以看到这几个文件:

CentOS7搭建远程连接hive的JDBC的环境_第2张图片

四、配置文件

我们首先配置hive-site.xml文件,这里文件一开始是没有的,我们要用以下命令通过模版创建出来 cp hive-default.xml.template hive-default.xml
以及 cp hive-env.sh.template hive-env.sh

我们先写hive-env.sh文件
配置如下:
CentOS7搭建远程连接hive的JDBC的环境_第3张图片
加入如上四条就可以了

再配置hive-site.xml文件
我这里用的是nodepad++根据name查找然后再进行修改的,大家也可以尝试

<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!--数据库连接URL-->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://192.168.37.9:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</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>123456</value>
	</property>

	<!--以下这三个配置我也不知道是干嘛的-->
	<property>
		<name>hive.metastore.schema.verification</name>
		<value>false</value>
	</property>
	<property> 
		 <name>hive.cli.print.current.db</name>
		 <value>true</value>
	</property>
	<property> 
		 <name>hive.cli.print.header</name>
		 <value>true</value>
	</property>
	<!-- 这是hiveserver2的配置-->
	<!--远程连接的端口号,默认为10000-->
	<property>
		 <name>hive.server2.thrift.port</name>
		 <value>10000</value>
	</property>
	<!--远程连接的主机名或ip地址,建议写主机名-->
	<property>
		<name>hive.server2.thrift.bind.host</name>
		<value>192.168.37.9</value>
	</property>
	<!--以下两个用户的配置要在hadoop的core-site.xml也配置,后续会说明-->
	<!--远程连接的用户-->
	<property>
		<name>hive.server2.thrift.client.user</name>
		<value>root</value>
		<description>Username to use against thrift client. default is 'anonymous'</description>
	</property>
	<!--远程连接的密码-->
	<property>
		<name>hive.server2.thrift.client.password</name>
		<value>123456</value>
		<description>Password to use against thrift client. default is 'anonymous'</description>
	</property>

</configuration>
还有一个日志问题,在$HIVE_HOME下创建一个tmp文件夹,并给他权限
chmod -R 777 $HIVE_HOME/tmp
再在这个tmp下新建一个文件夹再赋予权限
chmod -R 777 $HIVE_HOME/tmp/root
然后要将hive-site.xml的${system:java.io.tmpdir}替换成hive的路径/tmp
例如:/opt/MySoft/MySoftWare/hive-2.3.7/tmp
再将${system:user.name} 替换成root

回到$HIVE_HOME/conf 复制hive-log4j2.properties.template 为hive-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
进入将${system:java.io.tmpdir} 也更改成hive的路径/conf 还有${system:user.name} 替换成root

以上就完成了对hive进行的配置,接下来要将mysql的驱动包丢到$HIVE_HOME/lib下面,这样子才能完成元数据库的初始化。
移动好mysql的驱动包之后运行如下命令:schematool -dbType mysql -initSchema
如果执行不了可能是hive的环境变量不对,可以看看之前的配置。
这时出现如下信息就是成功了!

CentOS7搭建远程连接hive的JDBC的环境_第4张图片
然后就可以输入hive看看hive是不是成功了。如果是像我这样就是成功了:
CentOS7搭建远程连接hive的JDBC的环境_第5张图片

五、使用beeline连接hiveserver2

hive成功之后,我们要配置一下hadoop下面的配置文件core-site.xml,添加如下配置让beeline可以成功连接hiveserver2:

<!--以下四个配置是为了让我的主机能够有访问hadoop的权限-->
	 <property>     
		<name>hadoop.proxyuser.root.hosts</name>     
		<value>*</value>
	</property> 
	<property>     
		<name>hadoop.proxyuser.root.groups</name>    
		<value>*</value> 
	</property>
	<property>     
		<name>hadoop.proxyuser.blueautumn.hosts</name>     
		<value>*</value> 
	</property> 
	<property>     
		<name>hadoop.proxyuser.blueautumn.groups</name>     
		<value>*</value> 
	</property>
	<!--以下的配置是为了让hadoop知道有这样一个用户-->
	<property>
		<name>hive.server2.thrift.client.user</name>
		<value>root</value>
		<description>Username to use against thrift client. default is 'anonymous'</description>
	</property>
	<property>
		<name>hive.server2.thrift.client.password</name>
		<value>123456</value>
		<description>Password to use against thrift client. default is 'anonymous'</description>
	</property>

配置完之后我们重启hadoop服务器,然后输入以下命令来启动metastore服务
hive --service metastore &
CentOS7搭建远程连接hive的JDBC的环境_第6张图片
像我这样卡在这里是正常的,因为启动的是一个服务,也可以输入别的可以后台启动,有需要的话可以自行搜索。

接下来就复制一个会话,输入以下命令启动hiveserver2
hive --service hiveserver2 & 或者 hiveserver2 &
CentOS7搭建远程连接hive的JDBC的环境_第7张图片像我这样卡住也是正常的。
然后用jps可以看到现在有两个Runjar存在
CentOS7搭建远程连接hive的JDBC的环境_第8张图片
一个是metastore服务一个是hiveserver2服务

现在就可以进行beeline连接hiveserver2了
输入命令:beeline -u jdbc:hive2://192.168.37.9:10000 -n root -p 123456
获取先输入beeline 进入到beeline的命令行之后再输入:
!connect jdbc:hive2://192.168.37.9:1000 -n root -p 123456
CentOS7搭建远程连接hive的JDBC的环境_第9张图片

六、参考

之前参考过的地方:
链接: https://blog.csdn.net/leanaoo/article/details/83351240.
链接: https://blog.csdn.net/weixin_34356138/article/details/92424900.

第一次做博客,希望有问题大家可以指出~~~~
以上是我这两天搭建环境的时候整理出来的,因为我自己卡住了很久,所以我想把这个分享出来,这样有人需要的话也可以很快上手,谢谢大家~~~

你可能感兴趣的:(心得分享,hive,big,data,hadoop)