成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇文章徹底明白Hive數(shù)據(jù)存儲(chǔ)的各種模式

云計(jì)算
Hive是基于Hadoop分布式文件系統(tǒng)的,它的數(shù)據(jù)存儲(chǔ)在Hadoop分布式文件系統(tǒng)中。Hive本身是沒有專門的數(shù)據(jù)存儲(chǔ)格式,也沒有為數(shù)據(jù)建立索引,只需要在創(chuàng)建表的時(shí)候告訴Hive數(shù)據(jù)中的列分隔符和行分隔符,Hive就可以解析數(shù)據(jù)。所以往Hive表里面導(dǎo)入數(shù)據(jù)只是簡單的將數(shù)據(jù)移動(dòng)到表所在的目錄中

Hive的數(shù)據(jù)分為表數(shù)據(jù)和元數(shù)據(jù),表數(shù)據(jù)是Hive中表格(table)具有的數(shù)據(jù);而元數(shù)據(jù)是用來存儲(chǔ)表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。下面分別來介紹。

一、Hive的數(shù)據(jù)存儲(chǔ)

在讓你真正明白什么是hive 博文中我們提到Hive是基于Hadoop分布式文件系統(tǒng)的,它的數(shù)據(jù)存儲(chǔ)在Hadoop分布式文件系統(tǒng)中。Hive本身是沒有專門的數(shù)據(jù)存儲(chǔ)格式,也沒有為數(shù)據(jù)建立索引,只需要在創(chuàng)建表的時(shí)候告訴Hive數(shù)據(jù)中的列分隔符和行分隔符,Hive就可以解析數(shù)據(jù)。所以往Hive表里面導(dǎo)入數(shù)據(jù)只是簡單的將數(shù)據(jù)移動(dòng)到表所在的目錄中(如果數(shù)據(jù)是在HDFS上;但如果數(shù)據(jù)是在本地文件系統(tǒng)中,那么是將數(shù)據(jù)復(fù)制到表所在的目錄中)。

Hive中主要包含以下幾種數(shù)據(jù)模型:Table(表),External Table(外部表),Partition(分區(qū)),Bucket(桶)(本博客會(huì)專門寫幾篇博文來介紹分區(qū)和桶)。

1、表:Hive中的表和關(guān)系型數(shù)據(jù)庫中的表在概念上很類似,每個(gè)表在HDFS中都有相應(yīng)的目錄用來存儲(chǔ)表的數(shù)據(jù),這個(gè)目錄可以通過${HIVE_HOME}/conf/hive-site.xml配置文件中的 hive.metastore.warehouse.dir屬性來配置,這個(gè)屬性默認(rèn)的值是/user/hive/warehouse(這個(gè)目錄在 HDFS上),我們可以根據(jù)實(shí)際的情況來修改這個(gè)配置。如果我有一個(gè)表wyp,那么在HDFS中會(huì)創(chuàng)建/user/hive/warehouse/wyp 目錄(這里假定hive.metastore.warehouse.dir配置為/user/hive/warehouse);wyp表所有的數(shù)據(jù)都存放在這個(gè)目錄中。這個(gè)例外是外部表。

2、外部表:Hive中的外部表和表很類似,但是其數(shù)據(jù)不是放在自己表所屬的目錄中,而是存放到別處,這樣的好處是如果你要?jiǎng)h除這個(gè)外部表,該外部表所指向的數(shù)據(jù)是不會(huì)被刪除的,它只會(huì)刪除外部表對(duì)應(yīng)的元數(shù)據(jù);而如果你要?jiǎng)h除表,該表對(duì)應(yīng)的所有數(shù)據(jù)包括元數(shù)據(jù)都會(huì)被刪除。

3、分區(qū):在Hive中,表的每一個(gè)分區(qū)對(duì)應(yīng)表下的相應(yīng)目錄,所有分區(qū)的數(shù)據(jù)都是存儲(chǔ)在對(duì)應(yīng)的目錄中。比如wyp 表有dt和city兩個(gè)分區(qū),則對(duì)應(yīng)dt=20131218,city=BJ對(duì)應(yīng)表的目錄為/user/hive/warehouse /dt=20131218/city=BJ,所有屬于這個(gè)分區(qū)的數(shù)據(jù)都存放在這個(gè)目錄中。

4、桶:對(duì)指定的列計(jì)算其hash,根據(jù)hash值切分?jǐn)?shù)據(jù),目的是為了并行,每一個(gè)桶對(duì)應(yīng)一個(gè)文件(注意和分區(qū)的區(qū)別)。比如將wyp表id列分散至16個(gè)桶中,首先對(duì)id列的值計(jì)算hash,對(duì)應(yīng)hash值為0和16的數(shù)據(jù)存儲(chǔ)的HDFS目錄為:/user /hive/warehouse/wyp/part-00000;而hash值為2的數(shù)據(jù)存儲(chǔ)的HDFS 目錄為:/user/hive/warehouse/wyp/part-00002。

來看下Hive數(shù)據(jù)抽象結(jié)構(gòu)圖

 

從上圖可以看出,表是在數(shù)據(jù)庫下面,而表里面又要分區(qū)、桶、傾斜的數(shù)據(jù)和正常的數(shù)據(jù)等;分區(qū)下面也是可以建立桶的。

二、Hive的元數(shù)據(jù)

Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。 由于Hive的元數(shù)據(jù)需要不斷的更新、修改,而HDFS系統(tǒng)中的文件是多讀少改的,這顯然不能將Hive的元數(shù)據(jù)存儲(chǔ)在HDFS中。目前Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,如Mysql、Derby中。我們可以通過以下的配置來修改Hive元數(shù)據(jù)的存儲(chǔ)方式

 

  1. <property> 
  2.   <name>javax.jdo.option.ConnectionURL</name> 
  3.   <value>jdbc:mysql://localhost:3306/hive_hdp?characterEncoding=UTF-8 
  4.                     &createDatabaseIfNotExist=true</value> 
  5.   <description>JDBC connect string for a JDBC metastore</description> 
  6. </property> 
  7.   
  8. <property> 
  9.   <name>javax.jdo.option.ConnectionDriverName</name> 
  10.   <value>com.mysql.jdbc.Driver</value> 
  11.   <description>Driver class name for a JDBC metastore</description> 
  12. </property> 
  13.   
  14. <property> 
  15.   <name>javax.jdo.option.ConnectionUserName</name> 
  16.   <value>root</value> 
  17.   <description>username to use against metastore database</description> 
  18. </property> 
  19.   
  20. <property> 
  21.   <name>javax.jdo.option.ConnectionPassword</name> 
  22.   <value>123456</value> 
  23.   <description>password to use against metastore database</description> 
  24. </property> 

 

當(dāng)然,你還需要將相應(yīng)數(shù)據(jù)庫的啟動(dòng)復(fù)制到${HIVE_HOME}/lib目錄中,這樣才能將元數(shù)據(jù)存儲(chǔ)在對(duì)應(yīng)的數(shù)據(jù)庫中。
 

責(zé)任編輯:Ophira 來源: about云開發(fā)
相關(guān)推薦

2024-06-25 08:18:55

2013-04-15 10:59:08

iOS開發(fā)ARC版本說明

2023-04-06 08:37:24

2021-02-15 13:38:38

多線程異步模型

2024-05-17 10:05:06

Java機(jī)制應(yīng)用

2017-07-20 16:55:56

Android事件響應(yīng)View源碼分析

2025-01-26 15:38:11

Spring事務(wù)編程式

2024-02-28 12:41:00

源碼內(nèi)核參數(shù)

2021-05-08 07:14:38

MySQL數(shù)據(jù)庫安全性

2020-04-14 20:40:58

Git內(nèi)部存儲(chǔ)

2020-10-09 08:15:11

JsBridge

2021-04-07 13:28:21

函數(shù)程序員異步

2019-07-23 08:55:46

Base64編碼底層

2023-01-03 18:32:32

2017-11-02 14:06:40

2024-05-10 08:19:59

arthasjava字節(jié)碼

2021-11-11 12:02:17

HiveOrderSort

2017-09-05 08:52:37

Git程序員命令

2022-02-21 09:44:45

Git開源分布式

2023-05-12 08:19:12

Netty程序框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一区二区在线免费观看 | 你懂的国产 | 国产japanhdxxxx麻豆 | 一区二区视频 | 久久午夜精品 | 超碰男人天堂 | 天天摸天天干 | 一区视频| 福利视频网站 | 麻豆精品一区二区三区在线观看 | 成人在线看片 | 欧美白人做受xxxx视频 | 精品国产乱码久久久久久88av | www.日本在线播放 | 欧美a区| 香蕉久久网 | 黄色小视频入口 | 999免费视频| 亚洲一区精品在线 | 精品国产不卡一区二区三区 | 久久爱黑人激情av摘花 | 成人不卡视频 | 在线国产一区二区 | 天天干天天操 | 天天色综 | 日韩午夜激情 | 精品国产乱码久久久久久闺蜜 | eeuss国产一区二区三区四区 | 成年人网站国产 | 综合国产 | 中文字幕一区二区在线观看 | 午夜色婷婷 | 国产精品视频在线播放 | av在线播放网址 | 操一草 | 一区观看 | 亚洲综合五月天婷婷 | 爱爱综合网 | 一区二区三区四区在线视频 | 欧美在线综合 | 精品九九九 |