Hive 入门介绍
Hive 入门介绍
林中漫步 发表于1年前
Hive 入门介绍
  • 发表于 1年前
  • 阅读 41
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

1 Hive是什么

  • Hive是构建在Hadoop之上的数据仓库平台;

  • Hive是一个SQL解析引擎,它将SQL语句转译成MapReduce任务,并在Hadoop上执行;

  • Hive表是HDFS的一个文件目录,一个表名对应一个目录名,如果有分区表的话,分区值是子目录。

2 Hive的设计目标

  • 使Hadoop上的数据操作与传统SQL相结合,让熟悉SQL的开发人员能够轻松向Hadoop平台迁移;

  • Hive提供类似SQL的查询语言HQL, HQL在底层被转换为相应的MapReduce操作;

  • Hive在HDFS上构建数据仓库来存储结构化的数据,这些数据一般来源于HDFS上的原始数据,使用Hive可以对这些数据执行查询、分析等操作。

3 Hive的体系结构

输入图片说明

    Hive有三种service,分别是CLI、Hiveserver、HWI。
     - CLI是命令行接口,为默认服务,启动方式: $HIVE_HOME/bin/hive 或 $HIVE_HOME/bin/hive --service cli。每个CLI独享配置,即在一个CLI里修改配置不影响别的CLI。
     - HiverServer通过thrift对外提供服务,默认端口10000,启动方式为:$HIVE_HOME/bin/hive --service hiveserver。 多个JDBC可同时连到同一HiveServer上,所有会话共享一份配置。(注:从0.9.0起HiveServer配置已经从global降为session,即每个session的配置相互独立,见 [HIVE-2503])
     - HWI为web接口,可以通过浏览器访问hive,默认端口9999,启动方式为:$HIVE_HOME/bin/hive --service hwi。 多个浏览器可同时连到同一HWI上,所有会话共享一份配置。

     每个service互相独立,有各自的配置文件(配置metasotre/namenode/jobtracker等),如果metasotre的配置一样则物理上对应同一hive库。

     Driver用于解释、编译、优化、执行HQL,每个service的Driver相互独立。

     MetaStoreMetastore是Hive元数据的集中存放地,一般采用mysql或derbby。MetaStore位置通过参数javax.jdo.option.ConnectionURL来指定,可在会话中自由修改。相关的参数包括:

     javax.jdo.option.ConnectionDriverName   #数据库驱动    
     javax.jdo.option.ConnectionURL          #数据库ip端口库名等    
     javax.jdo.option.ConnectionUserName     #用户名   
     javax.jdo.option.ConnectionPassword     #密码     

4 Hive的工作原理

     下图描述了Hive 和Hadoop之间的工作流程: 输入图片说明

5 Hive的优势

  • 并行计算,可充分利用集群的CPU计算资源、存储资源;
  • 处理大规模数据集;
  • Hive支持标准SQL语法,免去了编写MR程序的过程,减少了开发成本;
  • Hive是为大数据批量处理而生的,解决了传统的关系型数据库在大数据处理上的瓶颈;

6 Hive的应用场景

6.1 适合场景

  • 数据挖掘
  • 数据分析、联机分析处理(OLAP)
  • SQL是商业智能报表的通用语言, 使得Hive有条件与这些BI产品进行集成

6.1 不适合场景

  • 复杂的机器学习算法
  • 复杂的科学计算
  • 交互式的实时查询

7 参考资料

  1. Hive体系架构
  2. Hive编程参考
共有 人打赏支持
粉丝 84
博文 40
码字总数 33112
×
林中漫步
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: