本文是《hadoop权威指南》关于hive的小例子,通过这个例子可以很好地看出来hive是个什么东西。

前提是已经配置好hive的远程连接版本的环境,我是用了MYSQL数据库保存元数据。

环境要求:

-配置好了Hadoop的HDFS文件系统,启动hdfs和yarn

-配置好了hive的远程连接模式

-配置好了MySQL用于metadata的储存

输入文件下载: https://github.com/tomwhite/hadoop-book/blob/master/input/ncdc/micro-tab/sample.txt

第一步,创建一个表格records,表格名字和数据源的字段,年份,温度和quality 。

Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties
hive> Create table records(year String,temperature INT,quality INT)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '\t'
> ;
OK

第二部,把保存在linux上的数据上传到刚才创建的表格中。

注意:数据是没有固定格式的,因为目前input是用分隔符“\t”分割的。所以上一步中使用了(FIELDS TERMINATED BY '\t')来

HIVE没有专门数据格式,用户只要创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据
hive> LOAD DATA LOCAL INPATH 'sample.txt'
> OVERWRITE INTO TABLE records;
Loading data to table default.records
Table default.records stats: [numFiles=1, numRows=0, totalSize=51, rawDataSize=0]
OK
Time taken: 6.03 seconds

执行HiveQL语句,从刚才数据中抽取每年的温度最高值

整个过程和MapReduce一致,一共耗费30秒。

hive> SELECT year,MAX(temperature)
> FROM records
> WHERE temperature !=999 AND quality IN (0,1,4,5,9)
> GROUP BY year;
Query ID = root_20171107090403_c61a6f9a-05d4-4d0f-a97b-d37fb83ef65d
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
Starting Job = job_1510015112691_0001, Tracking URL = http://server71:8088/proxy/application_1510015112691_0001/
Kill Command = /usr/local/hadoop/bin/hadoop job -kill job_1510015112691_0001
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2017-11-07 09:05:58,529 Stage-1 map = 0%, reduce = 0%
2017-11-07 09:06:59,061 Stage-1 map = 0%, reduce = 0%
2017-11-07 09:07:11,068 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 16.88 sec
2017-11-07 09:07:53,824 Stage-1 map = 100%, reduce = 67%, Cumulative CPU 20.75 sec
2017-11-07 09:08:03,489 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 28.83 sec
MapReduce Total cumulative CPU time: 28 seconds 830 msec
Ended Job = job_1510015112691_0001
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 28.83 sec HDFS Read: 8355 HDFS Write: 17 SUCCESS
Total MapReduce CPU Time Spent: 28 seconds 830 msec
OK
1949 111
1950 22
Time taken: 243.092 seconds, Fetched: 2 row(s)

我们可以看到整个过程和查询结果1949年和1950年的最高温度。

《hadoop权威指南》关于hive的第一个小例子的演示的更多相关文章

  1. 基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其可视化

    文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...

  2. Hadoop权威指南:通过FileSystem API读取数据

    Hadoop权威指南:通过FileSystem API读取数据 [TOC] 在Hadoop中,FileSystem是一个通用的文件系统API 获取FileSystem实例的几个静态方法 public ...

  3. Hadoop权威指南:HDFS-Hadoop存档

    Hadoop权威指南:HDFS-Hadoop存档 [TOC] 每个文件按块方式存储, 每个块的元数据存储在namenode的内存中 Hadoop存档文件或HAR文件是一个更高效的文件存档工具,它将文件 ...

  4. hadoop权威指南学习(一) - 天气预报MapReduce程序的开发和部署

    看过Tom White写的Hadoop权威指南(大象书)的朋友一定得从第一个天气预报的Map Reduce程序所吸引, 殊不知,Tom White大牛虽然在书中写了程序和讲解了原理,但是他以为你们都会 ...

  5. Hadoop权威指南学习笔记一

    Hadoop简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出.一起学习一起进步. 转载请注明:http://blog.csdn.net/ ...

  6. 《Hadoop权威指南》读书笔记1

    <Hadoop权威指南>读书笔记 Day1 第一章 1.MapReduce适合一次写入.多次读取数据的应用,关系型数据库则更适合持续更新的数据集. 2.MapReduce是一种线性的可伸缩 ...

  7. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  8. Hadoop权威指南(中文版,第2版)【分享】

    下载地址 Hadoop权威指南(中文版,第2版) http://download.csdn.net/download/u011000529/5726789 (友情提示:请点击右下的 “联通下载” 或者 ...

  9. Hadoop权威指南学习笔记二

    MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.n ...

随机推荐

  1. Array.asList:数组转list

    String s[]={"aa","bb","cc"}; List<String> sList=Arrays.asList(s) ...

  2. Oracle 9i Unix Manager

    在Unix上被迫终止ORACLE进程时,必须做以下事情: (1) 杀掉所有Oracle进程.    ps -ef|grep $ORACLE_SID|grep -v grep|awk '{print $ ...

  3. uart测试代码

    #include <stdio.h> /*标准输入输出定义*/ #include <stdlib.h> /*标准函数库定义*/ #include <unistd.h> ...

  4. 【P2774】方格取数问题(贪心+最大流,洛谷)

    首先,我们要读懂这道题,否则你会和我一开始产生一样的疑问,把所有的数都取走剩下一个最小的不就可以了么???然后我们发现样例完全不是这么回事.题目中所说的使相邻的两个数没有公共边,是指你去走的数,也就是 ...

  5. 生成 (web): 找不到目标 .NET Framework 版本的引用程序集;请确保已安装这些程序集或选择有效的目标版本。

    刚刚还好好的,不知道修改什么了,突然出现如下错误: Default.aspx(36): 生成 (web): 找不到目标 .NET Framework 版本的引用程序集:请确保已安装这些程序集或选择有效 ...

  6. linux基础(5)-用户及权限

    用户与组 用户:使用linux时,需要以用户的身份登陆 组    :用来方便组织管理用户   用户种类 -root用户(ID为0的用户为root用户) -系统用户(1-499) -普通用户(500以上 ...

  7. QT 使用QTcpServer QTcpSocket 建立TCP服务器端 和 客户端

    1.  如图客户端连接server后,server发送"hello tcp" 给客户端 2. 实例代码 -----------------------------------  s ...

  8. 将datagridview数据保为xml或txt文件

    using System.IOpublic void SaveFile()        {            //实例化一个保存文件对话框            SaveFileDialog s ...

  9. js 实现自动调出键盘

    在app中,在页面加载完成之后,给输入框添加一个focus,不能自动调出软键盘,可以用以下方式实现: //触发键盘 $("#content").on("touchstar ...

  10. asp.net中异步调用webservice

    WebService方法是不需要作任何修改的,只是在调用时采用异步的方式,这样在循环中,速度会显得快一点. 原来的方式: HotelMagWeb.com.china_sms.www.MainServi ...