热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hadoophive_HadoopHive

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Hadoop-Hive相关的知识,希望对你有一定的参考价值。在Hadoop的存

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Hadoop-Hive相关的知识,希望对你有一定的参考价值。


Hadoop的存储处理方面提供了两种不同的机制,一种是之前介绍过的Hbase,另外一种就是Hive,有关于Hbase,它是一种nosql数据库的一种,是一种数据库,基于分布式的列式存储,适合海量数据的操作,,底层依赖HDFS,与rdbms的区别和其他的nosql基本类似,例如不支持sql语句对于数据进行操作,具体的关于Hbase的细节可以去参考我的上一篇博客,今天我们会通过hiveHbase的区别对于hive进行相应的讲解。

Hive 在其官方网站上的定义说hive是一个数据仓库(数据仓库中存储数量级大且数据结构复杂的数据,是多个其他数据库的集合)的软件,通过sql的方式帮助用户读写管理分布式存储中的数据,展开来说:Apache Hive是一个建立在Hadoop上的数据仓库基础架构,它可以使用类似于sql语句的Hql对于存储在HDFS上的数据进行相应的操作,可以转化为MapReduce作业,但是,虽然相比于Hbasehive提供了大家所熟悉的sql的功能,但是,对于一般sql的交互式查询还是没有被支持,Hive实际上就是只在Hadoop上运行批处理,而HBase操作的是数据库而不是在mapreduce上实时运行

Hive可以做什么:

1、ETL(把多个关系型数据库存储到数据仓库中的数据迁移过程就是ETLflume/sqoop),包括数据的抽取,转化,落地,加载等操作)、reporting、数据分析

2、可以把多种数据进行格式化或者结构化管理的工具

3、可以更加简洁的访问HDFS或者Hbase

4、可以直接通过sql直接使用访问Mapreduce等框架

Hive的组件

1、服务端组件:

Driver组件:包括编译器、优化器、执行器,将我们写的HQL进行解析,便宜又话,生成执行计划,然后调用底层的计算框架

Metastore组件:元数据服务组件,负责存储hive的元数据,存储在关系型数据库中

Thrift服务:用来进行可扩展且跨语言的开发服务

Hive集成服务:能让不同的开发语言调用hive接口

 

2、客户端组件:

CLI:命令行接口,可以使用命令操作查看

Thrift客户端:hive的许多客户端接口是建立在thrift客户端的基础之上的,包括JDBC

WEB UI :可以在浏览器中访问hive提供的服务接口


优点及使用场景

操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)

避免了去写MapReduce,减少开发人员的学习成本,可以直接写sql进行操作;

统一的元数据管理,可与impala/spark等共享元数据;

易扩展(HDFS+MapReduce:可以扩展集群规模;支持自定义函数)

数据的离线处理;比如:日志分析,海量结构化数据离线分析

Hive的执行延迟比较高,因此hive常用于数据分析的,对实时性要求 不高的场合;

Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执 行延迟比较高。

而对于Hive的执行流程,我借用某大神的一句神总结:将用户提交的SQL语句转换成Hadoop上的MR任务执行,并向用户返回结果。(Sql传入之后会提交到编译器中,编译器分析sql,然后去元数据中查数据的位置以及查看sql要进行什么操作,然后转化成mapreduce程序(执行计划),吧执行计划交给执行器,然后执行器开始执行并将结果进行返回到客户端,而优化器的作用就是对整个计算过程进行优化,比如在数据量特别小的时候就直接在内存中申请处理)技术分享图片

 

如需更多的交流可以添加qq群859121793
或添加微信群



推荐阅读
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • Harmony 与 Game Space 达成合作,在 Shard1 上扩展 Web3 游戏
    旧金山20 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • Zookeeper为分布式环境提供灵活的协调基础架构。ZooKeeper框架支持许多当今最好的工业应用程序。我们将在本章中讨论ZooKeeper的一些最显着的应用。雅虎ZooKee ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有