Kerberos安全认证-连载5-大数据技术组件之搭建Hive集群

​​​​​​目录

​​​​​​1. 节点划分

2. 安装配置Hive

​​​​​​​3. HiveServer2与Beeline

​​​​​​​​​​​​​​4. Hive 操作


技术连载系列,前面内容请参考前面连载4内容:Kerberos安全认证-连载4-大数据技术组件之搭建HDFS HA集群_IT贫道的博客-CSDN博客

1. 节点划分

这里搭建Hive的版本为3.1.3,搭建Hive的节点划分如下:

节点IP

节点名称

Hive服务器

Hive客户端

MySQL

192.168.179.4

node1

192.168.179.5

node2

★(已搭建)

192.168.179.6

node3

​​​​​​​2. 安装配置Hive

1) 将下载好的Hive安装包上传到node1节点上,并修改名称

apache-hive-3.1.3-bin.tar.gz下载地址:https://download.csdn.net/download/qq_32020645/87868049

[root@node1 ~]# cd /software/

[root@node1 software]# tar -zxvf ./apache-hive-3.1.3-bin.tar.gz

[root@node1 software]# mv apache-hive-3.1.3-bin hive-3.1.3

2) 将解压好的Hive安装包发送到node3节点上

[root@node1 software]# scp -r /software/hive-3.1.3/ node3:/software/

3) 配置node1、node3两台节点的Hive环境变量

vim /etc/profile

export HIVE_HOME=/software/hive-3.1.3/

export PATH=$PATH:$HIVE_HOME/bin

#source  生效

source /etc/profile

4) 在node1节点$HIVE_HOME/conf下创建hive-site.xml并配置

<configuration>

 <property>

  <name>hive.metastore.warehouse.dir</name>

  <value>/user/hive/warehouse</value>

 </property>

 <property>

  <name>javax.jdo.option.ConnectionURL</name>

  <value>jdbc:mysql://node2:3306/hive?createDatabaseIfNotExist=true&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>

</configuration>

5) 在node3节点$HIVE_HOME/conf/中创建hive-site.xml并配置

<configuration>

 <property>

  <name>hive.metastore.warehouse.dir</name>

  <value>/user/hive/warehouse</value>

 </property>

 <property>

  <name>hive.metastore.local</name>

  <value>false</value>

 </property>

 <property>

  <name>hive.metastore.uris</name>

  <value>thrift://node1:9083</value>

 </property>

</configuration>

6) node1、node3节点删除$HIVE_HOME/lib下“guava”包,使用Hadoop下的包替换

#删除Hive lib目录下“guava-19.0.jar ”包

[root@node1 ~]# rm -rf /software/hive-3.1.3/lib/guava-19.0.jar

[root@node3 ~]# rm -rf /software/hive-3.1.3/lib/guava-19.0.jar

#将Hadoop lib下的“guava”包拷贝到Hive lib目录下

[root@node1 ~]# cp /software/hadoop-3.3.4/share/hadoop/common/lib/guava-27.0-jre.jar /software/hive-3.1.3/lib/

[root@node3 ~]# cp /software/hadoop-3.3.4/share/hadoop/common/lib/guava-27.0-jre.jar /software/hive-3.1.3/lib/

7) 将“mysql-connector-java-5.1.47.jar”驱动包上传到$HIVE_HOME/lib目录下

这里node1,node3节点都需要传入,将mysql驱动包上传$HIVE_HOME/lib/目录下。

8) 在node1节点中初始化Hive

#初始化hive,hive2.x版本后都需要初始化

[root@node1 ~]# schematool -dbType mysql -initSchema

​​​​​​​​​​​​​​3. HiveServer2与Beeline

Hive Beeline 是Hive0.11版本引入的新命令行客户端,它是基于SQLLine Cli的JDBC客户端。Beeline工作模式有两种,即本地嵌入模式和远程模式。嵌入模式情况下,它返回一个嵌入式的Hive(类似于Hive CLI)。而远程模式则是通过Thrift协议与某个单独的HiveServer2进程进行连接通信。

想要通过Beeline写SQL查询Hive数据,必须配置HiveServer2服务,HiveServer2(HS2)是一种使客户端能够对Hive执行查询的服务。HiveServer2是已被废弃的HiveServer1(仅支持单客户端访问)的继承者。HiveServer2支持多客户端并发和身份验证。它旨在为JDBC和ODBC等开放API客户端提供更好的支持。

通过beeline和Hiverserver2连接操作Hive时,需要指定一个用户,这个用户可以随意指定,但是需要在HDFS中允许使用代理用户配置,需要在每台Hadoop 节点配置core-site.xml:

    <!-- 配置代理访问用户 -->

    <property>

        <name>hadoop.proxyuser.root.hosts</name>

        <value>*</value>

    </property>

    <property>

        <name>hadoop.proxyuser.root.users</name>

        <value>*</value>

    </property>

    <property>

        <name>hadoop.proxyuser.root.groups</name>

        <value>*</value>

    </property>

配置好完成之后,将以上文件分发到各个hadoo节点上,然后重新启动HDFS。

​​​​​​​​​​​​​​4. Hive 操作

1) 服务端和客户端client操作

在服务端和客户端操作Hive,操作Hive之前首先启动HDFS集群,命令为:start-all.sh,启动HDFS集群后再进行Hive以下操作:

#在node1中登录Hive ,创建表test

[root@node1 conf]# hive

hive> create table test (id int,name string,age int ) row format delimited fields terminated by '\t';

#向表test中插入数据

hive> insert into test values(1,"zs",18);

#在node1启动Hive metastore

[root@node1 hadoop]# hive --service metastore &

#在node3上登录Hive客户端查看表数据

[root@node3 lib]# hive

hive> select * from test;

OK

1 zs 18

2) 本地嵌入模式使用Beeline

首先在Hive服务端node1启动HiverServer2,然后在node1上可以直接登录beeline,操作如下:

#在node1 Hive服务端启动hiveserver2

[root@node1 ~]# hiveserver2

#在node1 Hive服务端进行操作

beeline

beeline> !connect jdbc:hive2://mynode1:10000

随意输入用户名和密码即可

另外也可以使用另外一种方式登录beeline:

beeline -u "jdbc:hive2://node1:10000"

3) 远程模式使用Beeline

在实际开发中建议远程模式使用beeline,这样并不是在Hive的服务端进行操作,比较安全。远程使用beeline就是直接找到Hive的客户端然后启动beeline,前提是需要在Hive的服务端启动Hiveserver2服务,这种情况下客户端的beeline是通过Thrift协议与服务端的HiveServer2进程进行连接通信。

#在node1节点上启动HiveServer2,如启动可以忽略

[root@node1 ~]# hiveserver2

#在node3客户端登录beeline,然后可以正常查询SQL语句

[root@node1 ~]# hiveserver2

beeline

beeline> !connect jdbc:hive2://mynode1:10000


欢迎点赞、评论、收藏,关注IT贫道,获取IT技术知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT贫道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值