Alluxio计算框架整合系列 (二) -- Alluxio & Presto

来源:互联网 发布:医学文献王 for mac 编辑:程序博客网 时间:2024/06/05 18:50
我们在上篇文章中,已经演示了如何安装Alluxio,并将HDFS作为Alluxio的底层文件系统; 以及 Alluxio & Apache Hive的整合过程。
这里我们将通过一系列的文章,来说明如何将Alluxio和常见的一些结算框架实现集成,用以提交查询。

本篇,将说明如何实现 Alluxio和来自FaceBook的Presto集成(Presto是完全基于内存的计算框架;Alluxio是以内存为中心的分布式虚拟存储方案,两者结合究竟能带来多少性能的提升和系统架构上的优势,有待后续更多的研究和验证)。


其他更多关于Alluxio的使用和交流,请加QQ群讨论:


Alluxio-China 452894882



一、准备工作
1. 已经安装好Hadoop基础环境和Presto集群环境(Presto集群的搭建过程,请自行完成,这里暂不做说明)

2. Alluxio系统已安装Java1.7以上版本的JDK

3. Presto集群已经安装Java1.8_u60以上版本JDK

4. 通过Presto能正常提交查询和返回结果


二、配置Presto集群

1. 修改presto节点安装目录下面的hadoop、hive相关配置文件hive-site.xml,在原配置内容之上,增加如下配置信息

<property><name>fs.defaultFS</name><value>alluxio://<ALLUXIO_MASTER_HOST_NAME>:19998</value></property><property><name>alluxio.user.file.writetype.default</name><value>CACHE_THROUGH</value></property>


2.  修改presto节点安装目录下面的hadoop、hive相关配置文件core-site.xml,在原配置内容之上,增加如下配置信息

<property><name>fs.alluxio.impl</name><value>alluxio.hadoop.FileSystem</value></property><property><name>fs.AbstractFileSystem.alluxio.impl</name><value>alluxio.hadoop.AlluxioFileSystem</value></property>


3. 分发Alluxio客户端jar包/<PATH_TO_ALLUXIO>/core/client/target/alluxio-core-client-1.4.0-jar-with-dependencies.jar到所有Presto节点的$PRESTO_HOME/plugin/hive-cdh5/目录下

特别说明:

上述【$PRESTO_HOME/plugin/hive-cdh5/】中的 "hive-cdh5"是跟Presto集群catalog配置中的"connector.name"的值对应的


4. 完成上述配置和Alluxio客户端文件分发后,重启Presto集群节点。


三、验证

执行presto查询:

presto --server <PRESTO_COORDINATOR_IP>:15050 --execute "use default; select * from words;"idword5nihao1hadoop2hive3hbase4helloQuery 20170117_075052_00008_n6cwe, FINISHED, 1 nodeSplits: 3 total, 3 done (100.00%)0:00 [5 rows, 40B] [21 rows/s, 175B/s]


presto --server <PRESTO_COORDINATOR_IP>:15050 --execute "use default; select * from test_alluxio_hive_tbl;"idword1hadoop2hive3hbase4hello5alluxio-hiveQuery 20170117_075140_00009_n6cwe, FINISHED, 1 nodehttp://10.2.26.41:15050/query.html?20170117_075140_00009_n6cweSplits: 2 total, 2 done (100.00%)CPU Time: 0.0s total,   384 rows/s, 3.53KB/s, 33% activePer Node: 0.1 parallelism,    24 rows/s,   231B/sParallelism: 0.10:00 [5 rows, 47B] [24 rows/s, 231B/s]


说明:

1. 对于查询语句【use default; select * from words;】,原生Presto CLI 不支持 "--execute"查询模式下【use schema;】语句,
这种写法是基于作者对Presto CLI的二次开发实现的;读者朋友可以将【use default; select * from words;】换作【select * from default.words;】提交查询
2. 上述两个示例中,表"words"是原生的hive表;表"test_alluxio_hive_tbl"是通过 Alluxio & Apache Hive整合后的hive客户端创建的表,
表的结构描述信息并不相同(有兴趣的读者可以在hive客户端使用命令【show create table table_name;】查看)
3. 执行上述两个查询时,开启presto service日志模式为debug模式,同时监控 presto 的 server日志,会发现,两个表读取数据的Split path并不相同:前者是"{path=hdfs://...}"; 后者是"{path=alluxio://...}",其中细节研究,后续做详细探讨。

4. 通过Presto Service 的Web UI查看查询历史,如下图



0 0
原创粉丝点击