<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、簡介 Hive 是一個構建在 Hadoop 之上的數據倉庫,它可以將結構化的數據文件映射成表,并提供類 SQL 查詢功能,用于查詢的 SQL 語句會被轉化為 MapReduce 作業,然后提交到 Hadoop 上運行。 **Hive的表對應HDFS的目錄(或文件夾);Hive表中的數據對應HDFS的文件**。 **特點**: 1. 簡單、容易上手 (提供了類似 sql 的查詢語言 hql),使得精通 sql 但是不了解 Java 編程的人也能很好地進行大數據分析; 2. 靈活性高,可以自定義用戶函數 (UDF) 和存儲格式; 3. 為超大的數據集設計的計算和存儲能力,集群擴展容易; 4. 統一的元數據管理,可與 presto/impala/sparksql 等共享數據; 5. 執行延遲高,不適合做數據的實時處理,但適合做海量數據的離線處理。] ## 二、Hive的體系架構 ![](https://img.kancloud.cn/5e/d5/5ed592d7e9d4f3360f49b7818f868bb8_682x483.png) ### 2.1 command-line shell & thrift/jdbc 可以用 command-line shell 和 thrift/jdbc 兩種方式來操作數據: * **command-line shell**:通過 hive 命令行的的方式來操作數據; * **thrift/jdbc**:通過 thrift 協議按照標準的 JDBC 的方式操作數據。 ### 2.2 Metastore 在 Hive 中,表名、表結構、字段名、字段類型、表的分隔符等統一被稱為元數據。所有的元數據默認存儲在 Hive 內置的 derby 數據庫中,但由于 derby 只能有一個實例,也就是說不能有多個命令行客戶端同時訪問,所以在實際生產環境中,通常使用 MySQL 代替 derby。 Hive 進行的是統一的元數據管理,就是說你在 Hive 上創建了一張表,然后在 presto/impala/sparksql 中都是可以直接使用的,它們會從 Metastore 中獲取統一的元數據信息,同樣的你在 presto/impala/sparksql 中創建一張表,在 Hive 中也可以直接使用。 ### 2.3 HQL的執行流程 Hive 在執行一條 HQL 的時候,會經過以下步驟: 1. 語法解析:Antlr 定義 SQL 的語法規則,完成 SQL 詞法,語法解析,將 SQL 轉化為抽象 語法樹 AST Tree; 2. 語義解析:遍歷 AST Tree,抽象出查詢的基本組成單元 QueryBlock; 3. 生成邏輯執行計劃:遍歷 QueryBlock,翻譯為執行操作樹 OperatorTree; 4. 優化邏輯執行計劃:邏輯層優化器進行 OperatorTree 變換,合并不必要的 ReduceSinkOperator,減少 shuffle 數據量; 5. 生成物理執行計劃:遍歷 OperatorTree,翻譯為 MapReduce 任務; 6. 優化物理執行計劃:物理層優化器進行 MapReduce 任務的變換,生成最終的執行計劃。 ### 三、部署架構 ![](https://img.kancloud.cn/b1/9e/b19e854b7296878ca823c538c67f56b1_699x381.png) ### 四、下載 [cdh下載地址](http://archive.cloudera.com/cdh5/cdh/5/) `wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.15.1.tar.gz` * 解壓到~/app/ ### 五、修改配置 **1. hive-env.sh** 進入安裝目錄下的 `conf/` 目錄,拷貝 Hive 的環境配置模板 `flume-env.sh.template` ~~~shell cp hive-env.sh.template hive-env.sh ~~~ 修改 `hive-env.sh`,指定 Hadoop 的安裝路徑: ~~~shell HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2 ~~~ **2\. hive-site.xml** 新建 hive-site.xml 文件,內容如下,主要是配置存放元數據的 MySQL 的地址、驅動、用戶名和密碼等信息: <?xml version="1.0"?> ```shell <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <connfiguration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://bizzbee:3306/hadoop_hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> ``` * 拷貝數據庫驅動 將 MySQL 驅動包拷貝到 Hive 安裝目錄的 `lib` 目錄下, MySQL 驅動的下載地址為:[https://dev.mysql.com/downloads/connector/j/](https://dev.mysql.com/downloads/connector/j/) , 在本倉庫的[resources](https://github.com/heibaiying/BigData-Notes/tree/master/resources) 目錄下我也上傳了一份,有需要的可以自行下載。 * 然后就自己安裝一個mysql * 具體參考[我的mysql56安裝筆記](http://www.hmoore.net/bizzbee/linux_a/1231732) * 啟動hive ---啟動之前要確定hdfs和yarn的狀態,以及是否成功安裝mysql。 ``` [bizzbee@bizzbee hive-1.1.0-cdh5.15.1]$ bin/hive ```
                  <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>

                              哎呀哎呀视频在线观看