Skip to main content

腾讯云 EMR

新建 EMR 集群集成 JuiceFS

  1. 在 EMR 可用区与软件配置界面配置高级设置

../images/emr-tx-conf.png

在软件配置填入以下配置,缓存配置按需修改

[
{
"serviceName": "HDFS",
"classification": "core-site.xml",
"serviceVersion": "2.8.5",
"properties": {
"fs.jfs.impl": "com.juicefs.JuiceFileSystem",
"fs.AbstractFileSystem.jfs.impl": "com.juicefs.JuiceFS",
"juicefs.token": "",
"juicefs.accesskey": "",
"juicefs.secretkey": "",
"juicefs.cache-group": "yarn",
"juicefs.cache-dir": "/data*/jfs",
"juicefs.cache-size": "10000000",
"juicefs.discover-nodes-url": "yarn",
"juicefs.superuser": "hadoop",
"juicefs.conf-dir": "/etc/juicefs",
"juicefs.access-log": "/tmp/juicefs.access.log"
}
}
]

注意 serviceVersion 需要和 Hadoop 版本匹配

  1. 在基础信息界面的高级设置里面添加引导操作

下载 emr-boot 脚本和 juicefs-hadoop.jar , 并上传到您的对象存储上。

../images/emr-tx-boot.png

对象存储需授权,引导操作运行时机为集群启动前

脚本位置填写 emr-boot.sh 在 COS 上面的地址

参数填写 juicefs-hadoop-{version}.jar 在 COS 上面的地址

  • 可以访问公网

    --jar cosn://{bucket}/{jar-path}
  • 无外网连接(私有部署)

    由于 JuiceFS 需要联网下载部分必须配置文件来发行服务器的地址,因此在私有环境下(无外网连接),需要将此文件事先准备好。 此配置文件可以在挂载 JuiceFS 的机器上面 /root/.juicefs 下面找到,文件名:{jfs-name}.conf。

    将此配置文件同样上传到 COS 上,然后在引导操作的参数里面填写下面配置:

    --jar cosn://{bucket}/{jar-path}
    --conf-file cosn://{bucket}/{conf-file-path}
  1. 启动集群

已有 EMR 集群集成 JuiceFS

需要授予集群 COS 访问权限

  • Hadoop

    通过 HDFS 服务界面修改 core-site.xml

    常用配置

    fs.jfs.impl=com.juicefs.JuiceFileSystem
    fs.AbstractFileSystem.jfs.impl=com.juicefs.JuiceFS
    juicefs.cache-size=10240
    juicefs.cache-dir=xxxxxx
    juicefs.cache-group=yarn
    juicefs.discover-nodes-url=yarn
    juicefs.accesskey=xxxxxx
    juicefs.secretkey=xxxxxx
    juicefs.token=xxxxxx
    juicefs.access-log=/tmp/juicefs.access.log

    注意

    由于腾讯 EMR 默认使用 hadoop 用户启动 HDFS ,HDFS 的 superuser 为 hadoop。为了保持一致所以还需要指定 juicefs.superuser=hadoop

  • Hive

    通过 Hive 服务界面修改 hive.metastore.warehouse.dir,可修改 Hive 建表默认位置(非必须):

    jfs://{jfs-name}/{warehouse-dir}

最后,重启相应服务让配置修改生效。