在配置Hive環境之前,需要Hadoop環境。
安裝Hive
下載結束后,會有一個.tar文件,使用以下命令解壓該文件。
tar -zxvf 要解壓的tar包
解壓完成后如下
修改Hive配置文件
- 在hive安裝目錄下的conf中,將所有后綴為.template的文件復制一遍,新文件名稱只需要去掉.template即可,如下
cp hive-default.xml.template hive-default.xml
- 編輯hive-site.xml文件
vim hive-site.xml
修改內容如下
需要在本地mysql新建一個數據庫,命名為hive。
<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?characterEncoding=UTF-8</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!--mysql用戶名--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property>
<!--mysql密碼--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123qwe</value> </property> <!-- hive用來存儲不同階段的map/reduce的執行計划的目錄,同時也存儲中間輸出結果,默認是/tmp/<user.name>/hive,我們實際一般會按組區分,然后組內自建一個tmp目錄存儲 --> <property> <name>hive.exec.scratchdir</name> <value>/tmp/hive</value> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/Users/FengZhen/Desktop/Hadoop/hive/tmp</value> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/Users/FengZhen/Desktop/Hadoop/hive/resources</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration>
配置信息如上
其中 hive.metastore.warehouse.dir 是在HDFS上的路徑,當Hive在本地文件系統中往表中導入數據的時候,如果建表時不指定location,那么Hive會將該數據文件先拷貝到HDFS的 /user/hive/warehouse 路徑下,然后再執行導入操作。每建一個表都會在hive.metastore.warehouse.dir指向的目錄下以表名創建一個文件夾,所有屬於這個表的數據都存在這個文件夾中。
配置環境變量
vim ~/.bash_profile
在.bash_profile中加入
export HIVE_HOME=/Users/FengZhen/Desktop/Hadoop/hive/apache-hive-1.2.2-bin export PATH=$PATH:$HIVE_HOME/bin
加入完成后使用 source 命令重新執行一下該文件
source ~/.bash_profile
至此,Hive環境配置已經結束,進入安裝目錄下的bin文件夾內,啟動hive
./hive
hive操作語句和mysql差不多
建表(指定列分隔符為逗號)
create table fz(id int,name string,age int,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
導入數據
load data local inpath '/Users/FengZhen/Desktop/Hadoop/hive/testfile/fz.txt' into table fz;
fz.txt中內容如下
1,fz,25,1318888888888 2,test,20,13222222222 3,dx,24,183938384983
查詢數據
select * from fz;
hive的環境配置結束。