
# 配置ClickHouse对接HDFS源文件（MRS 3.2.0-LTS）
#### 操作场景
本章节主要介绍使用ClickHouse对接HDFS组件进行文件读写。
#### 约束与限制
本章节仅适用于MRS 3.2.0-LTS版本。
#### 前提条件
- 已安装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
   ```
   ClickHouseServer的实例业务IP地址获取方式：
   在FusionInsight Manager首页，选择"集群 \> 服务 \> ClickHouse \> 实例"，获取ClickHouseServer实例对应的业务IP地址。
   
   
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')
   ```
   表1参数解释 
   | 参数                                                | 说明                                                                                                                                                           |
   |:---|:---|
   | namenode_ip                                       | NameNode实例节点IP。 在FusionInsight Manager首页，选择"集群 \> 服务 \> HDFS \> 实例"，获取主NameNode业务IP。                                          |
   | dfs.namenode.rpc.port                             | NameNode处理所有客户端请求的RPC端口号。 在FusionInsight Manager首页，选择"集群 \> 服务 \> HDFS \> 配置 \> 全部配置"，搜索并获取参数"dfs.namenode.rpc.port"的值。     |
   | hdfs://{namenode_ip}:{dfs.namenode.rpc.port}/tmp/ | 访问的HDFS文件路径： 如果是访问的多个文件，需要指定到文件夹后边加上\*号，如：**hdfs://** *{* *namenode_ip* *}* **:** *{* *dfs.namenode.rpc.port* *}* **/tmp/**\* |
      
   
   
 
