hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其本质就是将SQL转成mapreduce。
- ubuntu14.04
- hadoop2.5.2
- apache-hive-0.13.1-bin
安装
$ sudo apt-get install mysql-server
测试是否安装成功
$ mysql -uroot -p
mysql> show databases;
新建 hive 用户, 并赋予权限:
mysql> create user 'hive' identified by 'hive';
mysql> grant all privileges on hive.* to 'hive'@'%' with grant option;
mysql> flush privileges;
下载安装包,解压到Hadoop所在的路径
$ tar -zxvf apache-hive-0.13.1-bin.tar.gz
$ mv apache-hive-0.13.1 /hadoop/hive
修改环境变量参数:
$ vim ~/.bashrc
export HIVE_HOME=/hadoop/hive
export PATH=$HIVE_HOME/bin:$PATH
$ source ~/.bashrc
可用下载地址
$ tar xvf mysql-connector-java-5.1.33
$ cp mysql-connector-java-5.1.33/mysql-connector-java-5.1.33-bin.jar $HIVE_HOME/lib
配置文件位于 $HIVE_HOME/conf 目录下
修改hive-site.xml:
$ cp hive-default.xml.template hive-site.xml
主要修改其中的如下几项为对应的值:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
修改 hive-env.sh:
$ cp hive-env.sh.template hive-env.sh
export HADOOP_HEAPSIZE=1024
export HADOOP_HOME=/hadoop/hadoop
export HIVE_CONF_DIR=/hadoop/hive/conf
export HIVE_AUX_JARS_PATH=/hadoop/hive/lib
使用 9083 端口
$ vim $HIVE_HOME/conf/hive-site.xml
<property>
<name>hive.metastore.uris</name>
<value>thrift://localhost:9083</value>
</property>
$ vim $HIVE_HOME/hcatalog/sbin/hcat_server.sh
#将端口写死
export METASTORE_PORT=9083
#或者编辑~/.bashrc
METASTORE_PORT=9083
启动hcatalog server:
$ $HIVE_HOME/hcatalog/sbin/hcat_server.sh start
命令行下, 输入 hive, 进入 hive 命令行环境, 并且不抛出异常:
$ hive
hive>
先后启动hadoop和hive, 接着进行测试
$ hive
hive> show tables;
hive> create table test(id int);
如果没有报错, 可以认为安装成功了.