試着安裝了一下hive,在這裏記錄一下過程
你們都知道hive是用來簡化map-reduce過程的,可是真正使用的時候卻跟想象中有差距java
單機版安裝過程以下:
首先確保已經安裝好了hadoop, hdfs能夠正常使用
下載hive:http://apache.stu.edu.tw/hive/
確保下載的是安裝包而不是源碼包
而後解壓安裝包
配置環境變量/etc/profile:mysql
export HIVE_HOME=/datapool/fengkai/hive/ export PATH=$PATH:$HIVE_HOME/bin export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
配置hive-env.sh,添加hadoop_home:sql
HADOOP_HOME=/path/hadoop
配置hive-site.xml:數據庫
首先要在mysql數據庫裏面建立hive數據庫, 用來存儲hive的元數據 至於數據庫是安裝在本機仍是其餘機器是均可以的 而後配置相關的內容: <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://mysqlhost:3306/hive</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.ConnectionPassword</name> <value>password</value> <description>password to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>username</value> <description>Username to use against metastore database</description> </property>
這些都是在hive中須要對數據庫進行的配置
其中還有一處須要處理,就是一些system path的處理
在默認的hive-site.xml的默認配置中有這樣的配置:apache
<property> <name>hive.exec.local.scratchdir</name> <value>${system:java.io.tmpdir}/${system:user.name}</value> <description>Local scratch space for Hive jobs</description> </property>
這裏的${system:java.io.tmpdir}/${system:user.name}是須要本身修改的,否則啓動服務的時候會出錯
都配好以後,直接運行hive就能夠進入到hive的交互界面了
hive建表語句:數據結構
create table test (id int, name string) row format delimited fields terminated by ',' stored as textfile 跟數據庫建表語句很像, 其中上面的語句中指出了導入文件的時候須要用','作間隔, 也能夠指定其餘間隔符
hive導入數據和查詢:oop
lc.txt 1,hello 2,cxy hive> load data local inpath '/localpath/lc.txt' hive> select * from test; OK 1 hello 2 cxy 可見就能夠正常查詢和統計了
最後寫一點總結,其實hive在導入數據的時候也是須要先將數據結構化成指定的格式再導入
而後使用hive統計的時候可以看到hive是把語句轉化成了map-reduce的語句格式使用的
使用hive確實可以方便統計的時候不用寫mapreduce程序,不過仍是須要一步預處理的過程spa