Talend对接FusionInsight

适用场景

Talend 7.2.1 ↔ FusionInsight MRS 8.0 (HDFS/HBase/Hive)

说明: talend 7.2.1版本不支持对接hetu

准备工作

  • 登录FusionInsight Manager创建一个“人机”用户,例如:developuser,具体请参见FusionInsight HD产品文档的管理员指南->系统设置->权限设置->用户管理->创建用户章节。给developuser用户授予所有访问权限,包含但不限于HDFS、HIVE、HBASE。

  • 登录FusionInsight Manager的系统->用户->更多(developuser)->下载认证凭证,下载developuser对应的认证凭证。解压后,将krb5.conf和user.keytab放在E:\195config\目录下(developuser文件夹不存在则创建),复制krb5.conf文件并重命名为krb5.ini,放在C:\Windows目录下。

  • 已完成FusionInsight HD客户端安装,具体请参见FusionInsight HD产品文档的应用开发指南->安全模式->安全认证->配置客户端文件章节。FusionInsight HD客户端解压于本地E:\195config\FusionInsight_Cluster_1_Services_ClientConfig

  • Zookeeper的Kerberos认证需要指定jaas配置文件。创建连接zookeeper的jaas配置文件,如E:\195config\jaas.conf,内容格式如下:

    Client {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    keyTab="E:\195config/user.keytab"
    principal="developuser@HADOOP.COM"
    useTicketCache=false
    storeKey=true
    debug=true;
    };
    

  • 本地C:\Windows\System32\drivers\etc\hosts已添加FusionInsight集群节点的IP与hostname的映射。

  • 本地已安装Hadoop服务(可从https://hadoop.apache.org/releases.html下载Hadoop二进制),该项可选。如果本地没安装Hadoop服务,talend在运行过程中会出现与Hadoop相关的错误日志,但不影响实际运行结果。

安装Talend

操作场景

安装Talend Open Studio for Big Data

操作步骤

  • 解压下载安装包,点击TOS_BD-win-x86_64.exe启动Talend Open Studio for Big Data。点击我同意

  • 点击完成,默认创建Local_Project的工程。

  • 选择安装必须的第三方库,点击Finish

  • 选择我接受所选许可协议的条款,点击全部接受

  • 在右下角可看到安装进度。

创建Hadoop服务

操作场景

创建包含HDFS、HIVE服务的Hadoop集群

前提条件

  • 已完成准备工作。

  • 将FusionInsight客户端HDFS、HIVE以下相关的配置文件拷贝至E:\195config\config目录下。

  • E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\HDFS\config的hdfs-site.xml、core-site.xml。

  • E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\Hive\config的hive-site.xml、hivemetastore-site.xml。

  • E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\Yarn\config的mapred-site.xml、yarn-site.xml。

操作步骤

创建Hadoop集群

  • 打开Talend Open Studio for Big Data,选择元数据->Hadoop Cluster,右键Hadoop Cluster选择Create Hadoop Cluster

  • “名称”输入“FusionInsight”,点击Next

  • 选择从本地文件导入配置,点击Next

  • 点击浏览,选择目录E:\195config\config,默认全选,点击Finish

20201106_154042_54

  • 先修改Namenode URI的值为hdfs://172.16.10.132:25000,其中172.16.10.132为主namenode ip,然后“Distribution”选择Custom - Unsuported,点击下拉框右边的按钮导入HDFS、HIVE相关的jar包。

20201106_154206_40

  • 点击Cancel取消自动弹出的“导入自定义的定义”窗口。

  • 选择“HDFS/HCatalog/Oozie”,点击按钮添加HDFS相关的jar包。

  • 选择外部库,点击浏览,选择E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\HDFS\FusionInsight-Hadoop-3.1.1.tar.gz\hadoop\share\hadoop\hdfs目录下所有的jar包,点击OK导入jar包。

  • 按照同样的方法,选择“HDFS/HCatalog/Oozie”,导入E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\HDFS\FusionInsight-Hadoop-3.1.1.tar.gz\hadoop\share\hadoop\commonE:\195config\FusionInsight_Cluster_1_Services_ClientConfig\HDFS\FusionInsight-Hadoop-3.1.1.tar.gz\hadoop\share\hadoop\common\lib目录下所有的jar包。

20201106_154416_92

  • 按照同样的方法,选择“Hive”,导入E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\Hive\jdbc目录下所有的jar包。

20201106_154534_80

  • 配置Kerberos认证。“Custom->Authentication”选择Kerberos

  • 勾选Authentication->Enable Kerberos security,输入信息如下:

    Namenode Principal = hdfs/hadoop.hadoop.com@HADOOP.COM
    资源管理器主体 = mapred/hadoop.hadoop.com@HADOOP.COM
    作业历史记录主体 = mapred/hadoop.hadoop.com@HADOOP.COM
    
    备注:
    Namenode Principal的取值为hdfs-site.xml的dfs.namenode.kerberos.principal的value值;
    资源管理器主体的取值为yarn-site.xml的yarn.resourcemanager.principal的value值;
    作业历史记录主体的取值为mapred-site.xml的mapreduce.jobhistory.principal的value值。
    
  • 勾选Authentication->Use a keytab to authenticate,输入信息如下:

    Principal = developuser
    Keytab = E:/195config/user.keytab
    
    备注:
    Principal为FusionInsight Manager的用户名,Keytab为用户developuser的认证凭据。
    

    20201106_155329_56

  • 配置Hadoop属性,点击Hadoop属性右边的按钮。

20201106_155400_64

  • 点击按钮,增加以下Hadoop属性。增加完毕,点击OK

  • 增加core-site.xml的hadoop.security.authentication和hadoop.rpc.protection的属性及其对应的value值;

  • 增加hdfs-site.xml的dfs.namenode.rpc-address.hacluster.*,dfs.ha.namenodes.hacluster、dfs.nameservices、dfs.client.failover.proxy.provider.hacluster的属性及其对应的value值。

配置示例如下:

hadoop.security.authentication = Kerberos
hadoop.rpc.protection = privacy

20201106_155501_12

  • 确认默认勾选使用自定义Hadoop属性,点击检查服务

20201106_155559_66

  • 检查返回100%,则Hadoop集群配置成功,点击Close。如果返回错误日志,则根据错误日志提示修正问题后,重新点击检查服务,直至检查返回100%。

  • 点击Finish,则可在元数据->Hadoop Cluster看到新建的“FusionInsight”集群,包含HDFS、HIVE服务。

配置HIVE服务

  • 选择元数据->Hadoop Cluster->FusionInsight->Hive(1)->FusionInsight_HIVE,右键FusionInsight_HIVE选择Edit Hive

20201106_155744_27

  • 点击Next

  • 需要更新的配置如下,其余的保持不变。
    hive模式 = Standalone
    hive服务器版本 = Hive Server2 -- jdbc:hive2://
    登录名 = developuser
    密码 = Huawei@123
    服务器 = 172.16.10.131:24002,172.16.10.132:24002,172.16.10.133
    端口 = 24002
    DataBase = default
    附加JDBC设置 = ;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;user.principal=developuser;user.keytab=E:/195config/user.keytab
    
    说明:以上信息可根据JDBC方式连接Hive服务的配置填写。
    

20201106_160909_48

  • 点击测试连接,返回连接成功,点击OK,点击Finish完成配置。

20201106_161036_29

Talend对接FusionInsight HDFS

操作场景

Talend中配置HDFS解析器,对接FusionInsight HDFS接口,并从Fusion Insight集群的HDFS文件系统下载文件至本地,或者将本地文件上传至Fusion Insight集群的HDFS文件系统。

前提条件

  • 已完成准备工作

  • 已完成Talend Open Studio for Big Data的安装

  • 已创建包含HDFS服务的Hadoop集群

HDFS Connection 操作步骤

  • 选择作业设计,右键选择创建作业

  • “名称”输入“hdfsConnection”,点击Finish

  • 选择作业hdfsConnection,在Palette面板输入“hdfsConnection”搜索,将搜索返回的“tHDFSConnection”组件拖至Disigner区。

  • 点击选中“tHDFSConnection_1”,切换至“组件”,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HDFS。如果提示“此组件tHDFSConnection需要至少安装一个外部jar。”,则点击安装

    20201106_161520_50

  • 点击下载并安装所有可用的模块

  • 等待所有可用的模块下载并安装完之后,切换至“运行(作业hdfsConnection)”,点击运行按钮。返回结果如下图所示,则表示Talend对接FusionInsight HDFS成功。

    20201106_161612_11

HDFS Get操作步骤

从Fusion Insight集群的HDFS文件系统下载文件至本地。

  • 登录FusionInsight集群客户端,执行hdfs dfs -ls /tmp命令确认/tmp目录已存在文件“getFromHdfs.csv”,内容随意。

  • 创建作业“hdfsGet”,加入tHDFSConnection、tHDFSGet组件。

  • 点击选中tHDFSConnection_1,右键选择触发器->子作业正常时,连接至tHDFSGet_1。

  • 点击选中tHDFSConnection_1组件,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HDFS

    20201106_161855_66

  • 点击选中tHDFSGet_1组件,勾选使用一个现有连接,“组件列表”选择tHDFSConnection_1,“HDFS目录”选择/tmp,“本地目录”选择C:/talend/testFile(可选择任意的本地目录),在“文件掩码”输入在HDFS的/tmp目录下需要获取的文件名称getFromHdfs.csv

  • 切换至“运行(作业hdfsGet)”,点击运行按钮。返回结果如下图所示,则表示Talend从FusionInsight HDFS下载文件成功。

  • getFromHdfs.csv已下载至本地C:\talend\testFile

HDFS Put 操作步骤

从本地上传文件至Fusion Insight集群的HDFS文件系统。

  • 创建作业“hdfsPut”,加入tHDFSConnection、tHDFSPut组件,tHDFSConnection_1的子作业正常时执行tHDFSPut_1。

  • 点击选中tHDFSConnection_1组件,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HDFS

    20201106_162253_92

  • 点击选中tHDFSPut_1组件,勾选使用一个现有连接,“组件列表”选择tHDFSConnection_1,“本地目录”选择C:/talend/testFile,“HDFS目录”选择/tmp,在“文件掩码”输入需要上传至HDFS文件系统的文件名称putToHdfs.csv

说明:C:/talend/testFile/putToHdfs.csv为本地已存在文件,内容随意。

![](assets/Talend_7.2.1/61c635ee.png)
  • 切换至“运行(作业hdfsPut)”,点击运行按钮。返回结果如下图所示,则表示从Talend上传文件putToHdfs.csv至FusionInsight HDFS文件系统成功。

  • 登录FusionInsight集群客户端,执行hdfs dfs -ls /tmp命令检查putToHdfs.csv已上传至/tmp目录。

Talend对接FusionInsight Hive

操作场景

Talend中配置JDBC解析器,对接FusionInsight Hive接口,进行建表、查表、插入数据等操作。

前提条件

  • 已完成准备工作

  • 已完成Talend Open Studio for Big Data的安装

  • 已创建包含Hive服务的Hadoop集群和完成Hadoop集群的Hive服务配置。

Hive Connection 操作步骤

  • 选择作业设计,右键选择创建作业

  • “名称”输入“hiveConnection”,点击Finish

  • 选择作业hiveConnection,加入tHiveConnection、tHiveClose组件。

  • 点击选中“tHiveConnection_1”,切换至“组件”,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HIVE

    20201106_162748_42

  • 点击选中“tHiveClose_1”,切换至“组件”,“组件列表”选择tHiveConnection_1

  • 切换至“运行(作业hiveConnection)”,点击运行按钮。返回结果如下图所示,则表示Talend对接FusionInsight Hive成功。

Hive Create Table 操作步骤

使用Talend创建表talendHiveCreate,并将/tmp/putToHdfs.csv的数据传入表talendHiveCreate。

  • 登录FusionInsight集群客户端,执行hdfs dfs -ls /tmp命令确认/tmp目录已存在文件“putToHdfs.csv”。

    putToHdfs.csv的内容如下(包含两列,两列之间用分号隔开):

    1;EcitQU
    2;Hyy6RC
    3;zju1jR
    4;R9fex9
    5;EU2mVq
    

  • 创建作业“hiveCreateTable”,加入tHiveConnection、tHiveCreateTable、tHiveLoad、tHiveClose组件,上一个组件的子作业正常时执行下一个组件。

  • 点击选中“tHiveConnection_1”,切换至“组件”,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HIVE

    20201109_095154_58

  • 点击选中“tHiveCreateTable_1”,勾选使用一个现有连接,“组件列表”选择tHiveConnection_1,点击“编辑schema”右边的按钮设计表结构为两列,列名分别id和name,“表名称”输入talendHiveCreate,“表操作”选择如果表不存在则创建表,“格式”选择文本文件,其余选项为默认。

  • 点击选中“tHiveLoad_1”,勾选使用一个现有连接,“组件列表”选择tHiveConnection_1,“加载操作”选择加载,“文件路径”输入/tmp/putToHdfs.csv,“表名称”输入talendHiveCreate,其余选项默认。

  • 点击选中“tHiveClose_1”,“组件列表”选择tHiveConnection_1

  • 切换至“运行(作业hiveCreateTable)”,点击运行按钮。返回结果如下图所示,则表示Talend使用Hive创建表talendHiveCreate,并将putToHdfs.csv的数据输入到表talendHiveCreate成功。

  • 登录FusionInsight集群客户端,使用beeline执行select * from talendHiveCreate;命令查询表createdTableTalend

Hive Input 操作步骤

使用Talend查询Hive表的数据。

  • 确认已存在表talendHiveCreate。登录FusionInsight集群客户端,使用beeline执行select * from talendHiveCreate;命令查询表createdTableTalend,返回数据如下。

  • 创建作业“hiveInput”,加入tHiveConnection、tHiveInput、tHiveClose、tLogRow组件,上一个组件的子作业正常时执行下一个组件。

  • 点击选中“tHiveConnection_1”,切换至“组件”,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HIVE

    20201109_100016_67

  • 点击选中“tHiveInput_1”,勾选使用一个现有连接,“组件列表”选择tHiveConnection_1,点击“编辑schema”右边的按钮设计表结构为两列,列名分别id和name,“表名称”输入talendHiveCreate,“查询”输入"select * from talendHiveCreate",其余选项默认。

  • 点击选中“tHiveClose_1”,“组件列表”选择tHiveConnection_1

  • tLogRow组件使用默认配置。

  • 切换至“运行(作业hiveInput)”,点击运行按钮。返回结果如下图所示,则表示Talend查询表createdTableTalend数据成功。

Hive Row 操作步骤

使用Talend插入数据至Hive表。

  • 确认已存在表talendHiveCreate。登录FusionInsight集群客户端,使用beeline执行select * from talendHiveCreate;命令查询表createdTableTalend,返回数据如下。

  • 创建作业“hiveRow”,加入tHiveConnection、tHiveRow、tHiveClose组件,上一个组件的子作业正常时执行下一个组件。

  • 点击选中“tHiveConnection_1”,切换至“组件”,“属性类型”选择存储库,点击右边的按钮选择FusionInsight_HIVE

20201109_100204_41

  • 点击选中“tHiveRow_1”,勾选使用一个现有连接,“组件列表”选择tHiveConnection_1,点击“编辑schema”右边的按钮设计表结构为两列,列名分别id和name,“表名称”输入talendHiveCreate,“查询”输入"insert into talendHiveCreate values(123,'shenzhen')",其余选项默认。

  • 点击选中“tHiveClose_1”,“组件列表”选择tHiveConnection_1

  • 切换至“运行(作业hiveRow)”,点击运行按钮。返回结果如下图所示,则表示Talend插入表createdTableTalend数据成功。

  • 登录FusionInsight集群客户端,使用beeline执行select * from talendHiveCreate;命令查询表createdTableTalend,返回数据已包含新增的数据。

Talend对接FusionInsight HBase

操作场景

Talend中配置HBase解析器,对的FusionInsight HBase接口,进行建表、查询、插入数据等操作。

前提条件

  • 已完成准备工作

  • 已完成Talend Open Studio for Big Data的安装

  • 已在IntelliJ IDEA使用Import project from external model ~ Eclipse方式导入C:\talend\FusionInsight_Cluster_1_Services_ClientConfig\HBase\hbase-example,并且调测TestMain.java通过。

HBase Connection 操作步骤

  • 导出FusionInsight HD客户端中Hbase样例代码中的LoginUtil类。

  • 在IntelliJ IDEA打开C:\talend\FusionInsight_Cluster_1_Services_ClientConfig\HBase\hbase-example工程,选择File > Project Structure...菜单项。

  • 选择Artifacts->Add->JAR->Empty

  • 导出jar包的名称设置为hbase-loginUtil.jar,“Output directory”选择C:\talend\testFile,双击“Available Elements”的'hbase-example' compile output将它加载到左边列表,点击OK

  • 选中“hbase-example”工程com.huawei.hadoop.security的LoginUtil.java,选择Build->Build Artifacts...

  • 选择hbase-loginUtil.jar->Build

  • 编译完成后,在本地C:\talend\testFile产生“hbase-loginUtil2.jar”。

  • 选择作业设计,右键选择创建作业

  • “名称”输入“hbaseConnection”,点击Finish

  • 选择作业hbaseConnection,加入tLibraryLoad、tHBaseConnection、tJava、tHBaseClose组件,上一个组件的子作业正常时执行下一个组件。

20201106_163654_14

  • 点击选中“tLibraryLoad_1”,切换至“组件”,点击右边的按钮选择模块。在弹出窗口,选择构建库(local m2/nexus),选择安装一个新模块并选择文件C:\talend\testFile\hbase-loginUtil.jar,然后点击检测模块安装状态,检测没问题则OK按钮激活,点击OK

20201106_164043_26

注意:如果已经安装过,可以直接使用talend的mvn uri导入

20201106_164151_31

  • 点击选中“tLibraryLoad_3”,切换至“组件”,点击右边的按钮选择模块。在弹出窗口,选择构建库(local m2/nexus),选择安装一个新模块并选择文件E:\195config\FusionInsight_Cluster_1_Services_ClientConfig\HBase\FusionInsight-HBase-2.2.3.tar.gz\hbase\lib\zookeeper-3.5.6-hw-ei-302002.jar,然后点击检测模块安装状态,检测没问题则OK按钮激活,点击OK

20201106_164454_68

注意:如果已经安装过,可以直接使用talend的mvn uri导入

20201106_164547_55

  • 点击选中“tHBaseConnection_1”,配置如下:

20201106_164721_34

选用cdh 6.1.1作为匹配版本对接

  • 点击选中“tJava_1”。
  • 在“基本设置”的“代码”中输入HBase配置相关的代码。

    20201106_165110_43

    代码示例如下:

    org.apache.hadoop.conf.Configuration conf = org.apache.hadoop.hbase.HBaseConfiguration.create();
    
    //设置Kerberos认证的相关文件的路径
    System.setProperty("java.security.krb5.conf", "E:\\195config\\krb5.conf");
    System.setProperty("java.security.auth.login.config", "E:/195config/jaas.conf");
    conf.set("hadoop.security.authentication","Kerberos");
    
    //增加配置文件,根据配置文件所在的位置刷新
    conf.addResource(new org.apache.hadoop.fs.Path("E:/195config/config/core-site.xml"));
    conf.addResource(new org.apache.hadoop.fs.Path("E:/195config/config/hdfs-site.xml"));
    conf.addResource(new org.apache.hadoop.fs.Path("E:/195config/config/hbase-site.xml"));
    
    //输出配置属性
    System.out.println("=====");
    System.out.println(org.apache.hadoop.hbase.security.User.isHBaseSecurityEnabled(conf));
    
    //登录
    LoginUtil.setJaasConf("developuser", "developuser", "E:\\195config\\krb5.conf");
    //LoginUtil.setZookeeperServerPrincipal("zookeeper.server.principal", "zookeeper/hadoop.hadoop.com");
    LoginUtil.login("developuser", "E:/195config/user.keytab", "E:/195config/krb5.conf", conf);
    
    globalMap.put("conn_tHbaseConnection_1", conf);
    
  • 在“tJava_1”的“高级设置”的“导入”输入import com.huawei.hadoop.security.LoginUtil;

    20201106_165242_23

  • 点击选中“tHBaseClose_1”,“组件列表”选择tHBaseConnection_1

20201106_165411_76

  • 切换至“运行(作业hbaseConnection)”,点击运行按钮。首先先在Advanced settings下面自定义jvm参数,然后点击运行返回结果如下图所示,则表示Talend对接FusionInsight HBase成功。

20201106_165449_63

20201106_170034_18

HBase Input Output 操作步骤

Talend通过FusionInsight HBase接口对接成功后,创建表talendHbaseCreate,将本地E:/soft/talend/putToHdfs.csv的数据传入表talendHbaseCreate,并且从表talendHbaseCreate查询返回数据。

  • 确认本地已存在E:/soft/talend/putToHdfs.csv

putToHdfs.csv内容如下:

1;EcitQU
2;Hyy6RC
3;zju1jR
4;R9fex9
5;EU2mVq
  • 创建作业“hbaseInputOutput”,加入tLibraryLoad、tHBaseConnection、tJava、tHBaseClose、tFileInputDelimited、tHBaseOutput、tHBaseInput、tLogRow组件,上一个组件的子作业正常时执行下一个组件。

20201106_170208_56

  • tLibraryLoad、tHBaseConnection、tJava、tHBaseClose_1组件的配置请参考“HBase Connection 操作步骤”,tLogRow组件使用默认配置。

  • 点击选中“tFileInputDelimited_1”,点击“编辑schema”右边的按钮设计schema为两列,列名分别id和name,“文件名/流”输入E:/soft/talend/putToHdfs.csv,其余选项保持默认。

20201106_170330_17

  • 点击选中“tHBaseOutput_1”。

  • 在“高级配置”中,增加两列,列名分别为id和name,列名必须要用双引号包括,要不运行时会返回语法错误。

    20201106_170608_23

  • 在“基本配置”中,勾选使用一个现有连接,“组件列表”选择tHBaseConnection_1,“表名称”输入talendHbaseCreate,“表操作”选择如果表不存在,则创建表,输入id和name对应的“族名称”,“族名称”必须要用双引号包括,要不运行时会返回语法错误。

    20201106_170526_82

  • 点击选中“tHBaseInput_1”,勾选使用一个现有连接,“组件列表”选择tHBaseConnection_1,“表名称”输入talendhbase,输入id和name对应的“族名称”,“族名称”必须要用双引号包括,点击“编辑schema”右边的按钮增加两列,列名分别id和name。

20201106_170751_54

  • 切换至“运行(作业hbaseInputOutput)”,点击运行按钮。返回结果如下图所示,则表示Talend对接FusionInsight HBase成功,且创建表talendHbaseCreate并将本地文件数据输入表talendHbaseCreate,并且从表talendHbaseCreate查询返回数据。

20201106_170929_71

20201106_171022_44

  • 登录FusionInsight集群客户端,执行以下命令检查HBase表“talendHbaseCreate”。
hbase shell
scan 'talendhbase'

20201106_171848_82

FAQ

  • 向FusionInsight HDFS文件系统上传或者下载文件时,返回Client cannot authenticate via:[TOKEN, KERBEROS]

【问题描述】

使用Talend向FusionInsight HDFS文件系统上传或者下载文件时,上传或者下载的组件(例如tHDFSGet_1)采用“使用一个现有连接”,现有连接tHDFSConnection_1的属性类型是“存储库”时,运行时返回java.io.IOException: DestHost:destPort euleros-hd03:25000 , LocalHost:localPort user-PC/172.16.5.106:0. Failed on local exception: java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS],且上传或者下载文件失败。

【解决方法】

tHDFSConnection_1使用的存储库FusionInsight_HDFS所属的Hadoop集群FusionInsight没有使用自定义的Hadoop配置。需要修改Hadoop集群FusionInsight使用自定义的Hadoop配置。 * 选择元数据->Hadoop Cluster->FusionInsight,右键FusionInsight选择Edit Hadoop Cluster

  ![](assets/Talend_7.2.1/33ef12f1.png)

* 勾选`使用自定义Hadoop配置`。
  ![](assets/Talend_7.2.1/b6962abf.png)

* 点击`Yes`。

  ![](assets/Talend_7.2.1/9e6ea1d7.png)
  • 对接FusionInsight Hive接口创建表的时候返回Cannot modify dfs.client.use.datanode.hostname at runtime。

【问题描述】

对接FusionInsight Hive接口创建表的时候,返回类似的错误:Error while processing statement: Cannot modify dfs.client.use.datanode.hostname at runtime. It is not in list of params that are allowed to be modified at runtime。可能涉及的有以下三个属性:dfs.client.use.datanode.hostname、mapred.job.name、hive.query.name

【解决方法】

登录FusionInsight Manager,在Hive服务的配置参数hive.security.authorization.sqlstd.confwhitelist.append新增|dfs\.client\.use\.datanode\.hostname|mapred\.job\.name|hive\.query\.name,然后重启Hive服务。