目录
步骤1:在PG中为元数据增加用户的DB
步骤2:下载PGJDBC驱动
步骤3:修改HIVE配置文件
步骤4:初始化元数据表
小结
首页 数据库 mysql教程 配置apache HIVE元数据DB为PostgreSQL

配置apache HIVE元数据DB为PostgreSQL

Jun 07, 2016 pm 03:15 PM
apache hive 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作为存储DBderby作为轻量级的DB,在开发、测试过程中使用比较方便,但是在实际的生产环境中,还需要考虑易用性、容灾、稳定性以及各种监控、运维工具等,这些都是derby缺乏的。MySQLPostgreSQL是两个比较常用的开源数据库系统,在生产环境中比较多的用来替换derby。配置MySQL在网上的文章比较多,这里不再赘述,本文主要描述配置HIVE元数据DBPostgreSQL的方法。

HIVE版本:HIVE 0.7-snapshotHIVE 0.8-snapshot

步骤1:在PG中为元数据增加用户的DB

首先在PostgreSQL中为HIVE的元数据建立帐号和DB

 

--以管理员身份登入PG

psql postgres -U postgres

 

--创建用户hive_user:

Create user hive_user;

 

--创建DB metastore_dbownerhive_user:

Create database metastore_db with owner=hive_user;

 

--设置hive_user的密码:

/password hive_user

 

完成以上步骤以后,还要确保PostgreSQLpg_hba.conf中的配置允许HIVE所在的机器ip可以访问PG

步骤2:下载PGJDBC驱动

HIVE_HOME目录下创建auxlib目录:

mkdir auxlib

此时HIVE_HOME目录中应该有binlibauxlibconf等目录。

 

下载PGJDBC驱动

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的相关信息进行修改。

 

  javax.jdo.option.ConnectionURL

  jdbc:postgresql://pg_server_ip:pg_server_port/metastore_db?

  JDBC connect string for a JDBC metastore

 

  javax.jdo.option.ConnectionDriverName

  org.postgresql.Driver

  Driver class name for a JDBC metastore

 

  javax.jdo.option.ConnectionUserName

  hive_user

  username to use against metastore database

 

  javax.jdo.option.ConnectionPassword

  hive_user_pass

  password to use against metastore database

 

 

步骤4:初始化元数据表

元数据库metastore中默认没有表,当HIVE第一次使用某个表的时候,如果发现该表不存在就会自动创建。对derbymysql,这个过程没有问题,因此derbymysql作为元数据库不需要这一步。

PostgreSQL在初始化的时候,会遇到一些问题,导致PG数据库死锁。例如执行以下HIVE语句:

>Create table kv (key,int,value string) partitioned by (ds string);

OK

>Alter table kv add partition (ds = '20110101');

执行这一句的时候,HIVE会一直停在这。

 

查看PG数据库,发现有两个连接在进行事务操作,其中一个是:

 in transaction

此时处于事务中空闲,另外一个是:

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接口发起第一个isolationSERIALIZABLE的事务,锁定了TBLS等元数据表。在这个的事务进行过程中,DataNucleu发现PARTITIONS等表没有,则要自动创建。于是又发起了另外一个isolationSERIALIZABLE的事务,第一个事务变为 in transaction。第二个事务创建了PARTITIONS的表后,还要给它增加约束条件,这时,它需要获得它引用的表SDS的排他锁,但这个锁已经被第一个事务拿到了,因此需要等待第一个事务结束。而第一个事务也在等待第二个事务结束。这样就造成了死锁。

 

类似的情况出现在:

>create test(key int);

OK

>drop table test;

drop table时会去drop它的index,而此时没有index元数据表,它去键,然后产生死锁。

 

有三种方法可以解决这个死锁问题:

 

第一种方法:

使用PGpg_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,将HIVEmetastore/src/model/package.jdo文件作为输入,这个工具可以自动创建元数据中的表。具体的使用方法见:

http://www.datanucleus.org/products/accessplatform_2_0/rdbms/schematool.html

小结

本文给出了使用PostgreSQL作为HIVE元数据DB的配置方法,以及遇到的死锁问题的解决办法,希望对使用HIVEPostgreSQL的朋友有帮助。

 

 

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次 美国空军高调展示首个AI战斗机!部长亲自试驾全程未干预,10万行代码试飞21次 May 07, 2024 pm 05:00 PM

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

AI初创集体跳槽OpenAI,Ilya出走后安全团队重整旗鼓! AI初创集体跳槽OpenAI,Ilya出走后安全团队重整旗鼓! Jun 08, 2024 pm 01:00 PM

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

算法在 58 画像平台建设中的应用 算法在 58 画像平台建设中的应用 May 09, 2024 am 09:01 AM

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

Java 并发编程中如何进行并发测试和调试? Java 并发编程中如何进行并发测试和调试? May 09, 2024 am 09:33 AM

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

70B模型秒出1000token,代码重写超越GPT-4o,来自OpenAI投资的代码神器Cursor团队 70B模型秒出1000token,代码重写超越GPT-4o,来自OpenAI投资的代码神器Cursor团队 Jun 13, 2024 pm 03:47 PM

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

中国移动:人类正迈入第四次工业革命 正式公布'三个计划” 中国移动:人类正迈入第四次工业革命 正式公布'三个计划” Jun 27, 2024 am 10:29 AM

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

美国教授用2岁女儿训AI模型登Science!人类幼崽头戴相机训练全新AI 美国教授用2岁女儿训AI模型登Science!人类幼崽头戴相机训练全新AI Jun 03, 2024 am 10:08 AM

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

Java数据结构与算法:云计算实战指南 Java数据结构与算法:云计算实战指南 May 09, 2024 am 08:12 AM

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

See all articles