腾讯云 EMR
新建 EMR 集群集成 JuiceFS
- 在 EMR 可用区与软件配置界面配置高级设置
在软件配置填入以下配置,缓存配置按需修改
[
{
"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 版本匹配
- 在基础信息界面的高级设置里面添加引导操作
下载 emr-boot 脚本和 juicefs-hadoop.jar , 并上传到您的对象存储上。
对象存储需授权,引导操作运行时机为集群启动前
脚本位置填写 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}
- 启动集群
已有 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}
最后,重启相应服务让配置修改生效。