准备工作
- 1.搭建好的Hadoop分布式系统
- 2.apache-hive-1.2.1-bin.tar.gz和mysql-connerctor-java-5.1.43-bin.jar
在mysql数据库上创建hive数据库用于保存hive元数据
#mysql -u root -p
>输入密码
mysql>create database hive;
安装
解压apache-hive-1.2.1-bin.tar.gz
#tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/hadoop/
#cd /usr/local/hadoop
#mv apache-hive-1.2.1-bin hive-1.2.1
注:/usr/local/hadoop是我的hive安装路径
配置
1.由于hive需要访问mysql数据库上的元数据,所以需要导入mysql-connerctor-java-5.1.43-bin.jar到hive-1.2.1/lib目录下。
2.编辑配置文件
#cd /usr/local/hadoop/hive-1.2.1/conf
#vim hive-site.xml
添加如下记录
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://123.207.101.174:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>用户名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>密码</value>
</property>
</configuration>
- 3.将hive导入环境变量
#vim /etc/profile
添加如下记录
HIVE_HOME=/usr/local/hadoop/hive-1.2.1
export PATH=$HIVE_HOME/bin:$PATH
使配置文件生效
#source /etc/profile
配置简单查询的Fetch Task功能
简单查询:没有排序,没有函数的查询称为简单查询。
Fetch Task功能:使用该功能执行简单查询,查询语句将不会被转化为MapReduce任务,而是直接在HDFS文件中查询数据,提高了简单查询的效率。
配置Fetch Task功能的方式:
- hive>set hive.fetch.task.conversion=more;
或
- #hive –hiveconf hive.fetch.task.conversion=more
或
- 修改配置文件hive-site.xml 添加如下记录:
<property>
<name>hive.fetch.task.conversion</name>
<value>more</value>
</property>
验证
在linux下输入hive进入命令行模式
# hive
之前,我们在mysql数据库上创建了一个用于保存hive元数据的hive数据库,此时,当看到如上显示的时候,我们就可以去检查一下hive数据库中的元数据表是否创建成功,如果创建成功则会有如下显示:
可以看到,之前创建的hive数据库中初始化了一些保存元数据的元数据表。