Apache HDFS透明缓存加速可以利用计算集群的闲置存储资源对远端HDFS集群进行数据缓存,避免了计算集群或服务占用核心集群过多带宽。当HDFS集群和计算集群分离,HDFS集群访问性能不及预期时,您可以通过在计算集群或靠近计算集群的地方缓存数据来进行加速。
前提条件
已在E-MapReduce上创建EMR-3.42.0及后续版本、EMR-5.6.0及后续版本的集群,且选择JINDODATA服务,详情请参见创建集群。操作流程
步骤一:配置服务端
进入JindoData服务的common页签。
登录EMR on ECS。
在顶部菜单栏处,根据实际情况选择地域和资源组。
在集群管理页面,单击目标集群操作列的集群服务。
单击JindoData服务区域的配置。
单击common页签。
新增配置。
单击自定义配置。
在新增配置项对话框中,新增以下配置项。
新增配置项的具体操作,请参见添加配置项。
集群类型
参数
描述
普通集群
jindofsx.hdfs.user
访问HDFS使用的用户名,例如hadoop。
HA集群
jindofsx.hdfs.XXX.dfs.ha.namenodes
表示hdfs-site.xml中
dfs.ha.namenodes.XXX
的值。例如:nn1、nn2、nn3。jindofsx.hdfs.XXX.dfs.namenode.rpc-address.nn1
表示hdfs-site.xml中
dfs.namenode.rpc-address.XXX.nn1
的值。例如:master-1-1:8020。jindofsx.hdfs.XXX.dfs.namenode.rpc-address.nn2
表示hdfs-site.xml中
dfs.namenode.rpc-address.XXX.nn2
的值。例如:master-1-2:8020。jindofsx.hdfs.XXX.dfs.namenode.rpc-address.nn3
表示hdfs-site.xml中
dfs.namenode.rpc-address.XXX.nn3
的值。例如:master-1-3:8020。说明请根据您集群的类型,新增相应的配置项。
XXX
为集群中配置hdfs-site.xml的dfs.nameservices
参数值,例如hdfs-cluster
。单击确定。
在弹出的对话框中,输入执行原因,单击确定。
- 重启服务。
- 在JindoData服务页面,选择 。
- 在弹出的对话框中,输入执行原因,单击确定。
- 在确认对话框中,单击确定。
步骤二:配置JindoSDK
进入配置页面。
- 登录EMR on ECS。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群右侧操作列的集群服务。
- 单击Hadoop-Common服务区域的配置。
- 单击core-site.xml页签。
- 登录EMR on ECS。
新增和修改以下配置项。
新增配置项的具体操作,详情请参见添加配置项。修改配置项的具体操作,详情请参见修改配置项。
内容
属性
参数
描述
配置统一名字空间使用的实现类
必选
fs.hdfs.impl
固定值为
com.aliyun.jindodata.hdfs.JindoHdfsFileSystem
。必选
fs.AbstractFileSystem.hdfs.impl
固定值为
com.aliyun.jindodata.hdfs.HDFS
。配置xengine类型
必选
fs.xengine
固定值为
jindofsx
。配置JindoFSx Namespace服务地址
必选
fs.jindofsx.namespace.rpc.address
格式为${headerhost}:8101。例如,master-1-1:8101。
说明 如果使用高可用NameSpace,配置详情请参见高可用JindoFSx Namespace配置和使用。开启缓存加速功能
必选
fs.jindofsx.data.cache.enable
数据缓存开关:
false(默认值):禁用数据缓存。
true:启用数据缓存。
配置HA Namenodes
说明如果为HA集群,则需要配置该类参数。
可选
fs.jindofsx.hdfs.XXX.dfs.ha.namenodes
表示hdfs-site.xml中
dfs.ha.namenodes.XXX
的值。例如:nn1、nn2、nn3。可选
fs.jindofsx.hdfs.XXX.dfs.namenode.rpc-address.nn1
表示hdfs-site.xml中
dfs.namenode.rpc-address.XXX.nn1
的值。例如:master-1-1:8020。可选
fs.jindofsx.hdfs.XXX.dfs.namenode.rpc-address.nn2
表示hdfs-site.xml中
dfs.namenode.rpc-address.XXX.nn2
的值。例如:master-1-2:8020。可选
fs.jindofsx.hdfs.XXX.dfs.namenode.rpc-address.nn3
表示hdfs-site.xml中
dfs.namenode.rpc-address.XXX.nn3
的值。例如:master-1-3:8020。开启元数据缓存功能
可选
fs.jindofsx.meta.cache.enable
元数据缓存开关:
false(默认值):禁用元数据缓存。
true:启用元数据缓存。
开启小文件优化缓存功能
可选
fs.jindofsx.slice.cache.enable
小文件缓存优化开关:
false(默认值):禁用小文件缓存。
true:启用小文件缓存。
开启短路读功能
可选
fs.jindofsx.short.circuit.enable
短路读开关:
true(默认值):打开短路读开关。
false:关闭短路读开关。
保存配置。
单击服务配置区域的保存。
在确认修改对话框中,输入执行原因,开启自动更新配置,单击确定。
步骤三:磁盘空间水位控制
缓存启用后,JindoFSx服务会自动管理本地缓存备份,通过水位清理本地缓存,请您根据需求配置一定的比例用于缓存。JindoFSx后端基于HDFS,可以提供海量的存储,但是本地盘的容量是有限的,因此JindoFSx会自动淘汰本地较冷的数据备份。您可以通过修改storage.watermark.high.ratio和storage.watermark.low.ratio两个参数来调节本地存储的使用容量,取值范围为0~1,表示使用磁盘空间的比例。
修改磁盘水位配置。
在JindoData服务的配置页签内的storage页签,修改以下参数。
参数
描述
storage.watermark.low.ratio
表示使用量的下水位比例,触发清理后会自动清理冷数据,将缓存数据目录占用空间清理到下水位。默认值:0.2。
storage.watermark.high.ratio
表示磁盘使用量的上水位比例,每块数据盘的缓存数据目录占用的磁盘空间到达上水位即会触发清理。默认值:0.4。如果需要比较高的磁盘利用率可以设置较大值。
说明修改该参数时,下水位比例必须小于上水位比例,设置合理的值即可。
保存配置。
单击下方的保存。
在弹出的对话框中,输入执行原因,单击确定。
重启服务。
在JindoData服务页面,选择右上角的 。
弹出的对话框中,输入执行原因,其他参数保持默认,单击确定。
在确认对话框中,单击确定。
步骤四:访问HDFS
您通过hdfs://前缀读取HDFS上的数据后,在数据缓存开关打开时,会自动缓存到JindoFSx存储加速系统中,后续通过hdfs://访问相同的数据就能够命中缓存。