上云无忧 > 文档中心 > 百度智能云MapReduce开源组件介绍 - Hive
百度智能云MapReduce开源组件介绍 - Hive

文档简介:
Hive简介: 本文以分析Web日志统计用户访问次数最多的前5个小时段为例,介绍如何在百度智能云平台使用Hive。MapReduce提供了两种使用Hive的方式: 通过Hue使用Hive,请参考Hue。 控制台中提交Hive作业。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Hive简介

本文以分析Web日志统计用户访问次数最多的前5个小时段为例,介绍如何在百度智能云平台使用Hive。MapReduce提供了两种使用Hive的方式:

  • 通过Hue使用Hive,请参考Hue。
  • 控制台中提交Hive作业。

Hive是基于Hadoop的数据仓库工具,提供海量数据的读取、写入、管理和分析,具有易扩展的存储能力和计算能力。不必开发专门的MapReduce应用便可通过类SQL语句快速实现简单的MapReduce统计,同时也允许熟悉MapReduce的开发者开发自定义的Mapper和Reducer来处理复杂的分析工作。

Hive的数据单元:

  • Databases:数据库。
  • Tables:表。
  • Partitions:分区。只支持固定分区,将同一组数据存放至一个固定的分区中。
  • Buckets(or Clusters):分桶。同一个分区内的数据还可以细分,将相同的KEY再划分至一个桶中。

Hive的数据类型:

  • 原始数据类型 - TINYINT(微整型),只占用1个字节,只能存储0-255的整数。 - SMALLINT(小整型),占用2个字节,存储范围–32768到32767。 - INT(整型),占用4个字节,存储范围-2147483648到2147483647。 - BIGINT(长整型),占用8个字节,存储范围-2^63到2^63-1。 - BOOLEAN(布尔型),TRUE/FALSE。 - FLOAT(浮点型),单精度浮点数。 - DOUBLE(浮点型),双精度浮点数。 - STRING(字符串型),不设定长度。
  • 复合数据类型 - Structs:一组由任意数据类型组成的结构。 - Maps:K-V对。 - Arrays:数组。

控制台中提交Hive作业

准备Hive脚本

BMR的hive作业脚本将建表、查询语句整合为hive脚本文件,您可直接使用样例脚本,也可根据如下文件内容创建自己的hive脚本:

DROP TABLE IF EXISTS access_logs; CREATE EXTERNAL TABLE access_logs ( remote_addr STRING
 comment 'client IP', time_local STRING comment 'access time', request STRING comment 
'request URL', status STRING comment 'HTTP status', body_bytes_sent STRING comment
 'size of response body', http_referer STRING comment 'referer', http_cookie STRING 
comment 'cookies', remote_user STRING comment 'client name', http_user_agent STRING 
comment 'client browser info', request_time STRING comment 'consumed time of handling 
request', host STRING comment 'server host', msec STRING comment 'consumed time of
 writing logs' ) COMMENT 'web access logs' ROW FORMAT SERDE 'org.apache.hadoop.hive.
serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "([0-9\\.]+) - \\[([^\\]]+)\
\] \"([^\"]*)\" ([\\d]+) ([\\d]*) \"([^\"]*)\" \"([^\"]*)\" ([\\S]+) \"([^\"]*)\"
 ([0-9\\.]+) ([\\S]+) ([0-9\\.]+)" ) STORED AS TEXTFILE
LOCATION "${INPUT}"; INSERT OVERWRITE DIRECTORY '${OUTPUT}' SELECT hour(from_unixtime
(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z'))) as hour, count(1) as pv FROM 
access_logs GROUP BY hour(from_unixtime(unix_timestamp(time_local,
 'dd/MMMM/yyyy:HH:mm:ss Z'))) ORDER BY pv DESC limit 5;

脚本简介

  • CREATE EXTERNAL TABLE语句从BOS上的文件定义了元数据,SELECT语句根据时间纬度统计了PV。
  • 建表过程指定了数据存储路径为${INPUT},该路径是您在BMR集群中提交Hive作业时指定的BOS输入地址(详见运行Hive作业)。
  • 可从BMR作业列表的作业日志stdout查看到查询结果。也可至提交Hive作业时指定BOS输出路径中查看结果(详见运行Hive作业)。

创建BMR集群

  1. 准备数据,请参考数据准备。
  2. 准备百度智能云环境。
  3. 登录控制台,选择“产品服务->MapReduce BMR”,点击“创建集群”,进入集群创建页,并做如下配置:

    • 设置集群名称
    • 设置管理员密码
    • 关闭日志开关
    • 选择镜像版本“BMR 0.2.0(hadoop 2.6)”
    • 选择内置模板“hadoop”。
  4. 请保持集群的其他默认配置不变,点击“完成”可在集群列表页可查看已创建的集群,当集群状态由“初始化中”变为“空闲中”时,集群创建成功。

运行Hive作业

  1. 在“产品服务>MapReduce>MapReduce-作业列表”页中,点击“创建作业”,进入创建作业页。
  2. 配置Hive作业参数,具体如下:

    • 作业类型:选择“Hive作业”
    • 作业名称:输入作业名称,长度不可超过255个字符。
    • bos脚本地址:输入bos://bmr-public-data/apps/hive/AccessLogAnalyzer_bmr_0.2.0.hql。
    • bos输入地址:输入bos://bmr-public-data/logs/。
    • bos输出地址:输出路径必须具有写权限且该路径中所指定的目录不能在bos上存在,例如,输出路径为bos://test/sqooptest中的sqooptest目录在bos上必须不存在。输入bos://{your-bucket}/output。
    • 失败后操作:继续。
    • 应用程序参数:无。
  3. 在“集群适配”区,选择适配的集群。
  4. 点击“完成”,则作业创建完成。运行中的作业状态会由“等待中”更新为“运行中”,当作业运行完毕后状态会更新为“已完成”。

查看结果

可以从bos://{your-bucket}/output/000000这个输出文件查看到查询结果。因目前BMR中提供的社区hive版本还不支持将结果导出到bos或hdfs文件时自定义列字段间隔符,输出文件中各个列字段间隔符仍为hive默认的^A。如果使用系统提供的输入数据和程序,可以打开输出结果看到如下内容:

21    149290
22    139479
15    131247
20    98391
8     97590

相似文档
  • HBase简介: 本文以分析Web日志统计每天的PV和UV为例,介绍如何在百度智能云平台使用HBase。 HBase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,能够利用HDFS的分布式处理模式和Hadoop的MapReduce程序模型。HBase融合key/value存储模式带来实时查询的能力,以及通过MapReduce进行离线处理或者批处理的能力。
  • Sqoop简介: 本样例场景是:通过Sqoop将RDS上的数据导入Hive,Hive中的数据表的location为BOS路径,Hive数据表的partition为dt(string),根据dt指定日期,区分每一天的导入数据。
  • Pig简介: 本文以分析Web日志统计每天的PV和UV为例,介绍如何在百度智能云平台使用Pig。 Pig是基于Hadoop的大规模数据分析平台,把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
  • Hue简介: 本文以网站日志分析来介绍可Web访问的Hue服务。开发者可以在Web界面中通过SQL语句就能分析海量日志,大大降低了使用门槛。 Hue为Hadoop数据分析提供了图形界面系统,仅使用浏览器便能够在Hadoop平台上导入数据、处理数据以及分析数据。
  • Ranger简介: Apache Ranger 提供集中式的权限管理框架,可以对Hadoop生态中的HDFS/Hive/YARN 等组件提供细粒度的权限访问控制,并且提供了Web UI页面方便管理员进行操作。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部