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

hive.metastore.warehouse.dir
/user/hive/warehouse
location of default database for the warehouse

在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相关信息

    
      javax.jdo.option.ConnectionURL
      jdbc:mysql://centos134:3306/metastore?createDatabaseIfNotExist=true
      JDBC connect string for a JDBC metastore
    

    
      javax.jdo.option.ConnectionDriverName
      com.mysql.jdbc.Driver
      Driver class name for a JDBC metastore
    

    
      javax.jdo.option.ConnectionUserName
      root
      username to use against metastore database
    

    
      javax.jdo.option.ConnectionPassword
      123456
      password to use against metastore database
    

后面运行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

你可能感兴趣的:(Hive部署)