【大数据之Hive】五、Hiveserver2服务部署

这篇具有很好参考价值的文章主要介绍了【大数据之Hive】五、Hiveserver2服务部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hiveserver2服务

  hiveserver2提供JDBC/ODBC接口,使得用户可以远程访问Hive数据,即作为客户端的代理与Hadoop集群进行交互。

  hiveserver2部署时需要部署到一个能访问集群的节点上,保证能够直接往Hadoop上提交数据。
hadoop hiveserver,hive,大数据,hive,hadoop
  用户在客户端提交SQL语句时,由hiveserver请求HDFS或者提交计算任务到Yarn上,再由hiveserver2将结果返回给客户端。

(1)用户说明:

  用户即由hiveserver2代理进行远程访问Hadoop集群的用户。

  因为Hadoop集群中的数据由访问权限控制,设置了hive.server2.enable.doAs(表示是否启用Hiveserver2用户模拟功能)参数控制访问Hadoop集群的用户身份。

  参数value值为true时启用(默认开启),即Hiveserver2会模拟客户端的登录用户访问Hadoop集群;参数value值为fault时,会直接使用Hiveserver2进程的启动用户访问Hadoop集群数据。

未开启用户模拟功能:
hadoop hiveserver,hive,大数据,hive,hadoop
  因为没启用用户模拟功能,所以在用户登录使用时,都是由Hiveserver2的启动进程的用户与Hadoop集群进行交互。

开启用户模拟功能:
hadoop hiveserver,hive,大数据,hive,hadoop
  在开启用户模拟时,用户登录,Hiveserver会模拟登录的用户与Hadoop集群进行交互。
  在生产环境中要启用用户模拟功能,只有开启用户模拟功能之后才能保证用户的权限隔离。

(2)Hiveserver2部署

(i)Hadoop端配置

  hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户的身份访问Hadoop集群。

  需要将hiveserver2的启动用户设置为Hadoop的代理用户。

Hadoop中的core-site.xml中添加,之后分发文件并重启集群:

cd HADOOP_HOME/etc/hadoop
vim core-site.xml

#添加以下
<!--配置所有节点(host节点)的liaoyanxia用户都可作为代理用户,value为具体节点的主机-->
<property>
    <name>hadoop.proxyuser.liaoyanxia.hosts</name>
    <value>*</value>
</property>

<!--配置liaoyanxia用户能够代理的用户组为任意组-->
<property>
    <name>hadoop.proxyuser.liaoyanxia.groups</name>
    <value>*</value>
</property>

<!--配置liaoyanxia用户能够代理的用户为任意用户-->
<property>
    <name>hadoop.proxyuser.liaoyanxia.users</name>
    <value>*</value>
</property>

(ii)Hive端配置

  hive-site.xml中添加:

cd HIVE_HOME/conf
vim hive-site.xml

#添加以下:
<!-- 指定hiveserver2连接的host(hive用户要绑定的网络接口) -->
<property>
   <name>hive.server2.thrift.bind.host</name>
   <value>hadoop102</value>
</property>

<!-- 指定hiveserver2连接的端口号 -->
<property>
   <name>hive.server2.thrift.port</name>
   <value>10000</value>
</property>

(3)测试
(i)启动hiveserver2:
  使用nohup启动hiveserver2进程,避免在断开连接进程挂断;”&”表示在后台运行;”1”表示标准输出,即表示hiveserver2的标准输出都重定位写到/div/nu中,”0”表示标准输入,”2”表示标准错误输出:

nohup bin/hiveserver2 1>/home/liaoyanxia/div/out 2>/home/liaoyanxia/div/out &

  以上可以简化为(表示标准输出和标准错误输出重定位到同一个地址):

nohup bin/hiveserver2 1>/home/liaoyanxia/div/out 2>&1 &

  也可以简化为(省略前面的1即默认表示的是标准输出):

nohup bin/hiveserver2 >/home/liaoyanxia/div/out 2>&1 &

用jps可以看到RunJar进程,表示hiveserver2启动成功。
hadoop hiveserver,hive,大数据,hive,hadoop
(ii)使用命令行客户端beeline进行远程访问:
  启动beeline客户端:

cd /HIVE_HOME/bin
beeline

  由于采用的是jdbc协议,所以需要连接到HQL,进入到beeline客户端后:

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

#然后提示输入用户名,该用户名是作为hiveserver2访问集群的用户
#因为没启用身份认证功能,所以提示的密码可以不填

hadoop hiveserver,hive,大数据,hive,hadoop
  进入到hiveserver2,可以执行sql语句:

0;jdbc:hive2//hadoop102:10000>show tables;
0;jdbc:hive2//hadoop102:10000>select * from stu;
0;jdbc:hive2//hadoop102:10000>!quit

hadoop hiveserver,hive,大数据,hive,hadoop
hadoop hiveserver,hive,大数据,hive,hadoop

(iii)用Datagrip图形化客户端进行远程访问:

  需要先开启hiveserver2服务。

nohup bin/hiveserver2 >/home/liaoyanxia/div/out 2>&1 &

创建Datagrip连接:
hadoop hiveserver,hive,大数据,hive,hadoop
配置连接属性:所有属性配置,和Hive的beeline客户端配置一致,初次使用,配置过程会提示缺少JDBC驱动,按照提示下载。
hadoop hiveserver,hive,大数据,hive,hadoop
测试sql执行:
hadoop hiveserver,hive,大数据,hive,hadoop文章来源地址https://www.toymoban.com/news/detail-647707.html

到了这里,关于【大数据之Hive】五、Hiveserver2服务部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hive 入门 配置hiveserver2 (三)

    Hive的hiveserver2服务的作用是提供jdbc/odbc接口,为用户 提供远程访问Hive数据的功能 ,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。 在远程访问Hive数据时,客户端并未直接访问Hadoop集群,而是由Hivesever2代理访问。由于Hadoop集群中的数据具备访问

    2024年02月11日
    浏览(19)
  • HiveServer2 Service Crashes(hiveServer2 服务崩溃)

    Troubleshooting Hive | 5.9.x | Cloudera Documentation 1.hive分区表太多(这里没有说具体数量。) 2.并发连接太多,我记的以前默认是200个连接  3.复杂的hive查询访问表的的分区 4.hs2实例数太少 如果存在这些情况中的任何一种,Hive可能运行缓慢,或者可能崩溃,因为整个HS2堆内存已满。 S

    2024年02月07日
    浏览(24)
  • 常见的bug---3、没有启动metaStore和Hiveserver2服务导致在本机上的IDEA无法连接上虚拟机上的HIve

    在IEDA连接虚拟机上的Hive报的 Exception in thread “main” org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:11

    2024年02月15日
    浏览(24)
  • Hive Cli / HiveServer2 中使用 dayofweek 函数引发的BUG!

    前言 使用的集群环境为: hive 3.1.2 spark 3.0.2 dayofweek 函数官方说明 dayofweek(date) - Returns the day of the week for date/timestamp (1 = Sunday, 2 = Monday, …, 7 = Saturday). 根据所给日期,返回该日期对应的周几数字,如: 周日 —— 1 周一 —— 2 周二 —— 3 … 周六 —— 7 BUG 重现 当前我有一张订

    2024年02月11日
    浏览(13)
  • Error: Could not open client transport with JDBC Uri: jdbc:hive2://解决连接beenline连接HiveServer2报错

    目录 一、错误现象 二、 解决方案 三、其他解决方式 背景:ranger 整合cdh后登陆HiveServer2测试 后台日志 Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop105:10000: Failed to open new session: java.lang.IllegalArgumentException: Cannot modify hive.query.redaction.rules at runtime. It  is not in list of

    2024年02月12日
    浏览(22)
  • HiveServer2负载均衡

    有多个HiveServer2服务时,可以借助Zookeeper服务实现访问HiveServer2的负载均衡,将HiveServer2的压力分担到多个节点上去。本文详细介绍HiveServer2负载均衡的配置及使用方法,请根据EMR集群(普通集群和Kerberos集群)的实际情况进行选择。 hive.server2.support.dynamic.service.discovery 设置为

    2024年02月06日
    浏览(17)
  • hiveserver2经常挂断的原因

    HiveServer2 经常挂断可能有多种原因,以下是一些可能导致挂断的常见原因: 资源不足:HiveServer2 需要足够的内存和 CPU 资源来处理查询请求。如果资源不足,可能会导致 HiveServer2 挂断。请确保在配置 HiveServer2 实例时分配了足够的资源。 配置问题:不正确的配置可能导致 Hi

    2024年02月06日
    浏览(20)
  • HiveServer2 常见异常和处理方法

    可能原因: HiveServer 连接数达到上限。因为每个 jdbc,HiveServer 需要一个线程。 HiveServer OOM 不能及时处理客户请求 Hive Metastore 没有响应或者后台数据库卡住。 HiveServer2 Server socket 的 backlog 默认是 0,在centos 系统中查看 HiveServer2 的 backlog 是50。当Socket accept 的速度变慢,操作系

    2024年02月03日
    浏览(25)
  • 合并文件解决HiveServer2内存溢出方案

    • 表文件数量为6522102 • 分区为string 类型的time字段,分了2001个区。 •可以看到Jvm内存使用明显增大,Hiveserver2内存溢出,进程挂掉了;查看HiveServer2状态标红。 •详细日志如下 • 将每个分区里的若干个小文件合并成一个文件,最终文件个数为分区数。合并流程如下: 2.1.

    2024年02月11日
    浏览(20)
  • hue实现对hiveserver2 的负载均衡

    如果你使用的是CDH集群那就很是方便的 在Cloudera Manager中,进入HDFS Service 进入Instances标签页面,点击Add Role Instances按钮,如下图所示 点击Continue按钮,如下图所示 返回Instances页面,选择HttpFS角色,并点击Start启动服务,如下图所示 HttpFS服务启动后,点击进入Hue Service Configur

    2024年02月08日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包