在配置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的环境配置结束。