Hive - 简介和安装

一、产生背景

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

二、架构

这里写图片描述
  根据上图可以知道,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

猜你喜欢

转载自blog.csdn.net/myt0929/article/details/80628977