zoukankan      html  css  js  c++  java
  • hive的初步认识与hive的本质

    Hive是什么?就从这儿开始学习。。。。

    Hive是建立在Hadoop hdfs上的数据仓库基础架构。

    Hive可以用来数据抽取转换加载(ETL)。

    Hive定义了简单的类SQL查询语句,称为HQL。

    Hive是SQL解析引擎,它将SQL语句转移成M/R Job,然后在Hadoop上执行。

    Hive的表其实就是HDFS的目录,Hive的数据对应相应目录下的文件。

     Hive使用场景非实时的海量数据分析/挖掘/建模

    Hive本质是将SQL转换为MapReduce程序

    那我就说哈本质过程,掌握本质就能掌握其核心思想。

    当我们在控制台输入一个HQL(类似sql),接下来hive处理转换成mapreduce,然后提交到hadoop运行计算,最后将结果返回到控制台。

    上面这个过程你就感觉自己在操作关系数据库一样,根本不需要底层是怎么实现的。就是这么简单自信。

    真正想理解hive必须要理解mapreduce。

    因为他的本质是跑的mapreduce程序,所以他将不适合实时任务处理。这就是和impala本质区别。

    虽然impala和hive都是建立在hadoop(hdfs)之上的。但是:impala没有使用 MapReduce进行并行计算,而hive依赖MapRduce.

    虽然MapReduce是非常好的并行计算框架,但它更多的面向批处理模式,而不是面向交互式的SQL执行。与 MapReduce相比:Impala把整个查询分成一执行计划树,而不是一连串的MapReduce任务,在分发执行计划后,Impala使用拉式获取 数据的方式获取结果,把结果数据组成按执行树流式传递汇集,减少的了把中间结果写入磁盘的步骤,再从磁盘读取数据的开销。Impala使用服务的方式避免每次执行查询都需要启动的开销,即相比Hive没了MapReduce启动时间.

    说的有点多了。。。想起一点就记录一些。这样也不错。

  • 相关阅读:
    Java泛型类和泛型方法
    Java泛型解析
    Reflection and array
    再叙Java反射
    Java Reflection(getXXX和getDeclaredXXX)
    Java反射(Reflection)
    MySQL Block Nested Loop and Batched Key Access Joins(块嵌套循环和批量Key访问连接)
    jQuery学习之jQuery Ajax用法详解
    request和request.form和request.querystring的区别
    浏览器中event.srcElement和event.target的兼容性问题
  • 原文地址:https://www.cnblogs.com/xubiao/p/5344956.html
Copyright © 2011-2022 走看看