HiveServer2 是一种可选的 Hive 内置服务,可以允许远程客户端使用不同编程语言向 Hive 提交请求并返回结果。HiveServer2 是 HiveServer1 的改进版,主要解决了无法处理来自多个客户端的并发请求以及身份验证问题。具体可以参阅 一起了解一下HiveServer2。下面我们具体看一下如何配置 HiveServer2。
最近发现hiveserver2(本质上是提供jdbc连接的driver进程)经常发生严重卡死故障,而且卡死分成两种现象。
开发者利用jdbc连接hiveserver2(或者利用jdbc连接 spark HiveThriftServer2,由于两者都是提供jdbc连接到hive,因此,后面都统一称为利用jdbc连接hiveserver2),执行简单查询、复杂分析、超复杂分析等不同的sql任务,session并发量还很高(五六百甚至上千的并发),本质上要求大数据平台同时具备oltp的高并发与olap的高分析能力。对于hiveserver2这一类基于hadoop平台的jdbc server而言,非常不适合这种高并发的应用。
在了解 HiveServer2 之前我们先来了解一下 HiveServer1(或者称之为 HiveServer)。
2.该异常会在Thrift0.9.2及更低版本的HiveServer2服务上出现。
该文介绍了如何使用HiveServer2和HiveServer1来连接Hive数据库。其中,HiveServer2是Hive 2.0版本后引入的,提供了多租户支持、认证和授权、以及基于Zookeeper的动态服务发现机制。而HiveServer1是Hive 1.x版本中的Server组件,使用Java编写的Thrift API来提供Hive功能。在配置HiveServer2时,需要配置HiveServer2的地址、端口、Thrift协议、以及Zookeeper集群的信息。通过HiveServer2,可以实现多租户、资源隔离、访问控制、日志审计等功能。在安全性方面,HiveServer2提供了用户、角色、数据库和表级别的访问控制,并且支持SSL/TLS和Kerberos安全协议。在性能方面,HiveServer2采用了分桶表和列存存储,可以大幅提高查询性能。此外,HiveServer2还支持通过插件来扩展功能,例如支持自定义函数、存储格式、数据类型等。总之,HiveServer2提供了更加安全、高效、易用的数据库服务,适用于各种规模的企业应用。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson讲了《1.如何在RedHat7上安装OpenLDA并配置客户端》、《2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户》以及《3.如何RedHat7上实现OpenLDAP的主主同步》,在CDH中各个组件如何集成?本篇文章主要介
在安装CDH7.0.3的过程中,如果和以前的版本一样安装HiveServer2角色,会遇到以下问题,导致HiveServer2启动失败
在前面的文章Fayson讲了《1.如何在CentOS6.5安装OpenLDAP并配置客户端》、《2.OpenLDAP集成SSH登录并使用SSSD同步用户》以及《3.如何实现OpenLDAP的主主同步》,在CDH中各个组件如何集成?本篇文章主要介绍如何为Hive配置OpenLDAP认证。
我们在启动hiveserver2服务以后,会发现光标静止不动,这不是执行完了的标志,是等待在等待,我们可以通过下图看出来:
在前面的文章Fayson介绍了《如何使用HAProxy实现HiveServer2负载均衡》和《如何使用Zookeeper实现HiveServer2的HA》。本篇文章主要基于Haproxy方式实现的Hive负载均衡在Hue中配置HiveServer2服务的负载均衡。
之前Fayson介绍了《如何使用HAProxy实现HiveServer2负载均衡》,这种方案也有一些弊端,如HAProxy本身就是单点,虽然可以通过Keepalived来实现HAProxy的高可用,但这样配置会比较麻烦并且需要多部署两个组件,增大了系统运维的复杂度。在大数据平台中Zookeeper是一个必不可少且自身具有高可用保证的组件,本文主要讲述如何使用Zookeeper实现HiveServer2的HA。
开启: service haproxy start 或 systemctl start haproxy
Fayson在之前的文章中介绍过《CDH网络要求(Lenovo参考架构)》,《如何为Hadoop集群选择正确的硬件》和《CDH安装前置准备》,而我们在搭建Hadoop集群时,还一件很重要的事就是如何给集群分配角色。
如果想通过 JDBC 来访问 HiveServer2,需要开启 HiveServer2 服务,具体请参阅 如何启动HiveServer2。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在CDH集群中启用了Kerberos并集成了OPenLDAP,在前面的文章中Fayson也介绍了在CDH集群中启用Kerberos与集成OPenLDAP,集群中HiveServer2服务需要同时支持Kerberos和OPenLDAP认证的负载均衡,本篇文章主要介绍如何使用HAPro
1. 配置HiveServer2,在hive-site.xml中添加如下的属性
之前分享了 Hive 元数据的表,一文搞懂 Hive 元数据的表,数仓开发需要熟悉的,建议收藏
问题起因:“80040151”用户反映在Hue上通过Hive查询表数据出现异常,异常信息为权限拒绝,需要通过Sentry授权。然而通过beeline直连HiveServer2,访问同一张表,能够正常查询数据。
在EMR控制台进入“集群服务”,点击“HIVE”,点击 角色管理 --> HiveServer2 --> memory_heap_used
前面Fayson介绍了《如何使用HAProxy实现HiveServer2负载均衡》,本文主要介绍如何使用HAProxy实现Kerberos环境下HiveServer2的负载均衡。
Hive Thrift服务 1.启动Thrift为前台服务: bin/hiveserver2 2.启动为后台服务: nohup bin/hiveserver2 \ 1>/var/log/hiveserver.log \ 2>/var/log/hiveserver.err & 3.启动成功后,可以在别的节点上用beeline去连接 方式1 hive/bin/beeline 回车,进入beeline的命令界面 输入命令连接hiveserver2 beeline> !connect jdbc:hiv
Hive 中集成了 Thrift 服务。Thrift 是 Facebook 开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发。Hive 的 HiveServer2 就是基于 Thrift 的,所以能让不同的语言如 Java、Python 来调用 Hive 的接口。 本节将演示如何使用 Python 代码来连接 HiveServer2。
GettingStarted - Apache Hive - Apache Software Foundation
在CDH集群启用Kerberos后,通过浏览器访问HiveServer2的Web UI时提示需要输入用户名和密码(即Kerberos账号进行认证)。在前面Fayson介绍了《Windows Kerberos客户端配置并访问CDH》通过该方式可以访问启用Kerberos的Web UI。本篇文章主要介绍在未进行Windown Kerberos客户端配置的情况下如何跳过HiveServer2 Web UI的Kerberos验证。
SQL on Hadoop,顾名思义它是基于Hadoop生态的一个SQL引擎架构,我们其实常常听到Hive、SparkSQL、Presto、Impala架构,接下来,我会简单的描述一下常用的架构情况。
调优Hive on Tez查询没有一个通用的方法,查询的性能取决于数据的大小、文件类型、查询设计和查询模式。在做性能测试的时候,我们一般是通过调整配置参数或改写SQL来进行性能调优,建议在做测试的时候每次只进行一项更改,这样方便确认是哪个参数生效。
因为测试需求,需要将各个开源平台整合到一个大的平台中,所以引入了hue,具体操作步骤如下: 此次引入了有postgre,hive,phoenix,hbase,yarn,hdfs
客户端连接Hive需要使用HiveServer2。HiveServer2是HiveServer的重写版本,HiveServer不支持多个客户端的并发请求。当前HiveServer2是基于Thrift RPC实现的。它被设计用于为像JDBC、ODBC这样的开发API客户端提供更好的支持。Hive 0.11版本引入的HiveServer2。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH集群中安装Hive2.3.3》,本篇文章Fayson主要介绍如何为已安装好的Hive2服务启用Kerberos认证。 内容概述: 1.部署环境说明 2.添加Kerberos配置 3.验证Kerberos认证 4.总结 测试环境: 1.C
前面Fayson介绍了《如何使用HAProxy实现Impala的负载均衡》,本文主要介绍如何使用HAProxy实现Hive服务的负载均衡。
访问Hive有两种方式:HiveServer2和Hive Client,Hive Client需要Hive和Hadoop的jar包,配置环境。HiveServer2使得连接Hive的Client从Yarn和HDFS集群中独立出来,不需要每个节点都配置Hive和Hadoop的jar包和一系列环境。
Fayson在前面的文章《01-如何在Window Server 2012 R2搭建Acitve Directory域服务》、《02-Active Directory安装证书服务并配置》、《03-Active Directory的使用与验证》和《04-如何在RedHat7上配置OpenLDAP客户端及集成SSSD服务和集成SSH登录》,前面完成了AD服务的基本集成接下来就来实现与CDH各个服务的集成。本篇文章Fayson主要介绍Hive与AD集成。
在Tez上优化Hive查询无法采用一刀切的方法。查询性能取决于数据的大小、文件类型、查询设计和查询模式。在性能测试过程中,应评估和验证配置参数及任何SQL修改。建议在工作负载的性能测试过程中一次只进行一项更改,并最好在开发环境中评估调优更改的影响,然后再在生产环境中使用。
beeline是hiveserver2的CLI,一个JDBC的客户端,分为两种模式
Hive 中集成了 Thrift 服务。Thrift 是 Facebook 开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发。Hive 的 HiveServer2 就是基于 Thrift 的,所以能让不同的语言如 Java、Python 来调用 Hive 的接口。对于 Java,Hive 提供了 jdbc 驱动,用户可以使用 Java 代码来连接 Hive 并进行一系列操作。
在EMR控制台进入“集群监控”,点击“DashBoard”,点击 Overview-DashBoard --> Hive-DashBoard --> full_gc_num
这里需要使用hive中的HiveServer2服务,使用该服务相当于在hive的机器上启动一个server,而客户端可以通过ip + port的方式对其进行访问,然后,就可以通过客户端来实现我们可视化的需求。
HiveServer2 服务默认不启用鉴权功能,这样的话随意输入密码都能连接上,容易造成安全隐患,下面讲解下如何配置Hiveserver2 的 Custom 鉴权。这里已经编写好鉴权类代码,所以这里侧重讲配置,代码 Jar 包可以通过私信提供。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 本文主要介绍由Cloudera Manager管理的CDH集群的角色划分。实际部署你可能还需要考虑工作负载的类型和数量,真实要部署的哪些服务,硬件资源,配置,以及其他因素。当你使用Cloudera Manager的安装向导来安装CDH时,CM会根据主机的可用资源,自动的分配角色到各台主机,边
大数据常用环境中,除了hadoop、spark本身自带脚本,能够完成快速启停,其它组件的启动命令稍微复杂,而且步骤较多。
hive官方推荐使用hiveserver2的这种交互方式,需要我们启动hiveserver2这个服务端,然后通过客户 端去进行连接
使用beeline登录HiveServer2向my_table表Load本地数据文件时报如下异常:
Hive客户端工具后续使用了Beeline 替代HiveCLI ,并且后续版本也会废弃掉HiveCLI 客户端工具,Beeline是 Hive 0.11版本引入的新命令行客户端工具,它是基于SQLLine CLI的JDBC客户端。
解压hive压缩包 apache-hive-2.1.0-bin.tar.gz(官网下载) 配置HADOOP_HOME环境变量 配置HIVE_HOME环境变量 在$HIVE_HOME/conf下创建hi
hive --service metastore & hive --service hiveserver2 &
登录Cloudera Manager的用户的最小角色要求:Configurator或者Cluster Administrator或者Full Administrator。
在网上搜索关键字 python hive 的时候可以找到一些解决方案。大部分是这样的,首先把hive 根目录下的$HIVE_HOME/lib/py拷贝到 python 的库中,也就是 site-package 中,或者干脆把新写的 python 代码和拷贝的 py 库放在同一个目录下,然后用这个目录下提供的 thrift 接口调用。示例也是非常简单的。类似这样:
在Hive On Spark的模式下,无论是通过Beeline还是hive CLI访问Hive,使用Spark引擎执行SQL语句时,都会在/tmp目录下生成一个spark_submit.*.properties文件。Hive CLI方式会在当前节点/tmp目录生成,使用Beeline方式则会在HiveServer2所在节点的/tmp目录下生成。
Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)。
领取专属 10元无门槛券
手把手带您无忧上云