hadoop(1):centos 安裝 hadoop & hive

來源:互聯網
上載者:User

標籤:hadoop   hive   

1,關於hive

Hive是一個基於Hadoop的資料倉儲平台。通過hive,我們可以方便地進行ETL的工作。hive定義了一個類似於SQL的查詢語言:HQL,能 夠將使用者編寫的QL轉化為相應的Mapreduce程式基於Hadoop執行。

Hive是Facebook 2008年8月剛開源的一個資料倉儲架構,其系統目標與 Pig 有相似之處,但它有一些Pig目前還不支援的機制,比如:更豐富的類型系統、更類似SQL的查詢語言、Table/Partition中繼資料的持久化等。

本文的原文串連是: http://blog.csdn.net/freewebsys/article/details/47617975 未經博主允許不得轉載。

網站首頁:
http://hive.apache.org/

2,安裝

首先要安裝hadoop
https://hadoop.apache.org/
直接下載tar.gz解壓縮。最新版本2.7.1。

tar -zxvf hadoop-2.7.1.tar.gzmv hadoop-2.7.1 hadoop


http://hive.apache.org/downloads.html
直接解壓縮就可以。最新版本 1.2.1。

tar -zxvf apache-hive-1.2.1-bin.tar.gz mv apache-hive-1.2.1 apache-hive

設定環境變數:

export JAVA_HOME=/usr/java/defaultexport CLASS_PATH=$JAVA_HOME/libexport PATH=$JAVA_HOME/bin:$PATHexport HADOOP_HOME=/data/hadoopexport PATH=$HADOOP_HOME/bin:$PATHexport HIVE_HOME=/data/apache-hiveexport PATH=$HIVE_HOME/bin:$PATH
3,啟動hive,建立表

hive 官網:https://cwiki.apache.org/confluence/display/Hive/Home
配置環境變數就可以啟動hive了,這個hive是一個本機環境,只依賴hadoop,只有有hadoop環境變數就行。

建立資料表,和mysql非常類似
參考:http://www.uml.org.cn/yunjisuan/201409235.asp
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

# hiveLogging initialized using configuration in jar:file:/data/apache-hive/lib/hive-common-1.2.1.jar!/hive-log4j.propertieshive> show databases;OKdefaultTime taken: 1.284 seconds, Fetched: 1 row(s)hive> use default;OKTime taken: 0.064 secondshive> show tables;OKTime taken: 0.051 secondshive> CREATE TABLE user_info(uid INT,name STRING)    > PARTITIONED BY (create_date STRING)    > ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘    > STORED AS TEXTFILE;OKTime taken: 0.09 seconds

使用apache hive 建立資料庫表的時候有可能會遇到問題:

FAILED: ParseException line 5:2 Failed to recognize predicate ‘date‘. Failed rule: ‘identifier‘ in column specification

說明關鍵字衝突了。不能使用date,user等關鍵字。

指定儲存格式為 Sequencefile 時,把txt格式的資料匯入表中,hive 會報檔案格式錯

Failed with exception Wrong file format. Please check the file‘s format.FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
4,匯入資料

hive不支援用insert語句一條一條的進行插入操作,也不支援update操作。資料是以load的方式載入到建立好的表中。
資料一旦匯入就不可以修改。因為hadoop是這個特性。

建立兩個資料檔案:

/data/user_info_data1.txt
121,zhangsan1
122,zhangsan2
123,zhangsan3
/data/user_info_data2.txt
124,zhangsan4
125,zhangsan5
126,zhangsan6

資料匯入:分別將資料匯入到兩個分區中。

hive> LOAD DATA LOCAL INPATH ‘/data/user_info_data1.txt‘ OVERWRITE INTO TABLE user_info PARTITION (create_date=‘20150801‘);Loading data to table default.user_info partition (create_date=20150801)Partition default.user_info{create_date=20150801} stats: [numFiles=1, numRows=0, totalSize=42, rawDataSize=0]OKTime taken: 0.762 secondshive> LOAD DATA LOCAL INPATH ‘/data/user_info_data2.txt‘ OVERWRITE INTO TABLE user_info PARTITION (create_date=‘20150802‘);Loading data to table default.user_info partition (create_date=20150802)Partition default.user_info{create_date=20150802} stats: [numFiles=1, numRows=0, totalSize=42, rawDataSize=0]OKTime taken: 0.403 seconds
5,查詢

直接查詢即可。

hive> select * from user_info where create_date = 20150801;OK121     zhangsan1       20150801122     zhangsan2       20150801123     zhangsan3       20150801Time taken: 0.099 seconds, Fetched: 3 row(s)

更多查詢函數參考:
hive 函數大全和使用者自訂函數
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

6,總結

本文的原文串連是: http://blog.csdn.net/freewebsys/article/details/47617975 未經博主允許不得轉載。

hive可以非常方便的進行離線資料統計,因為資料一旦錄入是不能進行修改的。
hive的文法和mysql非常相似,可以充分利用hadoop進行資料統計,可以進行多次join而不用擔心效率問題。
目前,有一個小問題沒有解決,是資料匯入必須使用textfile,不是壓縮檔類型。
這個問題的具體描述參考:
http://blog.163.com/[email protected]/blog/static/6797953420128118227663/

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

hadoop(1):centos 安裝 hadoop & hive

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.