Presto是由Facebook开发的一个分布式SQL查询引擎, 它被设计为用来专门进行高速、实时的数据分析。它的产生是为了解决Hive的MapReduce模型太慢以及不能通过BI或Dashboards直接展现HDFS数据等问题。Presto是一个纯粹的计算引擎,它不存储数据,其通过Connector获取第三方Storage服务的数据。
本文主要介绍如何利用hdp工具搭建presto,并将hdfs替换成cos,运行presto。
利用ambari可视化工具进行安装,可参考如下文档,有详细的教程,本文不再赘述:
可参考文章:
https://blog.csdn.net/ZhouyuanLinli/article/details/77585182
主要操作步骤是下载ambari-presto-xxx.tar.gz,放在hdp的安装路径;
下载presto的rpm包,建立本地的repo,集成到ambari presto的安装文件里面,然后就可以在hdp管理页面直接安装presto了:
这里一定要注意,不要将coordinate和worker安装在同一个节点上面,否则会报错。
去https://github.com/tencentyun/hadoop-cos/tree/master/dep 下载编译好的最新版本的两个lib,我的hadoop版本是2.7.3,所以下载 cos_hadoop_api-5.2.6.jar,hadoop-cos-2.7.3.jar这两个lib需要复制到跑presto任务的所有机器上去,presto的lib和hdfs的目录都要放,后面会用到,具体路径如下:
/usr/hdp/current/hadoop-client/lib/cos_hadoop_api.jar
/usr/hdp/current/hadoop-client/lib/hadoop-cos.jar
/usr/hdp/current/hive-client/lib/hadoop-cos.jar
/usr/hdp/current/hive-client/lib/cos_hadoop_api.jar
/usr/share/java/mysql-connector-java.jar
/usr/lib/presto/lib/plugin/hive-hadoop2/cos_hadoop_api.jar
/usr/lib/presto/lib/plugin/hive-hadoop2/hadoop-cos.jar
可直接ln -sf建立软链接即可。
这里注意假如presto启动失败,可修改/etc/init.d/presto的启动脚本,可能跟你的系统不兼容。
启动日志在/var/log/presto/下面,可以查看。
直接在hdfs的custom core site分节配置自己cos上的秘钥、region等信息。
CREATE EXTERNAL TABLE `test`(
`name` string COMMENT 'from deserializer',
`parent` string COMMENT 'from deserializer'
)
ROW FORMAT SERDE
'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'ignore.malformed.json'='true')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'cosn://{bucket}-{appid}/mytestdir/'
TBLPROPERTIES (
'transient_lastDdlTime'='1540466904');
/usr/lib/presto/bin/presto-cli --server 127.0.0.1:8089 --catalog hive --schema default
select * from test limit 10;
假如有一些数据需要分析,presto+cos是一个不错的方案,可以尝试。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。