欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hive - 简介和安装

程序员文章站 2022-04-29 20:59:18
...

一、产生背景

  • 初代的hadoop的MapReduce写起来非常的麻烦。
  • 兼容RDBMS人员的“云化”,方便使用类SQL操作大数据集。

二、架构

Hive - 简介和安装
  根据上图可以知道,Hive的接口可以是命令行、JDBC(JDBC主要的作用就是去MySQL表中取结果信息)、Web等。一条Hive SQL会像一条SQL一样,语法解析,优化器优化,执行器执行。不同的事,执行器执行在分布式存储系统上(HDFS),这样执行器也可以有多种选择(MapReduce、Spark…..)。那HDFS上是文件怎么和关系型数据库的结构化存储联系在一起呢?!MatesStore,里面存储统一的元数据信息。常用的MatesStore有MySQL。
  虽然Hive与关系型数据库都是写SQL或者叫类SQL,Hive与关系型数据库还是有不同的地方。关系型数据库更关注的是查询实时性,一个语句不可能等太久。而Hive更关注的是一个大数据仓库的统计和分析,延时性会非常高。

三、Hive部署

3.1 下载Hive CDH版本

下载 cdh版本 hive-1.1.0-cdh5.7.0 
http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz

3.2 解压到指定路径下

tar -zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ../app/

3.3 添加环境变量和改变文件所属

1、添加环境变量
vim ~/.bash_profile
添加
#HIVE
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0
export PATH=$HIVE_HOME/bin:$PATH
2、生效
source ~/.bash_profile
3、改变hive-1.1.0-cdh5.7.0文件归属
chown -R hadoop:hadoop hive-1.1.0-cdh5.7.0

3.4 拷贝MySQL的连接驱动

因为要连接MySQL来存储统一的元数据信息
cp mysql-connector-java-5.1.46-bin.jar
 /home/hadoop/app/hive-1.1.0-cdh5.7.0/lib/

3.5 配置

配置文件在$HIVE_HOME/conf下
1、设置Hive的环境变量中hadoop地址(如果全局变量设置过了$HADOOP_HOME就不用)
cp hive-env.sh.template hive-env.sh
增加
HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0

2、设置MySQL的连接设置 hive-site.xml 
vim hive-site.xml 
增加以下内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <!--连接MysqlURL-->
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop001:3306/myhivedatabase?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>root</value>
    </property>

    <property>
        <!--连接密码-->
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>
</configuration>
3、为了防止在上诉第2点中,生成的数据库myhivedatabase对创建表报错,在生成数据库后,对数据库语言使用拉丁字符集
  登入mysql
     mysql -uroot -proot
  修改字符集
     alter database myhivedatabase character set latin1;

3.6 启动

启动:
$HIVE_HOME/bin/hive
相关标签: Hive