hive的安裝和初步使用

試着安裝了一下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

相關文章
相關標籤/搜索