Hive概述

Hive产生背景

  1. MapReduce编程的不便性
  2. 传统RDBMS人员的需要
    HDFS上的文件并没有Schema的概念

Hive是什么

由FaceBook开源,用于解决海量结构化日志的数据统计问题。
构建在Hadoop之上的数据仓库。
Hive提供的SQL查询语言:HQL
底层支持多种不同的执行引擎:MR/Tez/Spark

为什么要使用Hive

容易、简单上手
为超大数据集设计的计算/扩展能力
统一的元数据管理:Hive数据存放在HDFS中,元数据是记录数据的数据。

Hive架构

在这里插入图片描述

  1. Client提交SQL到hive中,表信息(元数据)存放在hive中自带引擎(Derby)。通常情况下我们存放在Mysql中。Derby只能进行但客户端操作,就是所谓的单session,即使在测试环境中,也不推荐使用Derby。我们往往使用Mysql存放元数据信息。而mysql一旦挂掉之后,丢掉元数据信息,虽然数据在HDFS中,但是没有schema信息,数据就无法使用了,因此需要做主备。
  2. Hive翻译SQL成MapReduce提交到集群中运行,也就是提交到RM中
  3. 在Hadoop集群中,有很多节点,但是Hive是一个客户端而已,并不涉及到集群的概念,也就是不需要Hive集群就可以。

Hive与RDBMS的区别

虽然HiveSQL 与SQL非常类似,但是他们有本质区别的。虽然他们长得非常相似,但是他们之间没有任何关系

Hive部署

  1. 下载hive-1.1.0-cdh5.15.1
  2. hive-1.1.0-cdh5.15.1解压到~/app/目录下
  3. 添加$HIVE_HOME~/.bashrc环境变量
  4. 修改配置
    修改配置文件hive-env.sh,内容如下:HADOOP_HOME=/home/iie4bu/app/hadoop-2.6.0-cdh5.15.1
    修改配置文件hive-site.xml,内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://swarm-manager:3306/hadoop_hive?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>123456</value>
</property>
</configuration>

jdbc:mysql://swarm-manager:3306/hadoop_hive?createDatabaseIfNotExist=true表示会生成一个hadoop_hive
5. 将mysql-connector-java-5.1.35.jar拷贝到hive-1.1.0-cdh5.15.1/lib路径下。
6. 前提是要安装一个数据库。
7. 启动hive:在hive-1.1.0-cdh5.15.1/bin下执行hive
在这里插入图片描述

创建数据库

在hive中创建一个数据库,在mysql中查看数据库:
在这里插入图片描述
可以看到生成了一个新的mysql数据库hadoop_hive:
在这里插入图片描述
查看其中的DBS表:
在这里插入图片描述
其中第一条数据是默认的一条数据,第二条是我们创建的一条。
查看HDFS中的内容:
在这里插入图片描述

创建数据表

hive> create table helloworld(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
在这里插入图片描述

导入数据

创建数据文件:

1       zhangsan
2       lisi
3       wangwu

在这里插入图片描述
查看导入的数据:
在这里插入图片描述

执行MapReduce

统计一下这个helloworld表的数据:
在这里插入图片描述
可以看到开始执行一个MapReduce,在YARN中查看,有一个正在运行的MR:
在这里插入图片描述
MapReduce运行成功之后:
在这里插入图片描述
在这里插入图片描述
因此可以直接通过SQL执行MAPREDUCE。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值