Skip to main content

HDP

将 JuiceFS 集成到 Ambari

  1. 下载 hdp 安装文件

下载文件解压后将内容放到 /var/lib/ambari-server/resources/stacks/HDP/{YOUR-HDP-VERSION}/services

  1. 重启 ambari
systemctl restart ambari-server
  1. 添加 JuiceFS 服务

打开 Ambari 管理界面 -> Services -> Add Service -> JuiceFS -> 选择安装机器 -> 配置 -> deploy

在配置步骤,主要是配置缓存目录(cache_dirs)和下载版本(download_url)

如果 Ambari 没有外网,可以直接将下载好的 jar 包收到放到 share_download_dir 下,默认为 HDFS 的 /tmp 目录

  1. 升级 JuiceFS

修改 download_url 的版本号,保存并 Refresh configs

../images/jfs-hdp.png

通过 Ambari 修改配置

  • Hadoop

    通过 HDFS 服务界面修改 core-site.xml,具体配置见 详细配置表

  • MapReduce2

    通过 MapReduce2 服务界面修改配置 mapreduce.application.classpath

    在末尾增加 :/usr/hdp/${hdp.version}/hadoop/lib/juicefs-hadoop.jar (变量无需替换)。

  • Hive

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

    jfs://your-jfs-name/your-warehouse-dir

    如果配置了 Ranger 服务,则需要配置 HIVE 服务 ranger.plugin.hive.urlauth.filesystem.schemes,追加 jfs 支持

    ranger.plugin.hive.urlauth.filesystem.schemes=hdfs:,file:,wasb:,adl:,jfs:
  • Druid

    通过 Druid 界面修改目录地址(如无权限,需手动创建目录):

    "druid.storage.storageDirectory": "jfs://your-jfs-name/apps/druid/warehouse"
    "druid.indexer.logs.directory": "jfs://your-jfs-name/user/druid/logs"
  • HBase

    通过 HBase 服务界面修改一下参数

    hbase.rootdir=jfs://your-jfs-name/hbase
    hbase.wal.dir=hdfs://your-hdfs-uri/hbase-wal

    通过 zookeeper 客户端删除 zookeeper.znode.parent 配置的 znode(默认/hbase)

    注意:此操作将会删除原有 HBase 上面的所有数据

  • Sqoop

    使用 Sqoop 将数据导入 Hive 时,Sqoop 会首先把数据导入 target-dir , 然后在通过 hive load 命令将数据 加载到 Hive 表,所以使用 Sqoop 时,需要修改 target-dir

    1.4.6

    使用此版本的 Sqoop 时还需要修改 fs, 此参数修改默认文件系统,所以需要将 HDFS 上面的 mapreduce.tar.gz 复制到 JuiceFS 上的相同路径,默认目录在 HDFS /hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz

    sqoop import \
    -fs jfs://your-jfs-name/ \
    --target-dir jfs://your-jfs-name/tmp/your-dir

    1.4.7

    sqoop import \
    --target-dir jfs://your-jfs-name/tmp/your-dir

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