
# 准备Spark连接集群配置文件
 #### 准备集群认证用户信息
对于开启Kerberos认证的MRS集群，需提前准备具有相关组件操作权限的用户用于程序认证。
以下Spark2x权限配置示例供参考，在实际业务场景中可根据业务需求灵活调整。
1. 登录FusionInsight Manager。
2. 选择"集群 \> 服务 \> Spark2x \> 更多 \> 启用Ranger鉴权"，查看该参数是否置灰。 
   - 是，创建用户并在Ranger中赋予该用户相关操作权限：
     1. 选择"系统 \> 权限 \> 用户 \> 添加用户"，在新增用户界面创建一个机机用户，例如**developuser** 。
        "用户组"需加入**developgroup**组。若用户需要对接Kafka，则需要添加kafkaadmin用户组。
        
     
     2. 使用Ranger管理员用户**rangeradmin**登录Ranger管理页面。
     
     3. 在首页中单击"HADOOP SQL"区域的组件插件名称如"Hive"。
     
     4. 单击"Policy Name"名称为"all - database, table, column"操作列的![](https://support.huaweicloud.com/devg3-mrs/zh-cn_image_0000001570723548.png)。
     
     5. 在"Allow Conditions"区域新增策略允许条件，"Select User"列勾选[2.a]新建的用户名称，"Permissions"列勾选"Select All"。
     
     6. 单击"Save"。
      
   
   - 否，创建用户并在Manager赋予用户相关操作权限：
     1. 选择"系统 \> 权限 \> 角色 \> 添加角色"。
        1. 填写角色的名称，例如**developrole**。
        
        2. （若安装了HBase，则配置）在"配置资源权限"表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"，勾选"default"的"创建"，单击"确定"保存。
        
        3. （若安装了HBase，则配置）编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global \> hbase"，勾选"hbase:meta"的"执行"，单击"确定"保存。
        
        4. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> user"，勾选"hive"的"执行"，单击"确定"保存。
        
        5. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \>user \>hive"，勾选"warehouse"的"读"、"写"和"执行"，单击"确定"保存。
        
        6. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> Hive \> Hive读写权限"，勾选"default"的"建表"，单击"确定"保存。
        
        7. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> Yarn \> 调度队列 \> root"，勾选"default"的"提交"，单击"确定"保存。
         
     
     2. 选择"用户 \> 添加用户"，在新增用户界面，创建一个机机用户，例如**developuser。**
        - "用户组"需加入"hadoop"用户组。
        
        - "角色"加入[2.a]新增的角色。
         
      
   
   
   
   
3. 使用**admin** 用户登录FusionInsight Manager，选择"系统 \> 权限 \> 用户"，在用户名为**develop** **user**的操作列选择"更多 \> 下载认证凭据"下载认证凭据文件，保存后解压得到该用户的"user.keytab"文件与"krb5.conf"文件。
 
#### 准备运行环境配置文件
进行应用开发时，需要同时准备代码的运行调测的环境，用于验证应用程序运行正常。
- 场景一：准备本地Windows开发环境调测程序所需配置文件。
  1. 登录FusionInsight Manager页面，选择"集群 \> 概览 \> 更多 \> 下载客户端"，"选择客户端类型"设置为"仅配置文件"，根据待安装客户端节点的节点类型选择正确的平台类型后（x86选择**x86_64** ，ARM选择**aarch64** ）单击"确定"，等待客户端文件包生成后根据浏览器提示下载客户端到本地并解压。
     例如，客户端文件压缩包为"FusionInsight_Cluster_1_Services_Client.tar"，解压后得到"FusionInsight_Cluster_1_Services_ClientConfig_ConfigFiles.tar"，继续解压该文件。
     
  
  2. 进入客户端配置文件解压路径"\*\\Spark\\config"，获取Spark配置文件，并所有的配置文件导入到Spark样例工程的配置文件目录中（通常为"resources"文件夹）。 [准备集群认证用户信息]时获取的keytab文件也放置于该目录下。
     
  
  3. 复制解压目录下的"hosts"文件中的内容到客户端所在节点的hosts文件中。
     ![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
     - 在应用开发过程中，如需在本地Windows系统中调测应用程序，需要确保本地节点能与"hosts"文件中所列出的各主机在网络上互通。
     
     - 如果当前节点与MRS集群所在网络平面不互通，可以通过绑定EIP的方式访问MRS集群。
     
     - Windows本地hosts文件存放路径举例："C:\\WINDOWS\\system32\\drivers\\etc\\hosts"。
       
   

- 场景二：准备Linux环境运行程序所需配置文件。
  1. 在节点中安装MRS集群客户端，例如客户端安装目录为"/opt/client"。
  
  2. 获取配置文件：
     1. 登录FusionInsight Manager，在"主页"右上方选择"更多 \> 下载客户端"，"选择客户端类型"设置为"仅配置文件"，勾选"仅保存到如下路径"，单击"确定"，下载客户端配置文件至集群主OMS点。
     
     2. 以**root** 登录主OMS节点，进入客户端配置文件所在路径（默认为"/tmp/FusionInsight-Client/"），解压软件包后获取"\*\\Spark\\config"路径下的配置文件。并将所有的配置文件放置到与准备放置编译出的jar包同目录的"conf"目录下，用于后续调测，例如"/opt/client/conf"。
        例如客户端软件包为"FusionInsight_Cluster_1_Services_Client.tar"，下载路径为主管理节点的"/tmp/FusionInsight-Client"：
        **cd /tmp/FusionInsight-Client**
        **tar -xvf FusionInsight_Cluster_1_Services_Client.tar**
        **tar -xvf FusionInsight_Cluster_1_Services_ClientConfig.tar**
        **cd FusionInsight_Cluster_1_Services_ClientConfig**
        **cp -r Spark/config/\*** **/opt/client/conf**
        [准备集群认证用户信息]时获取的keytab文件也放置于该目录下。
        
      
  
  3. 检查客户端节点网络连接。 在安装客户端过程中，系统会自动配置客户端节点"hosts"文件，建议检查"/etc/hosts"文件内是否包含集群内节点的主机名信息，如未包含，需要手动复制解压目录下的"hosts"文件中的内容到客户端所在节点的hosts文件中，确保本地机器能与集群各主机在网络上互通。
     
   
 
