hive的hiveserver2客户端配置

前言

hive提供了三种操作方式,一种是使用hive命令行方式进行操作;一种是使用java的api方式进行操作;还有一种是使用http的rest api进行操作。这里,我们只讲前两种的配置和实现。

在这之前,我们先了解一下hive的客户端,hive提供了两种客户端,一种是胖客户端,一种是瘦客户端。胖客户端显得比较臃肿,它实现的效果是直接启动服务端和客户端集成于一身,我们在操作控制台执行hive命令会启动hive服务,然后直接显示hive>命令操作行。可见,这种集成在一起的效果无法满足多台服务器的调用,只能在本机操作,也就是说无法支持并发,而且安全性低,客户端一旦断开,服务端也将失效,客户端与服务端粘合度太高。所以就出现了瘦客户端,瘦客户端支持多台服务器进行并非操作,而且客户端与服务端是分离开来的,显得比较轻量,所以就有肥瘦之分。

hive集群搭建

参考 hive集群安装与搭建

如果hive跑起来了,再继续下面步骤~

文件配置

1.配置hive-site.xml

切换到hive的配置目录下,打开hive-site.xml文件

cd /usr/local/hive/conf
vi hive-site.xml

如图:

hive的hiveserver2客户端配置_第1张图片
hive的hiveserver2客户端配置_第2张图片
hive的hiveserver2客户端配置_第3张图片

添加以下配置

 
        hive.server2.authentication
        NONE


        hive.server2.thrift.bind.host
        hadoop1


         hive.server2.thrift.port
         10000
         TCP port number to listen on, default 10000
 


        hive.server2.thrift.http.port
        10001



        hive.server2.thrift.client.user
        root
        Username to use against thrift client


        hive.server2.thrift.client.password
        root
        Password to use against thrift client
	
	

hive文件配置说明

  • hive.server2.authentication 配置hive用户认证,设置为NONE则跳过认证

  • hive.server2.thrift.bind.host 配置thrift服务绑定的ip,需要在hadoop1启动hive服务,thrift服务才能与hadoop1建立连接,thrift主要用来实现hiveserver2的瘦客户端

  • hive.server2.thrift.port 配置thrift服务绑定的端口,主要用来建立与thrift服务连接

  • hive.server2.thrift.http.port 配置thrift服务绑定的http端口,可以通过http执行hive操作

  • hive.server2.thrift.client.user 配置thrift服务的验证账户

  • hive.server2.thrift.client.password 配置thrift服务的验证密码

原理

瘦客户端提供了一种方式,通过thrift服务去连接hive服务端,实现hive的操作,而客户端通过调用thrift服务,执行操作命令,实现了客户端与服务端的交互。

2. 配置core-site.xml

添加以下配置


        hadoop.proxyuser.root.hosts
        *


        hadoop.proxyuser.root.groups
        *


如图:
hive的hiveserver2客户端配置_第4张图片

hadoop的文件配置说明

  • hadoop.proxyuser.root.hosts 配置hadoop的代理用户,主要是用于让hiveserver2客户端访问及操作hadoop文件具备权限
  • hadoop.proxyuser.root.groups 配置hadoop的代理用户组,主要是用于让hiveserver2客户端访问及操作hadoop文件具备权限

文件说明

如果不清楚文件的具体位置,请浏览hadoop集群安装与搭建

3.分发文件

上面两个步骤都在一台机器上配置好之后,远程分发文件到其他机器上。
我这里有4台机器,所以分发到另外三台,命令如下:

分发hive文件:

scp -r /usr/local/hive/conf/hive-site.xmt hadoop2:/usr/local/hive/conf/
scp -r /usr/local/hive/conf/hive-site.xml hadoop3:/usr/local/hive/conf/
scp -r /usr/local/hive/conf/hive-site.xml hadoop4:/usr/local/hive/conf/

分发hadoop文件:

scp -r /usr/local/hadoop/etc/hadoop/core-site.xml hadoop2:/usr/local/hadoop/etc/hadoop
scp -r /usr/local/hadoop/etc/hadoop/core-site.xml hadoop3:/usr/local/hadoop/etc/hadoop
scp -r /usr/local/hadoop/etc/hadoop/core-site.xml hadoop4:/usr/local/hadoop/etc/hadoop

4.启动hadoop和hive服务

  1. 在namenode节点的hadoop1上启动hadoop

    start-dfs.sh
    
    ssh hadoop2		//远程到hadoop2上,启动yarn,文件配置hadoop2作为任务调度管理
    
    start-yarn.sh
    
  2. 启动存放hive元数据的mysql

    /etc/init.d/mysqld start
    

    注:我这里是直接进入启动项目录启动的,可以使用其他命令启动,如:

    service mysql start
    
  3. 在hadoop1上启动hiveserver2服务

瘦客户端服务的启动,这里有两种启动方式,一种是前台启动,即控制台一直打印日志,且不能关掉控制台,关掉即服务挂掉

cd /usr/local/hive/bin
./hiveserver2

另一种是后台启动的方式,后台启动控制台可以关闭,且在进程中运行,执行 jps,可以看到hive的进程

cd /usr/local/hive/bin
nohup hive --service hiveserver2 &

如图:
hive的hiveserver2客户端配置_第5张图片

等2分钟左右,我们再去启动客户端,这样避免做多次连接操作而连接不上,原因是服务端的程序还没执行完成

4.启动瘦客户端beeline:

cd /usr/local/hive/bin
beeline
!connect jdbc:hive2://hadoop1:10000

命令说明:

  • 执行beeline,启动了thirft服务,通过thirft的jdbc命令连接hive。
  • hadoop1是启动hive服务的主机名,10000则是hive-site.xml文件配置的端口。
  • 执行上面命令之后,需要执行hive-site.xml文件上配置的验证账户和密码,即root,回车之后,就登陆进hive了

客户端界面
hive的hiveserver2客户端配置_第6张图片

你可能感兴趣的:(大数据,hive,数据仓库,hiveserver2)