分析用Hive搭建数据仓库

Posted 17学习网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析用Hive搭建数据仓库相关的知识,希望对你有一定的参考价值。

Hive简介

Hive是一个在Hadoop中用来处理结构化数据数据仓库基础工具。它是建立在Hadoop之上的数据仓库基础架构,总归为大数据,并使得查询和分析方便。

Hive是由Facebook开发,后来由Apache软件基金会开发,并作为进一步将它作为名义下Apache Hive为一个开源项目。

Hive的特点

  • 它存储架构在一个数据库中并处理数据到HDFS。

  • 它是专为OLAP设计。

  • 它提供SQL类型语言查询叫HiveQL或HQL。

  • 它是熟知,快速,可扩展和可扩展的。

Hive架构

Hive利用HDFS存储数据,利用MapReduce查询数据。

单元名称 操作
用户接口/界面 Hive是一个数据仓库基础工具软件,可以创建用户和HDFS之间互动。用户界面,Hive支持是Hive的Web UI,Hive命令行,HiveHD洞察(在Windows服务器)。
元存储 Hive选择各自的数据库服务器,用以储存表,数据库,列模式或元数据表,它们的数据类型和HDFS映射。默认使用内嵌的derby数据库作为存储引擎,但一次只能打开一个会话,可使用mysql最为Hive的外置存储引擎。
HiveQL处理引擎 HiveQL类似于SQL的查询上Metastore模式信息。这是传统的方式进行MapReduce程序的替代品之一。相反,使用Java编写的MapReduce程序,可以编写为MapReduce工作,并处理它的查询。
执行引擎 HiveQL处理引擎和MapReduce的结合部分是由Hive执行引擎。执行引擎处理查询并产生结果和MapReduce的结果一样。它采用MapReduce方法。
HDFS 或 HBASE Hadoop的分布式文件系统或者HBASE数据存储技术是用于将数据存储到文件系统。

Hive安装部署

Hive版本: 2.3.3

  • 安装条件:

  • Hive安装在Hadoop集群上,并Hadoop集群已启动

  • MySQL已安装并已启动

  • 下载并安装Hive:

  • 从Hive官网 https://mirrors.tuna.tsinghua.edu.cn/apache/hive/stable-2/下载Hive

  • 通过 rz命令将Hive安装包 apache-hive-2.3.3-bin.tar.gz上传到/home/fwj/目录

  • 解压安装 tar-zxvf apache-hive-2.3.3-bin.tar.gz

  • 配置Hive环境变量

    • exportHIVE_HOME=/home/fwj/apache-hive-2.3.3-bin

    • exportPATH=$HIVE_HOME/bin:$PATH

  • 配置MySQL:

  • 下载MySQL驱动: http://www.java2s.com/Code/Jar/m/Downloadmysqlconnectorjar.htm

  • 上传 mysql-connector-java-5.1.21.jar的驱动到HIVE_HOME/lib目录下

  • 登录MySQL,创建数据库hive: create database hive

  • 配置Hive的hive-site.xml

hive-site.xml文件:

 
   
   
 
  1. <?xml version="1.0"?>

  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

  3. <configuration>

  4.    <property>

  5.        <name>javax.jdo.option.ConnectionURL</name>

  6.        <value>jdbc:mysql://192.168.241.131/hive</value>

  7.    </property>

  8.    <property>

  9.        <name>javax.jdo.option.ConnectionDriverName</name>

  10.        <value>com.mysql.jdbc.Driver</value>

  11.    </property>

  12.    <property>

  13.        <name>javax.jdo.option.ConnectionUserName</name>

  14.        <value>root</value>

  15.    </property>

  16.    <property>

  17.        <name>javax.jdo.option.ConnectionPassword</name>

  18.        <value>123456</value>

  19.    </property>

  20. </configuration>

  • 初始化Hive:

  • 从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作: schematool-dbType mysql-initSchema

  • 输入 hive命令进入, exit;可退出

初始化Hive后,在MySQL可以看到生成的表:

【分析】用Hive搭建数据仓库(五)

使用Hive搭建数据仓库

1、创建数据仓库

 
   
   
 
  1. hive> create database if not exists school;

2、创建表

 
   
   
 
  1. hive> create external table if not exists school.student(stuid INT,stuname STRING)

  2. ROW FORMAT DELIMITED

  3. FIELDS TERMINATED BY '\t'

  4. STORED AS TEXTFILE

  5. LOCATION '/school/';

  • external:创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION)

创建表成功后,可以在HDFS看到school目录:【分析】用Hive搭建数据仓库(五)

3、测试文件

将students.txt上传到HDFS的school目录下:

 
   
   
 
  1. hadoop fs -put students.txt /school/

students.txt:

 
   
   
 
  1. 1231    xiaoming

  2. 2312    xiaohong

  3. 1343    wuming

  4. 3423    xiaoming

  5. 3124    fej

  6. 4536    fwa

  7. 6744    fej

  8. 2314    fwj

  9. 3424    xiaoming

4、查询所有数据

 
   
   
 
  1. hive> use school;

  2. hive> select * from student;

4、统计同名

 
   
   
 
  1. hive> use school;

  2. hive> select stuname,count(*) from student group by stuname;

这时会启动一个作业,执行MapReduce过程。

参考

hive2.1.1 部署安装


以上是关于分析用Hive搭建数据仓库的主要内容,如果未能解决你的问题,请参考以下文章

Hive数仓项目架构说明环境搭建及数据仓库基础知识

《企业Hive数据仓库的搭建之路》互联网行业从业十年的大拿,全程案例式教学

22-hadoop-hive搭建

Hive环境搭建 | 数据仓库工具搭建详细过程

Hive环境搭建 | 数据仓库工具搭建详细过程

Hive环境搭建 | 数据仓库工具搭建详细过程