- 浏览: 472872 次
- 性别:
- 来自: 南阳
文章分类
最新评论
-
yuanhongb:
这么说来,感觉CGI和现在的JSP或ASP技术有点像啊
cgi -
draem0507:
放假了还这么勤啊
JXL操作Excel -
chenjun1634:
学习中!!
PHP/Java Bridge -
Jelen_123:
好文章,给了我好大帮助!多谢!
hadoop安装配置 ubuntu9.10 hadoop0.20.2 -
lancezhcj:
一直用job
Oracle存储过程定时执行2种方法(转)
1. 安装hive
2. hive实战
3. hive存储模型
4. 深入hql查询语言
5. 参考资料及代码下载
<1>. 安装hive
下载hive,下载地址http://mirror.bjtu.edu.cn/apache//hive/,解压该文件:
xuqiang@ubuntu:~/hadoop/src/hive$ tar zxvf hive-0.7.0-bin.tar.gz
设置环境变量:
xuqiang@ubuntu:~/hadoop/src/hive$ cd hive-0.7.0-bin/
xuqiang@ubuntu:~/hadoop/src/hive/hive-0.7.0-bin$ export HIVE_HOME=`pwd`
添加HIVE_HOME到环境变量PATH中:
xuqiang@ubuntu:~/hadoop/src/hive$ export PATH=$HIVE_HOME/bin:$PATH;
在运行hive之前,请确保变量HADOOP_HOME已经设置,如果没有设置,可以使用export命令设置该变量。
然后需要在hdfs上创建如下的目录来保存hive相关的数据。
xuqiang@ubuntu:~/hadoop/src/hive$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
xuqiang@ubuntu:~/hadoop/src/hive$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
xuqiang@ubuntu:~/hadoop/src/hive$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
此时运行hive的环境已经准备好了,在命令行中键入如下命令开始运行hive:
<2>. hive实战
这里我们将完成这样的一个过程,首先创建一个表,从本机上加载数据到该表中,查询该表,得到我们感兴趣的数据。
首先创建表(具体语法将在下面给出):
> row format delimited
> fields terminated by ','
> stored as textfile;
创建完表之后,我们可以使用show tables命令查看新建的表:
OK
cite
Time taken: 1.257 seconds
查看新建表的结构:
OK
citing int
cited int
Time taken: 0.625 seconds
我们加载本地数据到该表中去:
> overwrite into table cite;
Copying data from file:/home/xuqiang/hadoop/data/cite75_99.txt
Copying file: file:/home/xuqiang/hadoop/data/cite75_99.txt
Loading data to table default.cite
Deleted hdfs://localhost:9000/user/hive/warehouse/cite
OK
Time taken: 89.766 seconds
查询前10行数据:
OK
NULL NULL
3858241 956203
3858241 1324234
3858241 3398406
3858241 3557384
3858241 3634889
3858242 1515701
3858242 3319261
3858242 3668705
3858242 3707004
Time taken: 0.778 seconds
查询该文件中存在多少条数据,这时hive将执行一个map-reduce的过程来计算该值:
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 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 mapred.reduce.tasks=<number>
Starting Job = job_201106150005_0004, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201106150005_0004
Kill Command = /home/xuqiang/hadoop/src/hadoop-0.20.2/bin/../bin/hadoop job -Dmapred.job.tracker=localhost:9001 -kill job_201106150005_0004
2011-06-15 05:33:20,724 Stage-1 map = 0%, reduce = 0%
2011-06-15 05:33:46,325 Stage-1 map = 2%, reduce = 0%
2011-06-15 05:33:49,827 Stage-1 map = 3%, reduce = 0%
2011-06-15 05:33:53,208 Stage-1 map = 4%, reduce = 0%
2011-06-15 05:33:55,259 Stage-1 map = 7%, reduce = 0%
2011-06-15 05:34:40,450 Stage-1 map = 9%, reduce = 0%
2011-06-15 05:34:52,706 Stage-1 map = 48%, reduce = 0%
2011-06-15 05:34:57,961 Stage-1 map = 50%, reduce = 0%
2011-06-15 05:35:28,420 Stage-1 map = 50%, reduce = 17%
2011-06-15 05:35:36,653 Stage-1 map = 58%, reduce = 17%
2011-06-15 05:35:40,844 Stage-1 map = 61%, reduce = 17%
2011-06-15 05:35:49,131 Stage-1 map = 62%, reduce = 17%
2011-06-15 05:35:56,428 Stage-1 map = 67%, reduce = 17%
2011-06-15 05:36:34,380 Stage-1 map = 90%, reduce = 17%
2011-06-15 05:36:52,601 Stage-1 map = 100%, reduce = 17%
2011-06-15 05:37:10,299 Stage-1 map = 100%, reduce = 67%
2011-06-15 05:37:16,471 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201106150005_0004
OK
16522439
Time taken: 274.531 seconds
好的,最后我们删除刚刚新建的表:
OK
Time taken: 5.724 seconds
<3>. 存储模型
通常情况下hive将数据存储到hadoop上/user/hive/warehouse目录下,关系型数据库使用索引index去加快查询速度,而hive使用的是以恶搞所谓的partition columns的概念,例如比如说存在某一行叫做state,可以根据state中存储的数据值,将state分为50个partitions。如果存在date列的话,那么通常按照时间进行partition,hive在对分区的列上进行查询的速度会比较快,原因是hadoop在数据存储上将不同的分区存储在了不同的目录文件下。例如对于上面的列state和date,可能的存储模型如下:
当然每个分区内的数据文件可能还是比较大,幸好在hive中存在一个所谓的buckets的概念,buckets根据hash值将数据分割成更小的数据文件,还是上面的例子,如果使用buckets的话,可能的存储模型如下:
<4>. 深入hql
我们将通过实际hql语句来分析hql的语法。
该条语句创建表page_view,表中有5列,同时在见表语句中指出了各个列的数据类型,在hive中内建支持的数据类型如下:
这些类型的层次结构如下:
层次结构中允许从子类型隐式的转换成父类型。
接着回到上面的见表语句,在列ip中添加了注释:
Ip STRING COMMENT (“Ip address of user”)
然后建表语句中添加了表的分区:
Partitioned by (dt string, country string)
注意的是这里的两列并不是表中的列,实际上这里的分区的两列dt和country仅仅是为了分区,实际上可能并不存储这些数据。
Additionally the partitioned by clause defines the partitioning columns which are different from the data columns and are actually not stored with the data. When specified in this way
然后建表语句指定buckets大小,这里是32。
最后指定数据源的文件格式。
好的现在我们给出更多的表操作的例子,由于sql极其相似,这里仅仅给出了语法,并没有给出解释。
描述表page_view结构。
改变表的名字
新增加一行
删除分区
删除表
显示所有的表
从文件page_view.txt文件将数据加载到表page_view中,注意的是这里的路径可以使用绝对路径或者相对路径。这里使用了local,表明数据文件的来源是本地,而不是在hdfs上。
Hql上的查询语句和sql很类似,这里没有一一给出,下面仅仅将给出hql中运算符和内建聚类函数。
运算符:
内建聚类函数:
<5>. 参考资料及代码下载
作者:许强1. 本博客中的文章均是个人在学习和项目开发中总结。其中难免存在不足之处 ,欢迎留言指正。 2. 本文版权归作者和博客园共有,转载时,请保留本文链接。
发表评论
-
mysql 定时任务
2015-11-03 09:57 732定时任务 查看event是否开启: show variabl ... -
tomcat服务器大数量数据提交Post too large解决办法
2015-10-29 11:05 702tomcat默认设置能接收HTTP POST请求的大小最大 ... -
Tomcat启动内存设置
2015-10-20 15:40 635Tomcat的启动分为startupo.bat启动和注册为w ... -
Java串口包Javax.comm的安装
2015-10-12 16:32 656安装个java的串口包安装了半天,一直找不到串口,现在终于搞 ... -
在 Java 应用程序中访问 USB 设备
2015-10-10 17:49 913介绍 USB、jUSB 和 JSR- ... -
mysql定时器
2015-08-04 14:01 5645.1以后可以使用 ALTER EVENT `tes ... -
oracle安装成功后,更改字符集
2015-07-23 11:53 598看了网上的文章,乱码有以下几种可能 1. 操作系统的字符集 ... -
利用html5调用本地摄像头拍照上传图片
2015-05-18 09:36 2571测试只有PC上可以,手机上不行 <!DOCTYPE ... -
必须Mark!最佳HTML5应用开发工具推荐
2015-05-15 22:50 926摘要:HTML5自诞生以来,作为新一代的Web标准,越来 ... -
Mobl试用二
2015-05-13 14:28 601最近有空又看了一下Mobl的一些说语法,备忘一下: 1 ... -
Nginx配置文件详细说明
2015-05-08 19:58 574在此记录下Nginx服务器nginx.conf的配置文件说明 ... -
axis调用cxf
2015-04-23 13:51 5161、写address时不用加?wsdl Service s ... -
mysql 获取第一个汉字首字母
2015-03-18 17:48 590select dmlb, dmz, dmsm1, CHAR ... -
failed to install Tomcat6 service解决办法
2015-02-12 09:20 494最近我重装了一下tomcat 6.0,可不知为什么,总是安装 ... -
tomcat 分配java内存
2015-02-11 10:37 556//首先检查程序有没有限入死循环 这个问题主要还是由这个问 ... -
[Android算法] Android蓝牙开发浅谈
2014-12-15 15:27 626对于一般的软件开发人 ... -
Android 内存溢出解决方案(OOM) 整理总结
2014-11-21 10:12 706原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ... -
《HTML5从入门到精通》中文学习教程 PDF
2014-11-19 21:26 1088HTML5 草案的前身名为Web Applications ... -
mysql字符串函数(转载)
2014-11-13 12:05 533对于针对字符串位置的操作,第一个位置被标记为1。 AS ... -
MySQL中tinytext、text、mediumtext和longtext详解
2014-11-07 11:37 807、数字类型 类型 范围 说明 ...
相关推荐
-IDEA搭建及实战.pdf4.Spark运行架构.pdf5.Hive(上)--Hive介绍及部署.pdf5.Hive(下)--Hive实战.pdf6.SparkSQL(上)--SparkSQL简介.pdf6.SparkSQL(下)--Spark实战应用.pdf6.SparkSQL(中)--深入了解运行计划...
包含video user数据
HIVE实战测试数据HIVE实战测试数据HIVE实战测试数据HIVE实战测试数据
Hive实战之视频网站 测试数据 https://chbxw.blog.csdn.net/article/details/107738550
Hive实战项目数据文件和Zeppelin源文件
Hive实战使用指南VESION 1.0创建时间:2016年09月目录 1 绪论 7 1.1 编写背景 7 1.2 文档说明 7 2 Hive简介 7
大数据技术之-08-Hive学习-05-Hive实战之谷粒影音+常见错误及解决方案.docx
作为企业Hadoop应用的核心产品,Hive承载着FaceBook、淘宝等大佬 95%以上的离线统计,很多企业里的离线统计甚至全由Hive...本系列课结合企业实战和场景从作业架构层面、Hql(Hive sql)语法层面、Hive参数层面依次讲述。
用于进行Hive的模拟数据分析
hive操作案例 从实战出发成为高手吧
hive的安装与配置 一.Hive的安装和配置 1.Hive并不是hadoop自带的组件,因此我们需要去下载hive,此次课我们使用hive 1.2.1版本,下载地址为: 2.下载完成之后,安装包默认保存在下载文件夹中,解压安装包apache-...
包含了idea代码关于使用mapreduce清洗数据,以及上传数据到HDFS。 包含了hive创表以及sqoop导出数据到MySQL。
第1章:Hive基本架构及环境部署 1.MapReduce分析与SQL分析对比 2.Hive的介绍及其发展 3.Hive的安装部署及启动 4.Hive的基本架构讲解 5.安装MySQL作为元数据库存储 6.配置Hive使用MySQL作为元数据库存储 7.Hive中基本...
完成Hive工具的安装和配置 Hive工具能够正常启动运行 Hive控制台命令能够正常使用 够正常操作数据库,表,数据
基于Hive的项目实战视频数据集 videoId string, uploader string, age int, category array, length int, views int, rate float, ratings int, comments int, relatedId array<string>
HIVE优化实战分享 HIVE优化实战分享 HIVE优化实战分享
数据包括运行代码和数据类型,启动hive导入表和数据就可以运行结果
hive入门及优化
Hive入门与实战 PDF