hive的介绍与使用

hive产生的意义

使用SQL来操作Hadoop,从而简化代码更容易操作

Hive:一个基于Hadoop之上的中间件

简单来说就是: 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能,本质是将 SQL 转换为 MapReduce 程序,主要用途是用来做离线数据分析,比直接用 MapReduce 开发效率更高。

为什么使用 Hive ?

因为MapReduce 实现复杂查询逻辑开发难度太大 ,操作接口采用类 SQL 语法,提供快速开发的能力,避免了去写 MapReduce,减少开发人员的学习成本。

但是现在hive的用途基本上是做hdfs上的表的关系映射,不做其他开发用途了,因为跑MapReduce程序效率太低,已经被其他的组件代替了。不过入门学习从hadoop,hive开始是一个正确的选择。

Hive 架构

在这里插入图片描述

用户接口:linux上使用shell命令进行连接

元数据存储:元数据存储的数据库一般为 mysql/derby.。Hive 将元数据(metadata )存储在数据库中。也就是将数据的对应关系存放在 mysql/derby中,存在mysql/derby的内容成为数据元.但是操作时还是用自己的特有sql语句,称为HQL.从而使用sql,hive底层会自动转化成mapreduce从而进行计算.

解释器、编译器、优化器、执行器: hive的语言简称为 HQL(与hibernate语言不一样,只是名字类似).完成 HQL 查询语句从词法分析、语法分析、编译、优化以及询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。

Hive 与 Hadoop 的关系

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

Hive 与传统数据库对比

hive 用于海量数据的离线数据分析

hive 具有 sql 数据库的外表,但应用场景完全不同,hive 只适合用来做批
量数据统计分析,
在这里插入图片描述

Hive 安装部署

Hive 安装前需要安装好 JDK 和 Hadoop。配置好环境变量。如果需要使用
mysql 来存储元数据,则需要 mysql 也安装好。

元数据 metastore,内嵌模式使用的是内嵌的 Derby 数据库来存储元数据,也不需要额外起Metastore 服务。数据库和 Metastore 服务都嵌入在主 Hive Server 进程中。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适
用于生产环境。,所以后续存储改为mysql.
在这里插入图片描述
下载如图所示,本人采用CDH版本,由于选择了CDH,只要找到CDH版本对应的Hive版本即可,不用考虑兼容性.因为hive与hadoop需要版本兼容使用cdh的话下载相同版本就行了.

将hive解压到指定目录

tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C /export/servers/

修改配置

/export/servers/hive-1.1.0-cdh5.14.0/conf(修改内容都在conf文件下)

配置Hive的系统环境变量

#HIVE_HOME
export HIVE_HOME=/export/servers/hive-1.1.0-cdh5.14.0/bin
export PATH=:$PATH:$HIVE_HOME/bin

修改环境变量:hive-env.sh
#修改文件名

mv hive-env.sh.template hive-env.sh

#编辑文件

vim hive-env.sh

#修改如下内容

48行:HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
51行:export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf

启动测试

启动hive之前提前创建对应的目录,以及赋予权限

  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

先启动hdfs,再启动yarn,然后启动hive

sbin/start-dfs.sh
sbin/start-yarn.s.h
/export/servers/hive-1.1.0-cdh5.14.0/bin/hive

hive测试

将随便写一份wordcount.txt文件,打一些字一行一些字就行,在hdfs中拷贝一份

hdfs dfs -cp /wordcount/input/wordcount.txt /user/root/

在hive中创建表

create table wordcount(word string);

加载数据到Hive中:实现 了hdfs文件与表的关联

load data inpath '/user/root/wordcount.txt' into table wordcount;

查询测试

select * from wordcount;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值