Hive部署
1. Hive说明
hive的具体数据保存在HDFS上面,元数据保存在mysql上(可配置),在hive中执行的sql语句本质上就是操作HDFS上面的数据,sql操作HDFS的原理是依赖mapReduce。hive将sql转换为可以被mapreduce计算的代码,通过mapreduce的计算再将结果返回给用户。
2. Hive安装
2.1 依赖环境
hadoop环境
2.2 下载并解压
下载地址:http://archive.apache.org/dist/hive/
解压后的文件目录
2.3 修改配置文件
- hive-env.sh
export HADOOP_HOME=/opt/hadoop-2.7.2
export HIVE_CONF_DIR=/opt/apache-hive-1.2.1-bin/conf/
- hive-site.xml
这一项可以不配置,修改hive的default库的原始位置,默认就在/user/hive/warehouse
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
在hdfs上为default创建目录/user/hive/warehouse和/tmp,并赋予权限
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
2.4 修改元数据到mysql
Metastore默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore,并且使用derby会只能打开一个hive窗口
默认使用derby数据库时,会在此目录下生成如下目录,存储元数据。
要使用MySQL存储Metastore,需要安装mysql,这里不在介绍如何安装mysql,可以参考https://www.jianshu.com/p/e0ac5674bbb8。
将mysql连接驱动复制到hive的lib包下:
继续修改hive-site.xml,配置mysql相关信息
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://centos134:3306/metastore?createDatabaseIfNotExist=true</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.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
后面运行hive的时候,会在mysql创建metastore这个库,可以留意后续查看。
此外,hive同时开多个窗口也不会报错了。
3. hive操作
3.1 命令行窗口
bin/hive
image.png
可以在此输入hql语句。
3.2 hiveserver2服务和beeline
启动hiveserver2,会监听10000端口,可以通过jdbc:hive2://centos134:10000连接:bin/hiveserver2
启动beeline:启动beeline
在这里同样可输入sql语句,需要先连接hive:
!connect jdbc:hive2://centos134:10000
3.3 开启thrift服务
会监听端口9083,可以通过thrift://centos134:9083连接
bin/hive --service metastore
4. 资料
官网:http://hive.apache.org/
github:https://github.com/apache/hive
下载地址:https://github.com/apache/hive