【正文】
table_name ADD partition_spec [ LOCATION 39。location139。 ]partition_spec [ LOCATION 39。location239。 ] ... HQL語言 3. Query(查詢) 基本的有 Query – Join(連接)。 Hive 只支持等值連接( Equality Joins)、外連接( Outer Joins)和 Left Semi Joins ( 1) Join LEFT/RIGHT OUTER :輸出左邊 /右邊的每一行對應的結(jié)果。 ( 2) Left Semi Join:用于實現(xiàn) in select key from table b ( 3)多個表的 Join key 是同一個時, Join 會被轉(zhuǎn)化為單個 Map/Reduce 任務: Reduce 端會緩存 a 表和 b 表的記錄,然后每次取得一個 c 表的記錄就計算一次 Join 結(jié)果 ( 4)不同 Join key時,會被轉(zhuǎn)化為多個 Map/Reduce 任務:第一次緩存 a 表,用 b 表序列化;第二次緩存第一次 Map/Reduce 任務的結(jié)果,然后用 c 表序列化 p a g e i d u s e r i d t i m e1211 1 1 9 : 0 8 : 0 11 1 1 9 : 0 8 : 1 32 2 2 9 : 0 8 : 1 4u s e r i d a g e g e n d e r1 1 12 2 22 5 f e m a l e3 2 m a l ep a g e _ v i e wu s e rk e y v a l u e1 1 11 1 12 2 2 1 , 1 1 , 2 1 , 1 M a pk e y v a l u e1 1 12 2 2 2 , 2 5 2 , 3 2 k e y v a l u e1 1 11 1 11 1 1 1 , 1 1 , 2 2 , 2 5 k e y v a l u e2 2 22 2 2 1 , 1 2 , 3 2 S h u f f l eS o r tR e d u c eJoin的實現(xiàn) 環(huán)境搭建 1.安裝 ant ( 1)從 ant 二進制安裝包,選擇 版本; ( 2)將包 上傳到 /usr/local 目錄; ( 3)在 /usr/local目錄將 : unzip apache; ( 4)在 /usr/local目錄為 ant建一個軟連接: ln s ant; ( 5)修改 /etc/profile,增加如下行: export PATH=/usr/local/ant/bin:$PATH。 2.安裝 ivy ( 1)從 載 ivy 二進制安裝包,選擇 版本; ( 2)將包 上傳到 /usr/local 目錄; ( 3)在 /usr/local目錄將 : tarxzf ; ( 4)在 /usr/local目錄為 ivy 建一個軟連接: ln s ivy; ( 5)修改 /etc/profile,增加如下行: export IVY_HOME=/usr/local/ivy 環(huán)境搭建 3.編譯 Hive 編譯 Hive前,請確保 HADOOP_HOME 和 IVY_HOME 兩個環(huán)境變量已經(jīng)生效。 ( 1)從 Hive 源代碼; ( 2)將 Hive源代碼打包上傳到 HadoopA 機器; ( 3)解壓 Hive源代碼包; ( 4)修改 shims/:只保留 的配置,否則編譯會出錯; ( 5)運行 ant 開始編譯: ant =/usr/local/hadoop/hive = package 編譯后, Hive會被安裝到 /usr/local/hadoop/hive 目錄下; ( 6)添加 Hive環(huán)境變量,在 /etc/profile 文件中增加如下兩行: export HIVE_HOME=/usr/local/hadoop/hiveexport PATH=$HIVE_HOME/bin:$PATH 提 綱 ? 簡介 ? Cassandra ? Hive ? VoltDB 整體架構(gòu) VoltDB 標準的 “ 客戶端 服務器 ” 模型 目標:實現(xiàn)最好的,最具擴展性的 OLTP應用 VoltDB企業(yè)管理器 簡化 VoltDB數(shù)據(jù)庫的管理和有關(guān)操作 VoltDB架構(gòu)模型 企業(yè)管理器的位置 自動數(shù)據(jù)分片技術(shù) 1.自動數(shù)據(jù)分片技術(shù) 不同于傳統(tǒng)數(shù)據(jù)庫,它實現(xiàn)了將整體數(shù)據(jù)自動分攤到多個存儲設備上,這樣每個存儲設備的數(shù)據(jù)量相對就會小很多,以滿足系統(tǒng)的高性能需求 2.分區(qū)表 VoltDB提出的一個新的概念,在數(shù)據(jù)庫的存儲訪問過程中,它基于一個給定的主鍵,根據(jù)選擇分區(qū)鍵的方式,以匹配數(shù)據(jù)訪問 分區(qū)表示意圖 自動數(shù)據(jù)分片技術(shù) 3.表復制 表復制是在分區(qū)表的基礎(chǔ)上提出,其目的是進一步優(yōu)化系統(tǒng)性能 4.串行單線程序處理 訪問隊列依次進入,各節(jié)點分布式,序列化運算,以達到性能最優(yōu)的指標 串行單線程序處理 VoltDB表復制 1.除了本章介紹的幾種開源云計算系統(tǒng)外,請再列舉出幾個其他的開源云計算系統(tǒng)。 2.試比較 Cassandra與傳統(tǒng)關(guān)系數(shù)據(jù)庫在數(shù)據(jù)模型上的異同。 3.簡述 Hive各個組件的主要作用。 4.簡述 VoltDB的自動數(shù)據(jù)分片技術(shù)。 5.試比較 Cassandra、 Hive和 VoltDB,指出它們的異同之處。 6.試自行搭建 Hive平臺,參照 HQL語言編寫并運行一個Hive實例。 習題 閱讀精選 [1] Apache Cassandra [2] Wele to Hive! [3] VoltDB