113
阿里云
Hive 开发手册__Hadoop_开发人员指南_E-MapReduce-阿里云
在 Hive 中使用 OSS
要在 Hive 中读写 OSS,需要在使用 OSS 的 URI 时加上 AccessKeyId、AccessKeySecret 以及 endpoint。如下示例介绍了如何创建一个 external 的表:
CREATE EXTERNAL TABLE eusers (
userid INT)
LOCATION 'oss://emr/users';
为了保证能正确访问 OSS,这个时候需要修改这个 OSS URI 为:
CREATE EXTERNAL TABLE eusers (
userid INT)
LOCATION 'oss://${AccessKeyId}:${AccessKeySecret}@${bucket}.${endpoint}/users';
参数说明:
${accessKeyId}:您账号的 accessKeyId。
${accessKeySecret}:该 accessKeyId 对应的密钥。
${endpoint}:访问 OSS 使用的网络,由您集群所在的 region 决定,对应的 OSS 也需要是在集群对应的 region。
具体的值参考 OSS Endpoint
使用Tez作为计算引擎
从E-MapReduce产品版本2.1.0+开始,引入了Tez,Tez是一个用来优化处理复杂DAG调度任务的计算框架。在很多场景下可以有效的提高Hive作业的运行速度。
用户在作业中,可以通过设置Tez作为执行引擎来优化作业,如下:
set hive.execution.engine=tez
示例 1
请参见如下步骤:
编写如下脚本,保存为 hiveSample1.sql,并上传到 OSS 上。
USE DEFAULT;
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
set hive.stats.autogather=false;
DROP TABLE emrusers;
CREATE EXTERNAL TABLE emrusers (
userid INT,
movieid INT,
rating INT,
unixtime STRING )
ROW FORMAT DELIMITED
FIELDS TERMINATED BY 't'
STORED AS TEXTFILE
LOCATION 'oss://${AccessKeyId}:${AccessKeySecret}@${bucket}.${endpoint}/yourpath';
SELECT COUNT(*) FROM emrusers;
SELECT * from emrusers limit 100;
SELECT movieid,count(userid) as usercount from emrusers group by movieid order by usercount desc limit 50;
测试用数据资源。您可通过下面的地址下载 Hive 作业需要的资源,然后将其放到您 OSS 对应的目录下。
资源下载:公共测试数据
创建作业。在 E-MapReduce 中新建一个作业,使用类似如下的参数配置:
-f ossref://${bucket}/yourpath/hiveSample1.sql
这里的 ${bucket} 是您的一个 OSS bucket,yourPath 是这个 bucket 上的一个路径,需要您填写实际保存 Hive 脚本的位置。
创建执行计划并运行。创建一个执行计划,您可以关联一个已有的集群,也可以自动按需创建一个,然后关联上这个作业。请将作业保存为“手动运行”,回到界面上就可以点击“立即运行”来运行作业了。
示例 2
以 HiBench 中的 scan 为例,若输入输出来自 OSS,则需进行如下过程运行 Hive 作业,代码修改源于 AccessKeyId、AccessKeySecret 以及存储路径的设置。请注意 OSS 路径的设置形式为 oss://${accesskeyId}:${accessKeySecret}@${bucket}.${endpoint}/object/path
。
请参见如下操作步骤:
编写如下脚本。
USE DEFAULT;
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
set mapreduce.job.maps=12;
set mapreduce.job.reduces=6;
set hive.stats.autogather=false;
DROP TABLE uservisits;
CREATE EXTERNAL TABLE uservisits (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION 'oss://${AccessKeyId}:${AccessKeySecret}@${bucket}.${endpoint}/sample-data/hive/Scan/Input/uservisits';
准备测试数据。您可通过下面的地址下载作业需要的资源,然后将其放到您 OSS 对应的目录下。
资源下载:uservisits
创建作业。将步骤 1 中编写的脚本存储到 OSS 中,假设存储路径为
oss://emr/jars/scan.hive
,在 E-MapReduce 中创建如下作业:创建执行计划并运行。创建一个执行计划,您可以关联一个已有的集群,也可以自动按需创建一个,然后关联上这个作业。请将作为保存为“手动运行”,回到界面上就可以点击“立即运行”来运行作业了。
最后更新:2016-11-23 16:03:59
上一篇:
MapReduce 开发手册__Hadoop_开发人员指南_E-MapReduce-阿里云
下一篇:
Pig 开发手册__Hadoop_开发人员指南_E-MapReduce-阿里云
如何开通大数据开发套件__快速开始_大数据开发套件-阿里云
绑定输入媒体Bucket__媒体Bucket接口_API使用手册_视频点播-阿里云
扩容系统盘__扩容磁盘概览_磁盘_用户指南_云服务器 ECS-阿里云
ActionTrail__操作事件(Event)样例_用户指南_操作审计-阿里云
浏览作业__作业管理_Console参考手册_数据集成-阿里云
服务流程__产品简介_安全管家服务-阿里云
使用云服务监控__快速入门_云监控-阿里云
自定义标签-标签加工及规范__进阶功能_移动定向营销_规则引擎-阿里云
删除角色__账号管理类 API_Open API 参考_企业级分布式应用服务 EDAS-阿里云
OceanBase SQL快速概览__SQL语法参考_云数据库 OceanBase-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云