You need to enable JavaScript to run this app.
导航

Proton 缓存模式

最近更新时间2024.02.01 19:28:26

首次发布时间2024.02.01 19:28:26

本文为您介绍火山引擎 E-MapReduce(EMR)集群 proton 缓存模式用法。

1 认证配置

Proton加速服务访问TOS需经过TOS认证,支持3种认证方式:Assume Role、静态AKSK、环境变量AKSK。详细内容参考Hadoop 使用 Proton

2 安装Proton组件

2.1 通过EMR管控平台安装(推荐)

在创建EMR集群的时候,选中安装Proton组件,如图所示。使用Proton组件时,推荐core节点选择带有本地SSD的机型,以获取最好的加速能力。

如果已经有EMR集群,在“集群列表”页面选择“服务列表”,之后点击“添加服务”,选中Proton并安装即可。

2.2 手动安装

  • Jar包准备

下载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
  • core-site.xml配置

将下面三个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

MetaServer需要安装在master节点,以daemon方式启动。

${PROTON_HOME}/bin/proton metaserver --daemon
  • 启动dataserver

DataServer需要安装在core节点,以daemon方式启动。

${PROTON_HOME}/bin/proton dataserver --daemon

3 加载元数据

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

4 验证访问TOS

使用HDFS客户端验证tos访问,能成功看到路径下的目录/文件表示访问成功。

cd $HADOOP_HOME
./bin/hdfs dfs -ls tos://bucket/a/b/c