JindoFSx客户端P2P可以被视作一种本地缓存(LocalCache)。与原有的LocalCache相比,P2P缓存中的本地数据块会优先从其他持有该数据的客户端拉取,只有无法向其他客户端请求时,才会从STS或远端读取。本文为您介绍P2P分布式下载缓存的使用方法。
前提条件
- EMR环境:已在E-MapReduce上创建EMR-3.42.0及后续版本、EMR-5.6.0及后续版本的集群,且选择JINDODATA服务,详情请参见创建集群。
- 非EMR环境:具体请参见JindoFSx存储加速系统使用指南。
操作流程
说明 本文以EMR-3.42.0版本为例介绍。
步骤一:配置服务端
- 进入JindoData服务的common页签。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群操作列的集群服务。
- 单击JindoData服务区域的配置。
- 单击common页签。
- 新增配置。
- 重启服务。
- 在JindoData服务页面,选择 。
- 在弹出的对话框中,输入执行原因,单击确定。
- 在确认对话框中,单击确定。
步骤二:配置JindoSDK
重要 此配置为客户端配置,无需重启JindoData服务。
- 进入配置页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群右侧操作列的集群服务。
- 单击Hadoop-Common服务区域的配置。
- 单击core-site.xml页签。
- 修改以下配置项。
新增配置项的具体操作,请参见添加配置项。修改配置项的具体操作,请参见修改配置项。
内容 参数 描述 配置OSS实现类 fs.AbstractFileSystem.oss.impl 固定值为 com.aliyun.jindodata.oss.OSS
。fs.oss.impl 固定值为 com.aliyun.jindodata.oss.JindoOssFileSystem
。配置xengine类型 fs.xengine 固定值为 jindofsx
。配置JindoFSx Namespace服务地址 fs.jindofsx.namespace.rpc.address 格式为${headerhost}:8101。例如,master-1-1:8101。 说明 如果使用高可用NameSpace,配置详情请参见高可用JindoFSx Namespace配置和使用。启用缓存加速功能 说明 启用缓存会利用本地磁盘对访问的热数据块进行缓存,默认状态为禁用,即可以直接访问OSS/OSS-HDFS上的数据。fs.jindofsx.data.cache.enable 数据缓存开关: - false(默认值):禁用数据缓存。
- true:启用数据缓存。
- 保存配置。
- 单击服务配置区域的保存。
- 在确认修改对话框中,输入执行原因,开启自动更新配置,单击确定。
步骤三:使用方法
按上述步骤配置之后,根据jindofsx.p2p.file.prefix配置项,所有匹配的读请求都会进入P2P功能,无需调用额外的接口。例如,使用Hadoop shell命令将文件下载到本地,如果文件的路径符合前缀匹配,则会自动启用P2P下载模式。
如果您希望进一步验证对某个特定文件的读请求是否使用了P2P功能,您可以考虑查询日志进行验证。如果您的程序在客户端打印过INFO级别的日志,那么P2P读将产生下列字样的记录:
P2P record for path:
如果您找到了这样的记录,就可以确定对该文件的读请求使用了P2P功能。