配置apache HIVE元数据DB为PostgreSQL
本文出处:http://amutu.com/blog/2013/06/hive-metastore-db-postgresql/ HIVE 的元数据默认使用 derby 作为存储 DB , derby 作为轻量级的 DB ,在开发、测试过程中使用比较方便,但是在实际的生产环境中,还需要考虑易用性、容灾、稳定性以及各种监控、运
本文出处:http://amutu.com/blog/2013/06/hive-metastore-db-postgresql/
HIVE的元数据默认使用derby作为存储DB,derby作为轻量级的DB,在开发、测试过程中使用比较方便,但是在实际的生产环境中,还需要考虑易用性、容灾、稳定性以及各种监控、运维工具等,这些都是derby缺乏的。MySQL和PostgreSQL是两个比较常用的开源数据库系统,在生产环境中比较多的用来替换derby。配置MySQL在网上的文章比较多,这里不再赘述,本文主要描述配置HIVE元数据DB为PostgreSQL的方法。
HIVE版本:HIVE 0.7-snapshot,HIVE 0.8-snapshot
步骤1:在PG中为元数据增加用户的DB
首先在PostgreSQL中为HIVE的元数据建立帐号和DB。
--以管理员身份登入PG:
psql postgres -U postgres
--创建用户hive_user:
Create user hive_user;
--创建DB metastore_db,owner为hive_user:
Create database metastore_db with owner=hive_user;
--设置hive_user的密码:
/password hive_user
完成以上步骤以后,还要确保PostgreSQL的pg_hba.conf中的配置允许HIVE所在的机器ip可以访问PG。
步骤2:下载PG的JDBC驱动
在HIVE_HOME目录下创建auxlib目录:
mkdir auxlib
此时HIVE_HOME目录中应该有bin,lib,auxlib,conf等目录。
下载PG的JDBC驱动
Wget http://jdbc.postgresql.org/download/postgresql-9.0-801.jdbc4.jar
将下载到的postgresql-9.0-801.jdbc4.jar放到auxlib中。
步骤3:修改HIVE配置文件
在HIVE_HOME中新建hive-site.xml 文件,内容如下,蓝色字体按照PG server的相关信息进行修改。
步骤4:初始化元数据表
元数据库metastore中默认没有表,当HIVE第一次使用某个表的时候,如果发现该表不存在就会自动创建。对derby和mysql,这个过程没有问题,因此derby和mysql作为元数据库不需要这一步。
PostgreSQL在初始化的时候,会遇到一些问题,导致PG数据库死锁。例如执行以下HIVE语句:
>Create table kv (key,int,value string) partitioned by (ds string);
OK
>Alter table kv add partition (ds = '20110101');
执行这一句的时候,HIVE会一直停在这。
查看PG数据库,发现有两个连接在进行事务操作,其中一个是:
此时处于事务中空闲,另外一个是:
ALTER TABLE "PARTITIONS" ADD CONSTRAINT "PARTITIONS_FK1" FOREIGN KEY ("SD_ID") REFERENCES "SDS" ("SD_ID") INITIALLY DEFERRED
处于等待状态。
进一步查看日志,发现大致的过程是这样的:
HIVE发起Alter table kv add partition (ds = '20110101')语句,此时DataNucleus接口发起第一个isolation为SERIALIZABLE的事务,锁定了TBLS等元数据表。在这个的事务进行过程中,DataNucleu发现PARTITIONS等表没有,则要自动创建。于是又发起了另外一个isolation为SERIALIZABLE的事务,第一个事务变为
类似的情况出现在:
>create test(key int);
OK
>drop table test;
当drop table时会去drop它的index,而此时没有index元数据表,它去键,然后产生死锁。
有三种方法可以解决这个死锁问题:
第一种方法:
使用PG的pg_terminate_backend()将第一个事务结束掉,这样可以保证第二个事务完成下去,将元数据表键成功。
第二种方法:
使HIVE将创建元数据表的过程和向元数据表中添加数据的过程分离:
>Create table kv (key,int,value string) partitioned by (ds string);
OK
>show partitions kv;
OK
>Alter table kv add partition (ds = '20110101');
OK
执行以上语句时就不会发生死锁,因为在执行show partitions kv语句时,它是只读语句,不会加锁。当这个语句发现PARTITIONS等表不在时,创建这些表不会发生死锁。
同样对于index表,使用
>Show index on kv;
可以将IDXS表建好。
第三种方法:
使用DataNucleu提供的SchemaTool,将HIVE的metastore/src/model/package.jdo文件作为输入,这个工具可以自动创建元数据中的表。具体的使用方法见:
http://www.datanucleus.org/products/accessplatform_2_0/rdbms/schematool.html
小结
本文给出了使用PostgreSQL作为HIVE元数据DB的配置方法,以及遇到的死锁问题的解决办法,希望对使用HIVE和PostgreSQL的朋友有帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

最近,军事圈被这个消息刷屏了:美军的战斗机,已经能由AI完成全自动空战了。是的,就在最近,美军的AI战斗机首次公开,揭开了神秘面纱。这架战斗机的全名是可变稳定性飞行模拟器测试飞机(VISTA),由美空军部长亲自搭乘,模拟了一对一的空战。5月2日,美国空军部长FrankKendall在Edwards空军基地驾驶X-62AVISTA升空注意,在一小时的飞行中,所有飞行动作都由AI自主完成!Kendall表示——在过去的几十年中,我们一直在思考自主空对空作战的无限潜力,但它始终显得遥不可及。然而如今,

上周,在内部的离职潮和外部的口诛笔伐之下,OpenAI可谓是内忧外患:-侵权寡姐引发全球热议-员工签署「霸王条款」被接连曝出-网友细数奥特曼「七宗罪」辟谣:根据Vox获取的泄露信息和文件,OpenAI的高级领导层,包括Altman在内,非常了解这些股权回收条款,并且签署了它们。除此之外,还有一个严峻而紧迫的问题摆在OpenAI面前——AI安全。最近,五名与安全相关的员工离职,其中包括两名最著名的员工,“超级对齐”团队的解散让OpenAI的安全问题再次被置于聚光灯下。《财富》杂志报道称,OpenA

一、58画像平台建设背景首先和大家分享下58画像平台的建设背景。1.传统的画像平台传统的思路已经不够,建设用户画像平台依赖数据仓库建模能力,整合多业务线数据,构建准确的用户画像;还需要数据挖掘,理解用户行为、兴趣和需求,提供算法侧的能力;最后,还需要具备数据平台能力,高效存储、查询和共享用户画像数据,提供画像服务。业务自建画像平台和中台类型画像平台主要区别在于,业务自建画像平台服务单条业务线,按需定制;中台平台服务多条业务线,建模复杂,提供更为通用的能力。2.58中台画像建设的背景58的用户画像

并发测试和调试Java并发编程中的并发测试和调试至关重要,以下技术可供使用:并发测试:单元测试:隔离并测试单个并发任务。集成测试:测试多个并发任务之间的交互。负载测试:评估应用程序在高负载下的性能和可扩展性。并发调试:断点:暂停线程执行并检查变量或执行代码。日志记录:记录线程事件和状态。堆栈跟踪:识别异常源头。可视化工具:监视线程活动和资源使用情况。

70B模型,秒出1000token,换算成字符接近4000!研究人员将Llama3进行了微调并引入加速算法,和原生版本相比,速度足足快出了快了13倍!不仅是快,在代码重写任务上的表现甚至超越了GPT-4o。这项成果,来自爆火的AI编程神器Cursor背后团队anysphere,OpenAI也参与过投资。要知道在以快着称的推理加速框架Groq上,70BLlama3的推理速度也不过每秒300多token。 Cursor这样的速度,可以说是实现了近乎即时的完整代码文件编辑。有人直呼好家伙,如果把Curs

6月26日消息,在2024年世界移动通信大会上海(MWC上海)开幕式上,中国移动董事长杨杰发表演讲。他表示,当前,人类社会正迈入以信息为主导、信息和能量深度融合的第四次工业革命,即“数智化革命”,新质生产力加速形成。杨杰认为,从蒸汽机驱动的“机械化革命”,到电力、内燃机等驱动的“电气化革命”,再到计算机和互联网等驱动的“信息化革命”,每一轮工业革命都是以“信息和能量”为主线,带来生产力发

绝了,为了训练AI模型,一位纽约州立大学的教授,竟然把类似GoPro的相机绑在了自己女儿头上!虽然听起来不可思议,但这位教授的行为,其实是有据可循的。要训练出LLM背后的复杂神经网络,需要海量数据。目前我们训练LLM的过程,一定是最简洁、最高效的方式吗?肯定不是!科学家们发现,蹒跚学步的人类儿童,大脑就像海绵吸水一样,能迅速形成一个连贯的世界观。虽然LLM时有惊人的表现,但随着时间的推移,人类儿童会比模型更聪明、更有创造力!儿童掌握语言的秘密如何用更好的方法训练LLM?科学家们苦思不得其解之时,

云计算中数据结构和算法的使用至关重要,用于管理和处理海量数据。常见的数据结构包括数组、列表、哈希表、树和图。常用的算法有排序算法、搜索算法和图算法。利用Java的强大功能,开发者可以使用Java集合、线程安全数据结构和ApacheCommonsCollections来实现这些数据结构和算法。
