tencent cloud

文档反馈

软件配置

最后更新时间:2023-12-27 10:02:39

    功能说明

    软件配置支持您创建集群时自定义 hdfs、yarn、hive 等组件的配置。

    自定义软件配置

    Hadoop、Hive 等软件含有大量配置,通过软件配置功能您可以在新建集群的过程中自主配置组件参数。配置过程需要您按要求提供相应的 json 文件,文件可以由您自定义,也可以将存量集群的软件配置参数导出,然后快速新建一个集群。导出软件配置参数,详情请参见 导出软件配置
    目前仅以下文件中的参数支持自定义配置: HDFS:core-site.xml、hdfs-site.xml、hadoop-env.sh、log4j.properties YARN:yarn-site.xml、mapred-site.xml、fair-scheduler.xml、capacity-scheduler.xml、yarn-env.sh、mapred-env.sh Hive:hive-site.xml、hive-env.sh、hive-log4j2.properties
    json 文件示例及说明:
    [
    {
    "serviceName": "HDFS",
    "classification": "hdfs-site.xml",
    "serviceVersion": "2.8.4",
    "properties": {
    "dfs.blocksize": "67108864",
    "dfs.client.slow.io.warning.threshold.ms": "900000",
    "output.replace-datanode-on-failure": "false"
    }
    },
    {
    "serviceName": "YARN",
    "classification": "yarn-site.xml",
    "serviceVersion": "2.8.4",
    "properties": {
    "yarn.app.mapreduce.am.staging-dir": "/emr/hadoop-yarn/staging",
    "yarn.log-aggregation.retain-check-interval-seconds": "604800",
    "yarn.scheduler.minimum-allocation-vcores": "1"
    }
    },
    {
    "serviceName": "YARN",
    "classification": "capacity-scheduler.xml",
    "serviceVersion": "2.8.4",
    "properties": {
    "content": "<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>\\n<?xml-stylesheet type=\\"text/xsl\\" href=\\"configuration.xsl\\"?>\\n<configuration><property>\\n <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>\\n <value>0.8</value>\\n</property>\\n<property>\\n <name>yarn.scheduler.capacity.maximum-applications</name>\\n <value>1000</value>\\n</property>\\n<property>\\n <name>yarn.scheduler.capacity.root.default.capacity</name>\\n <value>100</value>\\n</property>\\n<property>\\n <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>\\n <value>100</value>\\n</property>\\n<property>\\n <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>\\n <value>1</value>\\n</property>\\n<property>\\n <name>yarn.scheduler.capacity.root.queues</name>\\n <value>default</value>\\n</property>\\n</configuration>"
    }
    }
    ]
    配置参数说明:
    serviceName 组件名,必须大写。
    classification 文件名,必须使用全称,包含后缀。
    serviceVersion 版本名,为组件版本,该版本必须与 EMR 产品版本中对应的组件版本一致。
    properties 中填写需要自行配置的参数。
    如需修改 capacity-scheduler.xml、fair-scheduler.xml 中配置参数,properties 中的属性 key 需指定为 content,value 为整个文件的内容。
    如果您需要调整存量集群的组件配置,您可以进行 组件参数配置

    访问外部集群

    配置外部集群 HDFS 的访问地址信息后,可以读取外部集群的数据。

    购买时配置

    EMR 支持新建集群时,配置访问外部集群,只需在 购买页 的软件配置处输入符合要求的 json 文件进行配置即可。下面以假设条件为例进行说明:
    假设条件 假设需要访问外部集群的 nameservice 为 HDFS8088,其访问方式为:
    <property>
    <name>dfs.ha.namenodes.HDFS8088</name>
    <value>nn1,nn2</value>
    </property>
    <property>
    <name>dfs.namenode.http-address.HDFS8088.nn1</name>
    <value>172.21.16.11:4008</value>
    </property>
    <property>
    <name>dfs.namenode.https-address.HDFS8088.nn1</name>
    <value>172.21.16.11:4009</value>
    </property>
    <name>dfs.namenode.rpc-address.HDFS8088.nn1</name>
    <value>172.21.16.11:4007</value>
    <property>
    <name>dfs.namenode.http-address.HDFS8088.nn2</name>
    <value>172.21.16.40:4008</value>
    </property>
    <property>
    <name>dfs.namenode.https-address.HDFS8088.nn2</name>
    <value>172.21.16.40:4009</value>
    </property>
    <property>
    <name>dfs.namenode.rpc-address.HDFS8088.nn2</name>
    <value>172.21.16.40:4007</value>
    <property>
    如需在新建集群中就可访问外部集群,进入购买页后,打开高级设置。
    
    json 文件及说明: 以假设条件为例,框内应该填入 json 文件(json 内容要求同自定义软件配置)。
    [
    {
    "serviceName": "HDFS",
    "classification": "hdfs-site.xml",
    "serviceVersion": "2.7.3",
    "properties": {
    "newNameServiceName": "newEmrCluster",
    "dfs.ha.namenodes.HDFS8088": "nn1,nn2",
    "dfs.namenode.http-address.HDFS8088.nn1": "172.21.16.11:4008",
    "dfs.namenode.https-address.HDFS8088.nn1": "172.21.16.11:4009",
    "dfs.namenode.rpc-address.HDFS8088.nn1": "172.21.16.11:4007",
    "dfs.namenode.http-address.HDFS8088.nn2": "172.21.16.40:4008",
    "dfs.namenode.https-address.HDFS8088.nn2": "172.21.16.40:4009",
    "dfs.namenode.rpc-address.HDFS8088.nn2": "172.21.16.40:4007"
    }
    }
    ]

    配置参数说明:

    serviceName 组件名,必须为“HDFS”。
    classification 文件名,必须为“hdfs-site.xml”。
    serviceVersion 版本名,为组件版本,该版本必须与 EMR 产品版本中对应的组件版本一致。
    properties 中填写的内容与假设条件一致。
    newNameServiceName(选填)表示当前新建集群 nameservice。如为空,则由系统生产;如非空,只能由字符串 + 数字 + 中划线组成。
    访问的外部集群只支持高可用集群。 访问的外部集群只支持未开启 kerberos 的集群。

    购买后配置

    EMR 在集群创建后,支持通过 EMR 的 配置下发 功能来访问外部集群。
    假设条件如下: 假设本集群 nameservice 为 HDFS80238(如果是非高可用集群,一般是 masterIp:rpcport,例如172.21.0.11:4007)。 需要访问外部集群的 nameservice 为 HDFS8088,其访问方式为:
    <property>
    <name>dfs.ha.namenodes.HDFS8088</name>
    <value>nn1,nn2</value>
    </property>
    <property>
    <name>dfs.namenode.http-address.HDFS8088.nn1</name>
    <value>172.21.16.11:4008</value>
    </property>
    <property>
    <name>dfs.namenode.https-address.HDFS8088.nn1</name>
    <value>172.21.16.11:4009</value>
    </property>
    <name>dfs.namenode.rpc-address.HDFS8088.nn1</name>
    <value>172.21.16.11:4007</value>
    
    <property>
    <name>dfs.namenode.http-address.HDFS8088.nn2</name>
    <value>172.21.16.40:4008</value>
    </property>
    <property>
    <name>dfs.namenode.https-address.HDFS8088.nn2</name>
    <value>172.21.16.40:4009</value>
    </property>
    <property>
    <name>dfs.namenode.rpc-address.HDFS8088.nn2</name>
    <value>172.21.16.40:4007</value>
    <property>
    
    如果这些信息是 EMR 集群中的,可在 配置下发 管理页查看,或者登录到机器查看 /usr/local/service/hadoop/etc/hadoop/hdfs-site.xml文件。
    1. 进入 配置下发 页面,选择 hdfs 组件的hdfs-site.xml文件。
    2. 修改配置项 dfs.nameservices 为HDFS80238,HDFS8088
    3. 增加配置项及值
    配置项
    配置值
    dfs.ha.namenodes.HDFS8088
    nn1,nn2
    fs.namenode.http-address.HDFS8088.nn1
    172.21.16.11:4008
    dfs.namenode.https-address.HDFS8088.nn1
    172.21.16.11:4009
    dfs.namenode.rpc-address.HDFS8088.nn1
    172.21.16.11:4007
    fs.namenode.http-address.HDFS8088.nn2
    172.21.16.40:4008
    dfs.namenode.https-address.HDFS8088.nn2
    172.21.16.40:4009
    dfs.namenode.rpc-address.HDFS8088.nn2
    172.21.16.40:4007
    dfs.client.failover.proxy.provider.HDFS8088
    org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    dfs.internal.nameservices
    HDFS80238
    dfs.internal.nameservice 需要新增,否则扩容集群后可能导致 datanode 上报异常而被 namenode 标记为 dead。
    4. 下发配置,使用 配置下发 功能下发配置。
    更多相关配置详情及原理,请参考 社区文档
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持