You need to enable JavaScript to run this app.
导航
Proton加速模式快速入门
最近更新时间:2024.06.21 17:43:12首次发布时间:2024.06.21 17:43:12

在EMR存算分离模式下,Proton还提供加速模式,通过将元数据、数据缓存到EMR节点,可以获得比直接访问TOS更好的性能。

1 创建集群

在创建EMR集群时,选择Proton服务,部署后自动开启加速模式。

如果是已有集群,可以通过“服务列表”-“添加服务”-选择“Proton”,为集群添加Proton服务,添加完成后按页面提示重启HDFS等服务,完成后便自动开启缓存加速模式。

更多集群创建细节详见:创建集群

2 加载元数据

在启用Proton加速模式后,需要从底层存储加载元数据到Proton MetaServer中,否则会出现文件找不到等异常。
通过执行load命令批量加载底层存储元数据。

  1. load命令批量加载指定目录下所有目录和文件元数据

    proton load -t 16 -m tos://{your-bucket-name}/demo-data/
    

成功后会提示“Finish loading path tos://{your-bucket-name}/demo-data/”。当路径下对象非常多时,元数据加载耗时会久一些。可以通过-t参数指定并发加载线程数,默认为节点cpu core数。

  1. 使用HDFS客户端验证TOS访问,能成功看到路径下的目录或文件表示加载成功。

    hdfs dfs -ls tos://{your-bucket-name}/demo-data
    

注意

如果没有经过Proton,直接修改了TOS上的文件或目录,会导致Proton与TOS之间元数据不一致,进而遇到FileNotFoundException异常或查询结果不符合预期。
需要通过proton sync命令进行元数据同步,使用方式详见:Proton Cli - 同步缓存数据块

更多Proton命令详见:Proton Cli
更多元数据加载方法及最佳实践详见:Proton元数据同步

3 作业

目前火山 EMR 集群已经为您配置好了 HDFS、Hive、Spark 等服务的相关配置,您无需额外配置。
下面Hive为例展示:

  1. 通过以下命令,进入hive命令行

    # 切换为hive用户
    su hive
    # 进入hive命令行
    hive
    
  2. 建hive表,location指向TOS

    create table test_table(
      name string,
      value int
    ) location "tos://{your-bucket-name}/hive-demo/test_table"
    
  3. 向表中插入数据

    insert into test_table values ("aa", 11), ("bb", 22), ("cc", 33);
    
  4. 查询是否写入成功

    SELECT * FROM test_table;
    
  5. 退出hive命令行

    exit;
    
  6. 通过HDFS命令行查看数据是否成功写入TOS

    hdfs dfs -ls -R tos://{your-bucket-name}/hive-demo