更新时间:2024-07-24 GMT+08:00

配置ClickHouse对接HDFS源文件

本章节适用于MRS 3.2.0及之后版本。

操作场景

本章节主要介绍使用ClickHouse对接HDFS组件进行文件读写。

前提条件

  • 已安装ClickHouse客户端,例如客户端安装目录为“/opt/client”。
  • 在FusionInsight Manager已创建具有ClickHouse相关表权限和访问HDFS的权限的用户,例如:clickhouseuser。
  • 在对接HDFS组件之前,需要注意首先确保HDFS中有对应的目录,ClickHouse的HDFS引擎只会操作文件不会创建或删除目录。
  • 当前系统只支持部署在x86节点的ClickHouse集群对接HDFS,部署在ARM节点的ClickHouse集群不支持对接HDFS。

操作步骤

  1. 以客户端安装用户,登录客户端所在节点。
  2. 执行以下命令切换到客户端安装目录。

    cd /opt/client

  3. 执行以下命令配置环境变量。

    source bigdata_env

  4. 执行以下命令认证当前用户(首次认证需要修改密码,未启用Kerberos认证集群跳过此步骤)。

    kinit clickhouseuser

  5. 执行ClickHouse组件的客户端命令登录客户端。

    clickhouse client --host ClickHouseServer的实例业务IP --secure --port 9440

  6. 执行以下命令对接HDFS组件。

    CREATE TABLE default.hdfs_engine_table (`name` String, `value` UInt32) ENGINE = HDFS('hdfs://{namenode_ip}:{dfs.namenode.rpc.port}/tmp/secure_ck.txt', 'TSV')

    • ClickHouseServer的实例业务IP地址获取方式:

      在FusionInsight Manager首页,选择“集群 > 服务 > ClickHouse > 实例”,获取ClickHouseServer实例对应的业务IP地址。

    • namenode_ip的获取方式:

      在FusionInsight Manager首页,选择“集群 > 服务 > HDFS > 实例”,获取主NameNode业务IP。

    • dfs.namenode.rpc.port的获取方式:

      在FusionInsight Manager首页,选择“集群 > 服务 > HDFS > 配置 > 全部配置”,搜索并获取参数“dfs.namenode.rpc.port”的值。

    • 访问的HDFS文件路径:

      如果是访问的多个文件,需要指定到文件夹后边加上*号,如:hdfs://{namenode_ip}:{dfs.namenode.rpc.port}/tmp/*