Hive的远程模式

news/2024/11/15 9:15:40/

1、创建临时目录

[root@bigdata01 ~]# cd /opt/installs/hive/
[root@bigdata01 hive]# mkdir iotmp
[root@bigdata01 hive]# chmod 777 iotmp

2、前期准备工作

hive-site.xml<!--Hive工作的本地临时存储空间-->
<property><name>hive.exec.local.scratchdir</name><value>/opt/installs/hive/iotmp/root</value>
</property>
<!--如果启用了日志功能,则存储操作日志的顶级目录-->
<property><name>hive.server2.logging.operation.log.location</name><value>/opt/installs/hive/iotmp/root/operation_logs</value>
</property>
<!--Hive运行时结构化日志文件的位置-->
<property><name>hive.querylog.location</name><value>/opt/installs/hive/iotmp/root</value>
</property>
<!--用于在远程文件系统中添加资源的临时本地目录-->
<property><name>hive.downloaded.resources.dir</name><value>/opt/installs/hive/iotmp/${hive.session.id}_resources</value>
</property>

hive.downloaded.resources.dir:

在 hdfs 上下载的一些资源会被存放在这个目录下,hive 一定要小写,否则报:

cause: java.net.URISyntaxException: Illegal character in path at index 26: /opt/installs/hive/iotmp/${Hive.session.id}_resources/json-serde-1.3.8-jar-with-dependencies.jar

修改 core-site.xml【hadoop】的

<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property>
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property>
<!-- 不开启权限检查 -->
<property><name>dfs.permissions.enabled</name><value>false</value>
</property>

修改集群的三个core-site.xml,记得修改一个,同步一下,并且重启hdfs
 

xsync.sh core-site.xml
stop-dfs.sh
start-dfs.sh

3、开始配置远程服务(两个)

1)配置hiveserver2服务

修改hive-site.xml

<property><name>hive.server2.thrift.bind.host</name><value>bigdata01</value><description>Bind host on which to run the HiveServer2 Thrift service.</description></property><property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description></property>

可以启动:

1. 该服务端口号默认是10000
2. 可以单独启动此服务进程,供远程客户端连接;此服务内置metastore服务。
3. 启动方式:方法1:直接调用hiveserver2。会进入监听状态不退出。方法2:hive --service hiveserver2 &    # 进入后台启动方法3:nohup hive --service hiveserver2 >/dev/null 2>&1 & #信息送入黑洞。

演示第一种启动方式:hiveserver2

可以使用beeline进行测试:

连接方式:
方式1:step1. beeline 回车step2. !connect jdbc:hive2://bigdata01:10000 回车step3. 输入用户名 回车 数据库用户名step4. 输入密码 回车  此处的密码是数据库密码
方法2(直连):beeline -u jdbc:hive2://bigdata01:10000 -n 用户名
解析: hive2,是Hive的协议名称ip:  Hiveserver2服务所在的主机IP。10000,是Hiveserver2的端口号
退出:Ctrl+ C 可以退出客户端
2) metastore 服务

metastore服务意义:为别人连接mysql元数据提供服务的。

警告:

假如 hive 直接进入的,操作了数据库,其实底层已经帮助创建了一个metastore服务器,可能叫ms01

通过hiveserver2 运行的命令,默认底层帮你创建了一个metastore服务器,可能叫ms02,假如有很多人连接我的mysql,就会有很多个metastore,非常的占用资源。

解决方案就是:配置一个专门的metastore,只有它可以代理mysql服务,别人必须经过它跟mysql进行交互。这样解决内存。

警告:只要配置了metastore以后,必须启动,否则报错!

修改hive-site.xml

   修改hive-site.xml的配置注意:想要连接metastore服务的客户端必须配置如下属性和属性值<property><name>hive.metastore.uris</name> <value>thrift://bigdata01:9083</value></property>解析:thrift:是协议名称ip为metastore服务所在的主机ip地址9083是默认端口号

启动方式:

方法1:hive --service metastore &
方法2:nohup hive --service metastore 2>&1 >/dev/null &  #信息送入黑洞。解析:2>&1 >/dev/null   意思就是把错误输出2重定向到标准输出1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕。Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:0——标准输入(stdin)-- System.in1——标准输出(stdout)--System.out2——标准错误(stderr) --System.err

测试:

没有启动metastore 服务器之前,hive进入报错!
hive> show databases;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient启动之后,直接测试,发现可以使用。
hive> show databases;
OK
default
Time taken: 1.211 seconds, Fetched: 1 row(s)

4、使用客户端连接工具连接hive

常见的Hive连接工具有:IDEA、DBeaver、DataGrap

推荐大家使用DataGrap

请检查你的 metastore和hiveserver2是否启动
ps -ef|grep metastore
ps -ef|grep hiveserver2假如没有启动:
nohup hive --service metastore 2>&1 >/dev/null &
nohup hive --service hiveserver2 2>&1 >/dev/null &由于没办法看到4个session ID,等一下。

下载驱动包:

 


http://www.ppmy.cn/news/1547170.html

相关文章

前端(1)——快速入门HTML

参考&#xff1a; W3school 1. HTML 我使用的是vs code&#xff0c;在使用之前&#xff0c;先安装以下几个插件&#xff1a; Auto Rename TageHTML CSS SupportLive Server 1.1 HTML标签 HTML全称是 Hypertext Markup Language(超文本标记语言) HTML通过一系列的标签(也称为…

通过vmware虚拟机安装和调试编译好的 ReactOS

1. 首先创建 VMware 虚拟机配置脚本 setup_vmware.bat&#xff1a; batch echo off :: setup_vmware.bat :: 设置路径 set "REACTOS_BUILDE:\Reactos_WinDriver\reactos-master\build" set "VM_PATHE:\VMs\ReactOS_Debug" set "VMWARE_PATHC:\Progr…

RocketMQ-02 集群架构部署

根据上一章《RocketMQ消费模型和部署模型》得知&#xff0c;启动rocketmq非常简单&#xff0c;只需要分别执行mqnamesrv启动NameServer&#xff0c;执行mqbroker启动Broker即可。但生产环境不可能仅使用单节点MQ&#xff0c;为提高可用性和吞吐量&#xff0c;生产常使用集群模式…

Docker入门系列——Docker-Compose

Docker Compose 是 Docker 官方编排工具&#xff0c;用于定义和运行多容器 Docker 应用程序。它是一个轻量级的工具&#xff0c;用于快速配置和启动应用程序的不同服务。 Docker Compose 是什么 Docker Compose 最初是由 Docker 公司开发&#xff0c;并于 2014 年 6 月首次发布…

PCL 点云分割 分割指定平面

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 配置RANSAC平面分割 2.1.2 使用模型滤波器提取平面外点 2.1.3 可视化点云 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇…

洛谷AT_k2pc001_e5 お気に入りの数2(Favorite Number2)

お気に入りの数2(Favorite Number2) 题面翻译 题目描述 对 2 2 2以上&#xff08;包括 2 2 2&#xff09; n n n以下&#xff08;包括 n n n&#xff09;的正整数 x x x可以进行以下操作。 如果 x 1 ≤ n x1≤n x1≤n&#xff0c; x 1 x1 x1可变为新的 x x x如果 x \sqrt…

Linux:版本控制器git的简单使用+gdb/cgdb调试器的使用

一&#xff0c;版本控制器git 1.1概念 为了能够更方便我们管理不同版本的文件&#xff0c;便有了版本控制器。所谓的版本控制器&#xff0c;就是能让你 了解到⼀个文件的历史&#xff0c;以及它的发展过程的系统。通俗的讲就是⼀个可以记录工程的每⼀次改动和版本迭代的⼀个…

Prettier - Code formatter插件使用(前端美化插件)

一&#xff0c;安装 vscode直接搜索 安装完毕后 二&#xff0c;配置 Prettier&#xff1a; 安装完插件后&#xff0c;打开 VSCode 的设置&#xff08;快捷键是 Ctrl ,&#xff09;。在搜索框中输入 Format On Save&#xff0c;找到并勾选“Editor: Format On Save”选项&am…