导航:首页 > 数据处理 > 如何扩展hive元数据

如何扩展hive元数据

发布时间:2024-06-15 11:00:13

A. impala怎么判断从hive里刷新那部分元数据

Impala 获取hive 的 metadata
Impala 通常和Hive共用同一个metadata 数据库(通常是MySQL/PostgreSQL), 所以Impala 能够读取到Hive的元数据信息. 如果Impala需要访问Hive表, 需要将Hive metadata 刷新到impala中.
在Hive中Create/Drop表后, 或者HDFS rebalance,或者手工删除HDFS的文件后, 则需要在impala中执行下面两行命令:
INVALIDATE METADATA table_name;
describe table_name;
第一行命令 INVALIDATE METADATA 告诉impala 指定的 table 元数据已经过期, impala 将在下一次使用到该表时自动刷新元数据, 第二行命令即触发impala去更新元数据, 以免将来真正使用该表耗时太久.
如果Impala已经知道了Hive表的存在后, 又通过Hive增加或删除分区或alter table, 使用 refresh 命令即可更新元数据. refresh是对元数据进行增量更新, 和INVALIDATE METADATA相比, refresh命令使用成本低很多.
利用catalogd提供元数据服务。可以直接连DB也可以通过catalogd,一般是利用hive里的metastore获取数据。Impala高效的原因是其将原始数据缓存下来,catalogd启动会浏览缓存获取数据
因为impla默认catalogd会缓存,因此如果你重启的后,catalogd会将缓存数据存入到内存中,

B. 在hive中怎样删除一张有数据的管理表,包括删除数据

Hive的数据管理:

(1)元数据存储

Hive 将元数据存储在 RDBMS 中,有三种模式可以连接到数据库:

Single User Mode:此模式连接到一个 In-memory 的数据库 Derby,一般用于 Unit Test。

Multi User Mode:通过网络连接到一个数据库中,这是最常用的模式。

Remote Server Mode:用于非 Java 客户端访问元数据库,在服务器端启动一个 MetaStoreServer,客户端则利用 Thrift 协议通过 MetaStoreServer来访问元数据库。

(2)数据存储

首先,Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由地组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,它就可以解析数据了。

其次,Hive 中所有的数据都存储在 HDFS 中,Hive 中包含4种数据模型:Table、External Table、Partition、Bucket。

Hive 中的 Table 和数据库中的 Table 在概念上是类似的,每一个 Table 在 Hive 中都有一个相应的目录来存储数据。例如,一个表 pvs,它在 HDFS 中的路径为:/wh/pvs,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的数据仓库的目录,所有的 Table 数据(不包括 External Table)都保存在这个目录中。

Partition 对应于数据库中Partition 列的密集索引,但是 Hive 中 Partition 的组织方式与数据库中的很不相同。在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 数据都存储在对应的目录中。例如:pvs 表中包含 ds 和 city 两个 Partition,则对应于 ds = 20090801, city = US 的 HDFS 子目录为:/wh/pvs/ds=20090801/city=US;对应于 ds = 20090801, city = CA 的 HDFS 子目录为:/wh/pvs/ds=20090801/city=CA。

Buckets 对指定列计算 hash,根据 hash 值切分数据,目的是为了便于并行,每一个 Buckets对应一个文件。将 user 列分散至 32 个Bucket上,首先对 user 列的值计算 hash,比如,对应 hash 值为 0 的 HDFS 目录为:/wh/pvs/ds=20090801/city=US/part-00000;对应hash 值为 20 的 HDFS 目录为:/wh/pvs/ds=20090801/city=US/part-00020。

External Table 指向已经在 HDFS 中存在的数据,可以创建 Partition。它和 Table 在元数据的组织结构上是相同的,而在实际数据的存储上则有较大的差异。

在Table 的创建过程和数据加载过程(这两个过程可以在同一个语句中完成)中,实际数据会被移动到数据仓库目录中。之后对数据的访问将会直接在数据仓库的目录中完成。删除表时,表中的数据和元数据将会被同时删除。

External Table 只有一个过程,因为加载数据和创建表是同时完成的。实际数据是存储在 Location 后面指定的 HDFS 路径中的,它并不会移动到数据仓库目录中。

(3)数据交换

数据交换主要分为以下几个部分

C. 銆孒ive杩涢桩绡囥嶈﹁В瀛桦偍镙煎纺鍙婂帇缂╂柟寮

hive浼桦寲闄や简链塰ql璇鍙ラ昏緫浼桦寲锛宧ql鍙傛暟璋冧紭绛夌瓑锛岃缮链変竴涓涓嶈捣鐪肩殑缁呜妭瀹规槗琚蹇借嗘帀锛 闾d究鏄痟ive鏁颁粨妯″瀷琛ㄧ殑瀛桦偍镙煎纺鍜屽帇缂╂柟寮 锛宧ive搴曞眰鏁版嵁鏄渚濇墭鍦╤adoop锛屼互HDFS鏂囦欢瀛桦偍鍦ㄩ泦缇や笂镄勶纴 hive鏁颁粨妯″瀷琛ㄩ夋嫨涓涓钖堥傜殑瀛桦偍镙煎纺鍜屽帇缂╂柟寮忎篃鏄痟ive浼桦寲镄勪竴镣
链绡囧氨𨱒ヨ亰涓镵婅繖鍧楃煡璇嗙偣钖с😄

hive涓昏佹湁textfile銆乻equencefile銆乷rc銆乸arquet 杩椤洓绉嶅瓨鍌ㄦ牸寮忥纴鍏朵腑sequencefile寰埚皯浣跨敤锛屽父瑙佺殑涓昏佸氨鏄痮rc鍜宲arquet杩欎袱绉嶏纴寰寰涔熸惌閰岖潃铡嬬缉鏂瑰纺钖堢悊浣跨敤銆

寤鸿〃澹版槑璇鍙ユ槸锛 stored as textfile/orc/parquet

琛屽纺瀛桦偍锛岃繖鏄痟ive琛ㄧ殑榛樿ゅ瓨鍌ㄦ牸寮忥纴榛樿や笉锅氭暟鎹铡嬬缉锛岀佺洏寮阌澶э纴鏁版嵁瑙f瀽寮阌澶э纴鏁版嵁涓嶆敮鎸佸垎鐗囷纸鍗充唬琛ㄧ潃浼氩甫𨱒ユ棤娉曞规暟鎹杩涜屽苟琛屾搷浣滐级

琛屽垪寮忓瓨鍌锛屽皢鏁版嵁鎸夎屽垎鍧楋纴姣忎釜鍧楁寜鍒楀瓨鍌锛屽叾涓姣忎釜鍧楅兘瀛桦偍镌涓涓绱㈠紩锛屾敮鎸乶one鍜寊lib鍜宻nappy杩3绉嶅帇缂╂柟寮忥纴榛樿ら噰鐢▃lib铡嬬缉鏂瑰纺锛屼笉鏀鎸佸垏鐗囷纴orc瀛桦偍镙煎纺鑳芥彁楂榟ive琛ㄧ殑璇诲彇鍐椤叆鍜屽勭悊镄勬ц兘銆

鍒楀纺瀛桦偍锛屾槸涓涓闱㈠悜鍒楃殑浜岃繘鍒舵枃浠舵牸寮忥纸涓嶅彲鐩存帴璇诲彇锛夛纴鏂囦欢涓鍖呭惈鏁版嵁鍜屽厓鏁版嵁锛屾墍浠ヨュ瓨鍌ㄦ牸寮忔槸镊瑙f瀽镄勶纴鍦ㄥぇ鍨嬫煡璇㈡椂鏁堢巼寰埚揩楂樻晥锛宲arquet涓昏佺敤鍦ㄥ瓨鍌ㄥ氩眰宓屽楀纺鏁版嵁涓婃彁渚涜坛濂界殑镐ц兘鏀鎸侊纴榛樿ら噰鐢╱ncompressed涓嶅帇缂╂柟寮忋

琛屽瓨鍌ㄥ紩镎 锛氩悓涓𨱒℃暟鎹镄勪笉钖屽瓧娈甸兘鍦ㄧ浉闾讳綅缃锛屾墍浠ュ綋瑕佹煡镓炬煇涓𨱒¤板綍镓链夋暟鎹镞惰屽瓨鍌ㄦ煡璇㈤熷害姣旇缉蹇
鍒楀瓨鍌ㄥ紩镎 锛氢互鍒楁潵镵氶泦鏁版嵁锛岀浉钖屽瓧娈电殑鍊艰仛闆嗗湪涓璧凤纴镓浠ュ綋镆ヨ㈡煇涓涓鎸囧畾鍒楃殑镓链夋暟鎹镞讹纴鍒楀瓨鍌ㄦ煡璇㈤熷害姣旇缉蹇

hive涓昏佹敮鎸乬zip銆亃lib銆乻nappy銆乴zo 杩椤洓绉嶅帇缂╂柟寮忋
铡嬬缉涓崭细鏀瑰彉鍏冩暟鎹镄勫垎鍓叉э纴鍗冲帇缂╁悗铡熸潵镄勫间笉鍙樸

寤鸿〃澹版槑璇鍙ユ槸锛 tblproperties("orc.compress"="SNAPPY")

铡嬬缉鏂瑰纺镄勮瘎鍒ゆ爣鍑嗕富瑕佹湁浠ヤ笅鍑犵偣锛

阍埚瑰帇缂╂柟寮忓仛涓涓灏忕粨瀵规瘆锛

阅读全文

与如何扩展hive元数据相关的资料

热点内容
云服务器微信小程序用哪个套餐 浏览:110
银行代理费是多少 浏览:322
编号是什么数据 浏览:982
引流卡怎么申请代理 浏览:393
哪些交易所大陆注册 浏览:886
python爬取股票实时数据后如何下单 浏览:266
在区域代理拿桶装水大概多少钱 浏览:608
逆行扣分一般多久能来信息 浏览:286
程序状态反映了什么 浏览:536
硬盘数据恢复是靠什么 浏览:942
重庆哪个日料市场最大 浏览:493
九恒星产品有什么用 浏览:642
移动代理商如何发展 浏览:69
汽车钣金电脑数据复原多少钱一台 浏览:273
一个城市的美团外卖总代理多少钱 浏览:743
链一交易所怎么下载的 浏览:402
怎么查快递信息是什么东西 浏览:645
顺丰速运骑手要买哪些产品 浏览:814
ajax怎么传递json数据 浏览:897
通达信如何下载专业数据 浏览:965