Taiwan - 台湾环岛

「台北-花莲-绿岛-垦丁-台南-台中-台北」

题图为台北车站。

环岛台湾,从成都搭乘飞机而来,一路上坐过台湾干净的台铁和高铁,特意品尝了具有几十年传统的台铁便当;也体验过相当于大陆地铁的台北捷运,办了一张很萌很台湾的悠游卡,假装当地人挤进行色匆匆的捷运人流。在台湾东部还乘坐了要等半个小时之久的公共巴士,等公交的时候“聆听”当地老伯讲政治……在路上,通过不同的搭乘方式,感受台湾的方方面面。


Hive Driver源码执行流程分析

引言

接着上一篇来说[执行入口的分析][1],CliDriver最终将用户指令command提交给了Driverrun方法(针对常用查询语句而言),在这里用户的command将会被编译,优化并生成MapReduce任务进行执行。所以Driver也是Hive的核心,他扮演了一个将用户查询和MapReduce Task转换并执行的角色,下面我们就看看Hive是如何一步一步操作的。


Hive 源码解析之 Hive 基本框架和执行入口

Hive简介

在介绍Hive的框架和执行流程之前,这里首先对Hive进行简要的介绍。

Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据抽取,转化,加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为Hive QL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。


JVM以及垃圾回收器的工作原理

Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。

JVM实现了Java语言最重要的特征:即平台无关性。这是因为:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。因此实现java平台无关性。它是 Java 程序能在多平台间进行无缝移植的可靠保证,同时也是 Java 程序的安全检验引擎(还进行安全检查)。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×