Skip to main content

AWS EMR

新建 EMR 集群集成 JuiceFS

  1. 在 Software and Steps 界面填写配置

../images/aws-emr-conf.png

  • 基础配置

    [
    {
    "classification":"core-site",
    "properties":{
    "fs.jfs.impl":"com.juicefs.JuiceFileSystem",
    "fs.AbstractFileSystem.jfs.impl":"com.juicefs.JuiceFS",
    "juicefs.cache-size":"10240",
    "juicefs.access-log":"/tmp/juicefs.access.log",
    "juicefs.discover-nodes-url":"yarn",
    "juicefs.conf-dir":"/etc/juicefs",
    "juicefs.cache-full-block":"false",
    "juicefs.token":"",
    "juicefs.cache-group":"yarn",
    "juicefs.cache-dir":"/mnt*/jfs"
    }
    }
    ]
  • 使用 HBase on JuiceFS 配置。

    [
    {
    "classification":"core-site",
    "properties":{
    "fs.jfs.impl":"com.juicefs.JuiceFileSystem",
    "juicefs.cache-size":"10240",
    "juicefs.access-log":"/tmp/juicefs.access.log",
    "juicefs.discover-nodes-url":"yarn",
    "juicefs.conf-dir":"/etc/juicefs",
    "juicefs.cache-full-block":"false",
    "juicefs.token":"",
    "juicefs.cache-group":"yarn",
    "juicefs.free-space":"0.3",
    "juicefs.cache-dir":"/mnt*/jfs",
    "fs.AbstractFileSystem.jfs.impl":"com.juicefs.JuiceFS"
    }
    },
    {
    "classification":"hbase-site",
    "properties":{
    "hbase.rootdir":"jfs://{name}/hbase"
    }
    }
    ]

配置项 juicefs.cache-size 和 juicefs.free-space 的缓存配置,需要按需配置。juicefs.token 需要到 JuiceFS 控制台获取。

  1. 在 General Cluster Settings 界面添加引导操作

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

../images/aws-emr-boot.png

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

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

  • 可以访问公网

    --jar s3://{bucket}/resources/juicefs-hadoop-4.5.4.jar
  • 无外网连接(私有部署)

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

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

    --jar s3://{bucket}/{jar-path}
    --conf-file s3://{bucket}/{conf-file-path}

已有 EMR 集群集成 JuiceFS

在 Master 节点上按照 手动安装 Java 客户端 的方法配置 JAR 文件,然后通过 EMR 界面修改配置:

  • 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
  • HBase

    修改 hbase-site

    "hbase.rootdir": "jfs://your-jfs/hbase"

    修改 hbase

    "hbase.emr.storageMode": "jfs"

等 EMR 配置刷新后,重启相应服务。