<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### 12.1 實驗目的 掌握Hive分區的用法,加深對Hive分區概念的理解,了解Hive表在HDFS的存儲目錄結構。 ### 12.2 實驗要求 創建一個Hive分區表;根據數據年份創建year=2014和year=2015兩個分區;將2015年的數據導入到year=2015的分區;在Hive界面用條件year=2015查詢2015年的數據。 ### 12.3 實驗原理 分區(Partition) 對應于數據庫中的 分區(Partition) 列的密集索引,但是 Hive 中 分區(Partition) 的組織方式和數據庫中的很不相同。在 Hive 中,表中的一個分區(Partition) 對應于表下的一個目錄,所有的分區(Partition) 的數據都存儲在對應的目錄中。例如:pvs 表中包含 ds 和 ctry 兩個分區(Partition),則對應于 ds = 20090801, ctry = US 的 HDFS 子目錄為:/wh/pvs/ds=20090801/ctry=US;對應于 ds = 20090801, ctry = CA 的 HDFS 子目錄為;/wh/pvs/ds=20090801/ctry=CA。 外部表(External Table) 指向已經在 HDFS 中存在的數據,可以創建分區(Partition)。它和 Table 在元數據的組織上是相同的,而實際數據的存儲則有較大的差異。 Table 的創建過程和數據加載過程(這兩個過程可以在同一個語句中完成),在加載數據的過程中,實際數據會被移動到數據倉庫目錄中;之后對數據的訪問將會直接在數據倉庫目錄中完成。刪除表時,表中的數據和元數據將會被同時刪除。 ### 12.4 實驗步驟 因為Hive依賴于MapReduce,所以本實驗之前先要啟動Hadoop集群,然后再啟動Hive進行實驗,主要包括以下三個步驟。 #### 12.4.1 啟動Hadoop集群 在主節點進入Hadoop安裝目錄,啟動Hadoop集群。 ~~~ [root@master ~]# cd /usr/cstor/hadoop/sbin [root@master sbin]# ./start-all.sh ~~~ #### 12.4.2 用命令進入Hive客戶端 進入Hive安裝目錄,用命令進入Hive客戶端。 ~~~ [root@master ~]# cd /usr/cstor/hive [root@master hive]# bin/hive ~~~ #### 12.4.3 通過HQL語句進行實驗 進入客戶端后,查看Hive數據庫,并選擇default數據庫: ~~~ hive> show databases; OK default Time taken: 1.152 seconds, Fetched: 1 row(s) hive> use default; OK Time taken: 0.036 seconds 在命令端創建Hive分區表: hive> create table parthive (createdate string, value string) partitioned by (year string) row format delimited fields terminated by '\t'; OK Time taken: 0.298 seconds ~~~ 查看新建的表: ~~~ hive> show tables; OK parthive Time taken: 1.127 seconds, Fetched: 1 row(s) ~~~ 給parthive表創建兩個分區: ~~~ hive> alter table parthive add partition(year='2014'); OK Time taken: 0.195 seconds hive> alter table parthive add partition(year='2015'); OK Time taken: 0.121 seconds ~~~ 查看parthive的表結構: ~~~ hive> describe parthive; OK createdate string value string year string # Partition Information # col_name data_type comment year string Time taken: 0.423 seconds, Fetched: 8 row(s) ~~~ 向year=2015分區導入本地數據: ~~~ hive> load data local inpath '/root/data/12/parthive.txt' into table parthive partition(year='2015'); Loading data to table default.parthive partition (year=2015) Partition default.parthive{year=2015} stats: [numFiles=1, totalSize=110] OK Time taken: 1.071 seconds ~~~ 根據條件查詢year=2015的數據: ~~~ hive> select * from parthive t where t.year='2015'; ~~~ 根據條件統計year=2015的數據: ~~~ hive> select count(*) from parthive where year='2015'; ~~~ ### 12.5 實驗結果 用命令查看HDFS文件,Hive中parthive表在HDFS文件中的存儲目錄結構如下圖12-1所示: ![](https://box.kancloud.cn/10b98eb752d82f712506f1b6fc80ef1a_484x54.jpg) 圖12-1 parthive表結構圖 Hive客戶端查詢結果如下圖12-2所示: ![](https://box.kancloud.cn/b4cf5b3e6ff0cf4bab163183280ea2a3_529x166.jpg) 圖12-2 客戶端查詢結果圖 Hive客戶端統計結果如下圖12-3所示: ![](https://box.kancloud.cn/f0e58c32e29c6908b4f19ff09d58aaff_529x257.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看