一、Hive的簡介、原理及安裝

1、簡介

Hive是一個SQL解析引擎,他能夠將sql轉化爲 TEZ、mapreduce、spark 等計算框架而且提交到yarn等資源調度平臺上進行計算。它藉助於MySQL數據庫對hdfs上的文件進行表的映射,從而知道表的文件格式、分區字段、字段類型等等信息。java

切換引擎的方式
set hive.execution.engine=tez
set hive.execution.engine=mr

2、主要用途

用來作離線數據分析,比直接用mapreduce開發效率更高,由於只須要寫SQL語句,自定翻譯成MapReduce。mysql

3、原理

  • 一、Hive中有一個引擎,用於解析SQL語句而且翻譯成MapReduce程序。而sql語句能夠來源於:web、cli、jdbc/odbc等。hive的元數據存儲在一個數據庫中(mysql、oracle等)其實就是一些映射關係,好比須要分析的數據在hdfs的哪裏,按什麼分段,有哪些字段等等。真正的分析數據在HDFS上。web

  • 二、使用的必要條件:用戶必須指定:讀取文件的方式(Hive 中默認有三個文件格式 TextFile,SequenceFile 以及 RCFile)、行分隔符、列分隔符。sql

4、安裝

HIVE是一個hdfs的數據倉庫工具,不是分佈式的,直接解壓就可以使用。shell

  • 一、解壓hive數據庫

  • 二、解決一下版本不兼容問題:替換 /root/apps/hadoop/share/hadoop/yarn/lib中的老版本jline 爲hive的lib中的jline-2.12.jar服務器

  • 三、在安裝目錄下的conf中vi hive-site.xml ====>爲了指向mysql數據庫來存儲元數據。oracle

    <configuration>
      <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
          <description>JDBC connect string for a JDBC metastore</description>
      </property>
    
      <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
          <value>com.mysql.jdbc.Driver</value>
          <description>Driver class name for a JDBC metastore</description>
      </property>
    
      <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>root</value>
          <description>username to use against metastore database</description>
      </property>
    
      <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>root</value>
          <description>password to use against metastore database</description>
      </property>
      </configuration>
  • 四、啓動交互式shell模式app

    hive/bin/hive    就能夠鏈接上了。
  • 五、若是想做爲一個服務器,給其餘的客戶端鏈接,則須要啓動:框架

    bin/hiveserver2  
    
      而後再其餘的機器用
      hive/bin/beeline  回車	   
      beeline> !connect jdbc:hive2//hadoop1:10000
相關文章
相關標籤/搜索