hive安裝與配置,學習與總結

Hive是Hadoop項目中的一個子項目,由FaceBook向Apache基金會貢獻。Hive被視爲一個倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並可以將sql語句轉換爲 MapReduce 任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。 

Hive主要分爲以下幾個部分: 

 1.用戶接口 

用戶接口主要有三個:命令行(CLI),客戶端(Client) 和 Web界面(WUI)。

最常用的是 CLI,啓動的時候,會同時啓動一個 Hive 服務。

Client 是 Hive 的客戶端,用戶連接至 Hive Server。在啓動 Client 模式的時候,需要指出 Hive Server 所在節點,並且在該節點啓動 Hive Server。

WUI 是通過瀏覽器訪問 Hive的Web工具


2.元數據存儲

 Hive 將元數據存儲在數據庫中,如 MySQL或者Derby嵌入式數據庫。


3. 執行 解釋器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,並在隨後有 MapReduce 調用執行。


4. HDFS存儲 

 Hive 的數據存儲在 HDFS 中,大部分的查詢由 MapReduce 完成(包含 * 的查詢,比如 select * from tbl 不會生成 MapRedcue 任務)。


安裝與配置 

下載到hive到/usr/local/src

tar zxvf hive-0.12.0.tar.gz

mv hive-0.12.0 /usr/local/hive

加入以下環境變量到/etc/profile

export PATH="$PATH:/usr/local/mysql/bin"

export HADOOP_HOME=/usr/local/hadoop-2.2.0

export HIVE_HOME=/usr/local/hive

export HIVE_CONF_DIR=$HIVE_HOME/conf

export HIVE_LIB=$HIVE_HOME/lib

export CLASSPATH=$CLASSPATH:$HIVE_LIB

export PATH=$HIVE_HOME/bin/:$PATH

source /etc/profile

修改配置文件

cd /usr/local/hive/conf

複製4個配置模板文件

cp hive-default.xml.template

……

新建配置文件 hive-site.xml 需提前裝好mysql,並設置指定賬號,給予權限

提前下載好java連接mysql工具包mysql-connector-java-5.1.22-bin.jar,放入HIVE_LIB中

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  

<configuration>

<property>

  <name>hive.metastore.local</name>

    <value>true</value>

    </property>

      

<property>

  <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:mysql://127.0.0.1:3306/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>hive</value>

    </property>

      

<property>

  <name>javax.jdo.option.ConnectionPassword</name>

    <value>hive</value>

    </property>

    <property>

      <name>datanucleus.fixedDatastore</name>

        <value>false</value>

        </property>

          

</configuration>

以hadoop身份執行hive

cd /usr/local

chown -R hadoop:hadoop hive

su hadoop

執行:hive

hive> CREATE TABLE pokes (foo INT, bar STRING);

hive> show tables;

OK

pokes

Time taken: 2.855 seconds, Fetched: 1 row(s)

hive> 

hdfs dfs -ls /user/hive #查看hdfs中有關hive的文件

導入測試數據

hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' overwrite into table pokes;


hive> select * from pokes;


執行一個計算任務

hive> select max(foo) as m from pokes;


ps: 1 結合http://cswei.blog.51cto.com/3443978/1417503 Hadoopj集羣搭建手冊

     2 https://cwiki.apache.org/confluence/display/Hive/GettingStarted  hive官方指導

   http://blog.fens.me/hadoop-hive-roadmap/  Hive學習路線圖


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章