目前EMR Presto 已经完全支持 OSS 访问,如有其他 Presto 集群访问 OSS 需求,请安装 JindoFS SDK,可以直接访问 oss (oss://bucket/) :
https://github.com/aliyun/aliyun-emapreduce-sdk/blob/master-2.x/docs/jindofs_sdk_how_to.md
重磅:阿里云 JindoFS SDK 全面开放使用,OSS 文件各项操作性能得到大幅提升
https://developer.aliyun.com/article/767222
目前产品组件presto还不能直接访问oss数据,如果有需求,可以参考本文用引导操作打通presto访问oss数据。
~~# 准备脚本
下载 脚本,放在您的oss合适的目录里。~~
创建集群
参照 帮助文档 ,创建集群时点击添加引导操作,分别选择刚才上传的ossforpresto.sh脚本,创建以个引导操作步骤。集群创建好后,通过集群详情页的引导/软件配置:无异常来确定引导操作执行成功
验证
hive建表
下文举了一二创建数据在oss上的uservisits表的例子,请将表名,字段,oss信息替换为您oss数据对应的信息
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://<accessid>:<accesskey>@<bucketname>.oss-cn-hangzhou-internal.aliyuncs.com/<datapath>';
presto查询
退出hive cli,进入presto cli./presto --server localhost:9090 --catalog hive --schema default
执行show tables
能看见刚刚创建的表,执行select counT() from uservisits
能查到oss数据的条目。如果未显示,可能是还未同步,稍等一会