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

我们在上篇文章中,已经演示了如何 安装Alluxio,并将HDFS作为Alluxio的底层文件系统; 以及   Alluxio & Apache Hive的整合过程。
这里我们将通过一系列的文章,来说明如何将Alluxio和常见的一些结算框架实现集成,用以提交查询。

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


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

Alluxio计算框架整合系列 (二) -- Alluxio & Presto_第1张图片

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,在原配置内容之上,增加如下配置信息

	
		fs.defaultFS
		alluxio://:19998
	
	
		alluxio.user.file.writetype.default
		CACHE_THROUGH
	


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

	
		fs.alluxio.impl
		alluxio.hadoop.FileSystem
	
	
		fs.AbstractFileSystem.alluxio.impl
		alluxio.hadoop.AlluxioFileSystem
	


3. 分发Alluxio客户端jar包//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 :15050 --execute "use default; select * from words;"
id	word
5	nihao
1	hadoop
2	hive
3	hbase
4	hello


Query 20170117_075052_00008_n6cwe, FINISHED, 1 node
Splits: 3 total, 3 done (100.00%)
0:00 [5 rows, 40B] [21 rows/s, 175B/s]


presto --server :15050 --execute "use default; select * from test_alluxio_hive_tbl;"
id	word
1	hadoop
2	hive
3	hbase
4	hello
5	alluxio-hive


Query 20170117_075140_00009_n6cwe, FINISHED, 1 node
http://10.2.26.41:15050/query.html?20170117_075140_00009_n6cwe
Splits: 2 total, 2 done (100.00%)
CPU Time: 0.0s total,   384 rows/s, 3.53KB/s, 33% active
Per Node: 0.1 parallelism,    24 rows/s,   231B/s
Parallelism: 0.1
0: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查看查询历史,如下图

Alluxio计算框架整合系列 (二) -- Alluxio & Presto_第2张图片

你可能感兴趣的:(大数据,数据仓库,OLAP)