本文为您介绍火山引擎 E-MapReduce(EMR)集群 proton 缓存模式用法。
Proton加速服务访问TOS需经过TOS认证,支持3种认证方式:Assume Role、静态AKSK、环境变量AKSK。详细内容参考Hadoop 使用 Proton。
在创建EMR集群的时候,选中安装Proton组件,如图所示。使用Proton组件时,推荐core节点选择带有本地SSD的机型,以获取最好的加速能力。
如果已经有EMR集群,在“集群列表”页面选择“服务列表”,之后点击“添加服务”,选中Proton并安装即可。
下载proton安装包包到本地,下载地址Proton 发行版本
# 样例:下载1.7.0版本proton安装包到本地。 wget https://proton-pkgs.tos-cn-beijing.volces.com/public/proton-1.7.0-bin.tar.gz # 样例:解压安装包到本地,解压后到目录即为PROTON_HOME目录。 tar xvf proton-1.7.0-bin.tar.gz
执行以下命令将proton hadoop bundle包拷贝到hdfs目录,其中:
PROTON_HOME
为Proton SDK安装包解压后的目录;
hadoop.major.version
是当前hadoop的版本,比如2、3分别表示hadoop2、hadoop3;
proton.version
为proton版本;
# 将proton hadoop bundle包拷贝到hdfs目录。 cp ${PROTON_HOME}/plugins/hadoop{hadoop.major.version}/proton-hadoop{hadoop.major.version}-bundle-{proton.version}.jar ${HADOOP_HOME}/share/hadoop/hdfs # 样例: hadoop.major.version=2,proton.version=1.7.0。 cp ${PROTON_HOME}/plugins/hadoop2/proton-hadoop2-bundle-1.7.0.jar ${HADOOP_HOME}/share/hadoop/hdfs
将下面三个properties添加到core-site.xml
中,与无缓存模式的区别在于proton.cache.enable=true
。如果采用静态AKSK做TOS认证,还要添加最下面两个ak、sk配置。
<configuration> <property> <name>fs.tos.impl</name> <value>io.proton.fs.ProtonFileSystem</value> </property> <property> <name>fs.AbstractFileSystem.tos.impl</name> <value>io.proton.fs.ProtonFS</value> </property> <property> <name>proton.cache.enable</name> <value>true</value> </property> <property> <name>fs.tos.endpoint</name> <value>您的TOS endpoint</value> <!-- 例如:[https://tos-cn-beijing.volces.com](https://tos-cn-beijing.volces.com) --> </property> <!-- 如果采用静态AKSK做TOS认证,需要core-site.xml中添加如下配置。采用其他认证方式则不需要配置。 其他认证方式见:https://www.volcengine.com/docs/6491/708149#_1-1-%E8%AE%A4%E8%AF%81%E9%85%8D%E7%BD%AE --> <!-- <property> <name>fs.tos.access-key-id</name> <value>您的AK</value> </property> <property> <name>fs.tos.secret-access-key</name> <value>您的SK</value> </property> --> </configuration>
MetaServer需要安装在master节点,以daemon方式启动。
${PROTON_HOME}/bin/proton metaserver --daemon
DataServer需要安装在core节点,以daemon方式启动。
${PROTON_HOME}/bin/proton dataserver --daemon
Proton服务拉起后,需要执行load命令加载TOS元数据。当路径下对象非常多时,耗时会久一些,成功后会提示"Finish loading path tos://bucket/a/b/c"。
可以通过-t参数指定并发加载线程数,默认并发为节点cpu core数。当元数据数量较大时,建议通过-t参数提升并发。
${PROTON_HOME}/bin/proton load -t 10 -m tos://bucket/a/b/c
使用HDFS客户端验证tos访问,能成功看到路径下的目录/文件表示访问成功。
cd $HADOOP_HOME ./bin/hdfs dfs -ls tos://bucket/a/b/c