【大数据之Hive】六、Hive之metastore服务部署

  metastore为Hive CLI或Hiveserver2提供元数据访问接口。

1 metastore运行模式

  metastore运行模式有两种,嵌入式模式和独立服务模式。

(1)嵌入式模式

  将metastore看作一个依赖嵌入到Hiveserver2和每一个HiveCLI客户端进程,使得Hiveserver2和HiveCLI客户端直接连接访问数据库。
在这里插入图片描述
(2)独立服务模式

  把metastore服务独立出来单独启动,Hiveserver2和Hive命令行客户端都访问metastore服务,然后再由metastore访问元数据库。

  Metastore不负责存储元数据,只负责提供访问元数据的接口。
在这里插入图片描述
  生产环境中,不推荐使用嵌入式模式。因为其存在以下两个问题:
  (i)嵌入式模式下,每个Hive CLI都需要直接连接元数据库,当Hive CLI较多时,数据库压力会比较大。
  (ii)每个客户端都需要用户元数据库的读写权限,元数据库的安全得不到很好的保证。

2 metastore部署

(1)嵌入式部署
  嵌入式模式下,只需保证Hiveserver2和每个Hive CLI的配置文件hive-site.xml中包含连接元数据库所需要的以下参数即可:

<!-- jdbc连接的URL--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value></property><!-- jdbc连接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!--jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc连接的password--><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property>

(2)独立服务模式
  需求:Metastore服务部署到hadoop102机器上,客户端部署在hadoop103、hadoop104上。

(i)在hadoop102把hive发送到hadoop103和hadoop104上:

scp -r /opt/module/hive/ hadoop103:/opt/module/
scp -r /opt/module/hive/ hadoop104:/opt/module/ 

  在hadoop102上把/etc/profilr.d/my_env.sh分发,再分别在hadoop103和hadoop104source一下环境:

cd /etc/profile.d
xsync my_env.shhadoop103和hadoop104下:
source /etc/profile.d/my_env.sh

(ii)保证metastore服务的配置文件hive-site.xml中包含连接元数据库所需的以下参数,在hadoop102下的HIVE_HOME/conf的hive.site.xml配置:

    <!-- jdbc连接的URL--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value></property><!-- jdbc连接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!--jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc连接的password--><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property>
(iii)在hadoop102中启动metastore服务:
nohup hive –-service metastore &

用jps -ml查看进程:
在这里插入图片描述
(iv)配置hive客户端:
  保证Hiveserver2和每个Hive CLI的配置文件hive-site.xml中包含访问metastore服务所需的参数。

  在hadoop103和104下的HIVE_HOME/conf/的hive-site.xml中删除与jdbs有关的配置。

  如果不删除直接添加的话进入到hive客户端执行语句会报错:不能初始化metastore客户端:

hive (default)> show databases;
FAILED: HiveException java.lang.RuntimeException:Unable to instantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

  这是因为在Hive CLI(客户端)的配置文件中配置了hive.metastore.uris参数,此时Hive CLI会去请求执行的metastore服务地址,所以必须启动metastore服务才能正常使用。

  也即给同一个节点同时配置metastore服务和客户端时,客户端是访问metastore服务的。

  hadoop103和hadoop104的hive-site.xml中添加:

<!-- 指定metastore服务的地址,只要在客户端中配了metastore地址就会访问metastore服务地址 -->
<property><name>hive.metastore.uris</name><value>thrift://hadoop102:9083</value>
</property>

  主机名改为metastore服务所在节点,metastore服务的默认端口为9083。

(v)在hadoop103进入到hive的客户端:

cd HIVE_HOME
bin/hivehive>show tables;
hive>select * from stu;

可以看到能查出数据,即客户端表示能够访问metastore服务。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/354198.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

算法修炼之筑基篇——筑基一层中期(解决01背包,完全背包,多重背包)

✨博主&#xff1a;命运之光​​​​​​ &#x1f984;专栏&#xff1a;算法修炼之练气篇​​​​​ &#x1f353;专栏&#xff1a;算法修炼之筑基篇 ✨博主的其他文章&#xff1a;点击进入博主的主页​​​​​​ 前言&#xff1a;学习了算法修炼之练气篇想必各位蒟蒻们的基…

客户回访|国产MCU测试解决方案 助力中国“芯”智造

半导体技术持续更新迭代&#xff0c;MCU也在与时俱进&#xff0c;为了更好地迎接市场未来趋势&#xff0c;国产MCU厂商积极布局各系列MCU产品线&#xff0c;开始逐渐在特定细分领域实现突破。随着应用场景的进化升级&#xff0c;MCU 中包含越来越多的功能模块&#xff0c;相应地…

UEFI——保姆级教程的HelloWold Application

HelloWorld Application 前言为什么是HelloWorldApplication又是什么代码部分test_application.c文件test_application.inf编译运行 总结 前言 毕业之后工作开始接触UEFI&#xff0c;现在为止也不过短短的四个月&#xff0c;UEFI开发涉猎面广&#xff0c;知识体系庞杂&#xf…

云南省工信厅洪正华一行莅临红谷滩区·高通中国·影创联合创新中心考察调研

9月9日上午&#xff0c;国内首个XR(扩展现实)产业联合创新中心自开业后&#xff0c;迎来首批参观领导。云南省工信厅党组书记、厅长洪正华&#xff0c;云南省工信厅党组成员、副厅长袁国书&#xff0c;云南省工信厅综合处处长薛贵辉&#xff0c;云南省工信厅发展规划处处长王兵…

UEFI Protocol

一、概述 二、Protocol的定义 1、Protocol是服务器端和客户端之间的一种约定&#xff0c;在软件编程上称为接口&#xff0c;服务器端和客户端通过这个约定信息的互通。 2、服务器端和客户端在UEFI中都是可执行的二进制文件。 3、为了实现这些二进制文件之间的互通&#xff0c;…

UEFI原理与编程(二):UEFI工程模块文件-标准应用程序工程模块

UEFI 工程模块文件-标准应用程序工程模块 前言 在EDK2环境下编程之前&#xff0c;先介绍EDK2的两个概念模块(Module)和包(Package).   “包”是一组模块及平台描述文件(.dsc文件)、包声明文件(.dec文件)则、组成的集合&#xff0c;多在以*pkg命名的文件夹中&#xff0c;一般…

如何理解UEFI的事件机制(三)——时钟中断

一&#xff0c;时钟中断概述 UEFI 中的EVENT是使用时钟中断来驱动的。 在时钟中断处理函数中&#xff0c;它会检查系统中的定时器事件并处理到期的定时器事件&#xff0c;并在合适的时机调度事件的Notify函数&#xff0c;是事件的实现基础。时钟中断在DXE的主函数DxeMain中初始…

UEFI原理与编程(七):包及.dsc、.dec、.fdf文件

包及.dsc、.dec、.fdf文件 前言 前面的文章中比较详细介绍了UEFI工程文件即.inf。UEFI的包中一般都会包含一个.dsc文件和一个dec文件。在包生成固件Image、Option Rom Image&#xff0c;这个包还要包含.fdf文件。.fdf用于生成固件Image、Option Rom Image或可以启动Image。 b…

UEFI学习——在qemu上读取设备PCI信息

1.编写读取设备PCI信息的Application 代码参考罗斌大佬&#xff0c;博客地址&#xff1a;UEFI开发探索13 – 访问PCI/PCI-E设备1 感谢罗斌大佬的贡献&#xff0c;让我在学习UEFI的道路上站在了巨人的肩膀上。 代码&#xff1a; #include <Uefi.h> #include <L…

UEFI开发与调试---ImageHandle和ControllerHandle

##1.ImageHandle 每个uefi module都是一个image&#xff0c;而每个image对应都有一个ImageHandle&#xff0c;其实ImageHandle的类型就是EFI_HANDLE typedef VOID *EFI_HANDLE;因此实际上每个ImageHandle是一个void*指针&#xff0c;那么也就是说任何结…

UEFI的诞生与优势

UEFI的诞生 随着CPU及其他硬件设备的技术革新&#xff0c;CPU和操作系统已支持到64位&#xff0c;而BIOS却还停留在16位&#xff1b;主板上更加丰富多样的扩展设备&#xff0c;也让BIOS愈加无能为力&#xff0c;使得硬件无法完成初始化。现实表明&#xff0c;BIOS已经无法满足…

UEFI shell - 标准应用程序的编译和加载过程

一、标准应用工程编译 首先了解下,应用程序是怎么被编译成.efi文件: UefiMain.c首先被编译成目标文件UefiMain.obj连接器将目标文件UefiMain.obj和其他库连接成UefiMain.dllGenFw工具将UefiMain.dll转换成UefiMain.efi 说明:连接器在生成UefiMain.dll时使用了/dll/entry:_Mo…

UEFI开发,记录第一场胜利——调用一个自己编写的protocol

本文参考BIOS/UEFI基础——Protocol介绍 大四第一个签三方的工作&#xff0c;BIOS的开发&#xff0c;第一次接触这个领域&#xff0c;在实习之前很好奇&#xff0c;也很有兴趣&#xff0c;但是学习BIOS在一开始注定要碰多次碰壁&#xff0c;实习第三周第二天&#xff0c;终于写…

linux系统nohob安装,Linux启动详解1

一、固件运行 本部分主要参考 戴正华 著《UEFI原理与编程》 CPU在加电后会进入16位实模式状态运行&#xff0c;同时CPU的逻辑电路设计为加电瞬间将CS的值设置为 0xF000、IP的值置为0xFFF0&#xff0c;这样CS&#xff1a;IP就指向0xFFFF0这个地址位置。然后开始执行固件 固件的执…

《UEFI原理与编程》读书笔记

《UEFI原理与编程》读书笔记 读书笔记仅摘取对个人有用的部分&#xff0c;详细内容请阅读原著 目前更新至第七章&#xff0c;因个人仅需要引导程序&#xff0c;故其余部分未介绍&#xff0c;详细内容请阅读原著 书及其资料均已放置在本人资源中&#xff0c;如需下载请移步资源模…

UEFI简介

前言 大多数人接触UEFI都是在PC的应用场景上&#xff0c;有在PC上安装过多操作系统的经历的同学&#xff0c;通常会进入UEFI界面设置操作系统引导顺序、CPU虚拟化等设置。UEFI诞生之初也确实是作为BIOS的替代者&#xff0c;主要应用在PC电脑上。随着手机/平板等移动设备的发展&…

10月书讯(上) | 小长假我读这些新书

华章科技提前祝大家国庆快乐 7天小长假&#xff0c;正是读书好时节 又到上新季&#xff0c;读书与休假更配哦 10月书讯&#xff08;上&#xff09;请查收 快来看看哪本书最属你心意 参与文末赠书活动&#xff0c;好书就要抢先读 — 新书速览 — 1、《计算机系统解密&#xff1a…

UEFI启动流程浅析

BIOS启动流程 SEC&#xff08;Security Phase&#xff0c;安全阶段&#xff09;阶段 SEC阶段是平台初始话的第一个阶段&#xff0c;计算机系统加电后首先进入这个阶段。 CPU上电之后&#xff0c;首先会进行硬件初始化&#xff08;hard reset&#xff09; 其次会进行可选的自检…

UEFI规范实现EDKII项目学习笔记绪论[0]

UEFI规范实现EDKII项目学习笔记绪论[0] 2015-07-10 北京海淀区 张俊浩 这段时间在学习UEFI( Unified Extensible Firmware Interface,统一的可扩展固件接口)&#xff0c;熟悉EDKII&#xff08;EFI Developer KitII&#xff0c;EFI开发工具包&#xff09;项目&#xff0c;…

3.UEFI-edk2 增加中文显示

UEFI-edk2源码中默认只有英文和法文的字库&#xff0c;在UI界面上或者shell终端打印中文字符串&#xff0c;则无法显示。例如&#xff0c;上一篇博客中的TestoneApp.cpp中&#xff0c;增加一行带中文字符串的打印&#xff1a; Print(L"Hello, world!\r\n");Print(L&…