编译Alluxio源码适配CDH5.16.1
官方说明
Alluxio是世界上第一个虚拟的分布式存储系统,以内存速度统一了数据访问。它为计算框架和存储系统构建了桥梁,使应用程序能够通过一个公共接口连接到许多存储系统。Alluxio以内存为中心的架构使得数据的访问速度能比现有方案快几个数量级。
优势
● 通过简化应用程序访问其数据的方式(无论数据是什么格式或位置),Alluxio 能够帮助克服从数据中提取信息所面临的困难。使用 Alluxio 的优势包括:
● 内存速度 I/O:Alluxio 能够用作分布式共享缓存服务,这样与 Alluxio 通信的计算应用程序可以透明地缓存频繁访问的数据(尤其是从远程位置),以提供内存级 I/O 吞吐率。
● 简化云存储和对象存储接入:与传统文件系统相比,云存储系统和对象存储系统使用不同的语义,这些语义对性能的影响也不同于传统文件系统。常见的文件系统操作(如列出目录和重命名)通常会导致显著的性能开销。当访问云存储中的数据时,应用程序没有节点级数据本地性或跨应用程序缓存。将 Alluxio 与云存储或对象存储一起部署可以缓解这些问题,因为这样将从 Alluxio 中检索读取数据,而不是从底层云存储或对象存储中检索读取。
● 简化数据管理:Alluxio 提供对多数据源的单点访问。除了连接不同类型的数据源之外,Alluxio 还允许用户同时连接到不同版本的同一存储系统,如多个版本的 HDFS,并且无需复杂的系统配置和管理。
● 应用程序部署简易:Alluxio 管理应用程序和文件或对象存储之间的通信,将应用程序的数据访问请求转换为底层存储接口的请求。Alluxio 与 Hadoop 兼容,现有的数据分析应用程序,如 Spark 和 MapReduce 程序,无需更改任何代码就能在 Alluxio 上运行。
问题
官方提供的可下载的压缩包是适配开源版本的hadoop,而且是支持到hadoop2.X版本的,考虑到目前使用的是CDH环境,所以重新编译源代码。
环境准备
Linux环境: centos7.4
Maven: 3.3.9
Git: 1.8.3.1
Java: 1.8.0_131
编译
编译默认环境
下载源码
git clone git://github.com/alluxio/alluxio.git
如果编译默认环境直接
mvn clean install -DskipTests
编译成功应该如下:
使用开源hadoop,指定版本
-P<HADOOP_PROFILE> -Dhadoop.version=<HADOOP_VERSION>
比如
mvn clean install -Phadoop-2 -Dhadoop.version=2.6.0 -DskipTests
使用CDH环境,指定版本
$apacheRelease-cdh$cdhRelease
比如
mvn clean install -Phadoop-2 -Dhadoop.version=2.6.0-cdh5.16.1 -DskipTests