{
  "cluster": {
    "serviceList": [
      {
        "name": "HDFS",
        "configurations": [
          {
            "name": "dfs.replication",
            "value": "3"
          },
          {
            "name": "hdfs.hdfs-site.customized.configs",
            "value": "[{\\\"name\\\":\\\"dfs.blocksize\\\",\\\"data\\\":\\\"8388608\\\"}]",
            "configFile": "hdfs-site.xml"
          }
        ],
        "roleList": [
          {
            "name": "NameNode",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-Xms2G -Xmx6G -Xss512k  -XX:NewSize=128M -XX:MaxNewSize=512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=2048"
              },
          {
                "name": "dfs.namenode.safemode.threshold-pct",
                "value": "0"
              },
              {
                "name": "dfs.namenode.file.close.num-committed-allowed",
                "value": "0"
              },
              {
                "name": "GC_PROFILE",
                "value": "custom"
              }
            ]
          },
          {
            "name": "Zkfc",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-Xms512M -Xmx1G -Xss512k  -XX:NewSize=64M -XX:MaxNewSize=64M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=2048"
              },
              {
                "name": "GC_PROFILE",
                "value": "custom"
              }
            ]
          },
          {
            "name": "DataNode",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-Xms2G -Xmx4G -Xss512k  -XX:NewSize=128M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=2048"
              },
              {
                "name": "dfs.blockreport.incremental.intervalMsec",
                "value": "0"
              },
              {
                "name": "GC_PROFILE",
                "value": "custom"
              }
            ]
          },
          {
            "name": "JournalNode",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-Xms512M -Xmx1G -XX:NewSize=64M -XX:MaxNewSize=128M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:CMSFullGCsBeforeCompaction=1 -XX:MaxDirectMemorySize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=2048"
              },
              {
                "name": "GC_PROFILE",
                "value": "custom"
              }
            ]
          }
        ]
      },
      {
        "roleList": [
          {
            "name": "Broker",
            "configurations": [
              {
                "name": "log.retention.hours",
                "value": "1"
              },
              {
                "name": "offsets.topic.replication.factor",
                "value": "2"
              },
              {
                "name": "transaction.state.log.replication.factor",
                "value": "2"
              },
              {
                "name": "KAFKA_HEAP_OPTS",
                "value": "-Xmx2G -Xms2G -Xss512k"
              },
              {
                "name": "KAFKA_JVM_PERFORMANCE_OPTS",
                "value": "-Xss512k -XX:+UseG1GC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M"
              },
              {
                "name": "replica.fetch.wait.max.ms",
                "value": "3500"
              },
              {
                "name": "group.max.session.timeout.ms",
                "value": "500000"
              },
              {
                "name": "log.cleaner.delete.retention.ms",
                "value": "3600000"
              },
              {
                "name": "num.partitions",
                "value": "3"
              },
              {
                "name": "default.replication.factor",
                "value": "2"
              },
              {
                "name": "kafka.authorizer.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.controller.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.log.cleaner.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.network.requestchannel.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.request.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.scripts.log.level",
                "value": "WARN"
              },
              {
                "name": "kafka.state.change.log.level",
                "value": "WARN"
              },
              {
                "name": "root.log.level",
                "value": "WARN"
              },
              {
                "name": "log.roll.hours",
                "value": "1"
              },
              {
                "name": "log.index.size.max.bytes",
                "value": "10485760"
              },
              {
                "name": "compression.type",
                "value": "lz4"
              }
            ]
          }
        ],
        "name": "Kafka",
        "configurations": []
      },
      {
        "roleList": [
          {
            "name": "HiveServer",
            "configurations": [
              {
                "name": "HIVE_GC_OPTS",
                "value": "-Xms512M -Xmx512M -Xss512k  -DIgnoreReplayReqDetect -Dnet.sf.ehcache.skipUpdateCheck=true -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:-UseSplitVerifier -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=15 -XX:GCLogFileSize=20M -server -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=512M -XX:ErrorFile=${HIVESERVER_LOG_DIR}/hs_err_pid_%p.log -XX:MaxDirectMemorySize=512M"
              }
            ]
          },
          {
            "name": "MetaStore",
            "configurations": [
              {
                "name": "METASTORE_GC_OPTS",
                "value": "-Xms1024M -Xmx1024M -Xss512k  -DIgnoreReplayReqDetect -Dnet.sf.ehcache.skipUpdateCheck=true -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=15 -XX:GCLogFileSize=20M -server -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:ErrorFile=${METASTORE_LOG_DIR}/hs_err_pid_%p.log -XX:MaxDirectMemorySize=512M"
              }
            ]
          },
          {
            "name": "WebHCat",
            "configurations": [
              {
                "name": "WEBHCAT_GC_OPTS",
                "value": "-Xms512M -Xmx512M -Xss512k  -DIgnoreReplayReqDetect -Dnet.sf.ehcache.skipUpdateCheck=true -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:-UseSplitVerifier -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=15 -XX:GCLogFileSize=20M  -XX:ErrorFile=${WEBHCAT_LOG_DIR}/hs_err_pid_%p.log -Djdk.tls.ephemeralDHKeySize=2048"
              }
            ]
          }
        ],
        "name": "Hive",
        "configurations": []
      },
      {
        "roleList": [
          {
            "name": "DBServer",
            "configurations": [
              {
                "name": "dbservice.database.max.connections",
                "value": "100"
              },
              {
              "name": "dbservice.floatip",
              "value": "{{FI_DBSERVICE_FLOAT_IP}}",
              "configGroup": "dbservice/dbservice-site.xml"
              },
              {
              "name": "dbservice.mediator.ip",
              "value": "{{FI_DBSERVICE_MEDIATOR_IP}}",
              "configGroup": "dbservice/dbservice-site.xml"
              }
            ]
          }
        ],
        "name": "DBService",
        "configurations": []
      },
      {
        "roleList": [
          {
            "name": "ThriftServer",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-server -Xms64M -Xmx128M -XX:NewSize=16M -XX:MaxNewSize=32M -XX:MetaspaceSize=32M -XX:MaxMetaspaceSize=64M -XX:MaxDirectMemorySize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M"
              }
            ]
          },
          {
            "name": "RegionServer",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-server -Xms4G -Xmx4G -Xss512k  -XX:NewSize=1024M -XX:MaxNewSize=1024M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=512M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M"
              },
              {
                "name": "hbase.regionserver.thread.compaction.large",
                "value": "1"
              },
              {
                "name": "hbase.regionserver.thread.compaction.small",
                "value": "1"
              }
            ]
          }
        ],
        "name": "HBase",
        "configurations": [
          {
            "name": "dfs.replication",
            "value": "2"
          },
          {
            "name": "hbase.rpc.protection",
            "value": "privacy"
          },
          {
            "name": "hbase.server.thread.wakefrequency",
            "value": "500"
          }
        ]
      },
      {
        "roleList": [
          {
            "name": "ResourceManager",
            "configurations": [
              {
                "name": "GC_PROFILE",
                "value": "custom"
              },
              {
                "name": "yarn.scheduler.maximum-allocation-vcores",
                "value": "64"
              },
              {
                "name": "yarn.scheduler.capacity.maximum-applications",
                "value": "500"
              },
              {
                "name": "yarn.resourcemanager.max-completed-applications",
                "value": "500"
              },
              {
                "name": "mapred.child.java.opts",
                "value": "-Xms512M -Xmx2048M -Xloggc:/tmp/@taskid@.gc"
              },
              {
                "name": "GC_OPTS",
                "value": "-Xms1G -Xmx3G -Xss512k  -XX:NewSize=128M -XX:MaxNewSize=128M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=2048"
              },
              {
                "name": "yarn.am.memory.alarm.threshold",
                "value": "0"
              },
              {
                "name": "yarn.am.vcore.alarm.threshold",
                "value": "0"
              },
              {
                "name": "yarn.nodemanager.lost.alarm.threshold",
                "value": "0"
              },
              {
                "name": "yarn.nodemanager.unhealthy.alarm.threshold",
                "value": "0"
              },
              {
                "name": "yarn.queue.memory.alarm.threshold",
                "value": "0"
              },
              {
                "name": "yarn.queue.vcore.alarm.threshold",
                "value": "0"
              }
            ]
          },
          {
            "name": "NodeManager",
            "configurations": [
              {
                "name": "GC_PROFILE",
                "value": "custom"
              },
              {
                "name": "RES_CPUSET_PERCENTAGE",
                "value": "70"
              },
              {
                "name": "GC_OPTS",
                "value": "-Xms1G -Xmx2G -Xss512k  -XX:NewSize=128M -XX:MaxNewSize=512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:CMSFullGCsBeforeCompaction=1 -XX:MaxDirectMemorySize=2G -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=2048"
              }
            ]
          }
        ],
        "name": "Yarn",
        "configurations": [
          {
            "name": "yarn.scheduler.minimum-allocation-mb",
            "value": "256"
          }
        ]
      },
      {
        "roleList": [
          {
            "name": "SparkResource2x",
            "configurations": [
              {
                "name": "spark.shuffle.compress",
                "value": "true"
              },
              {
                "name": "spark.sql.adaptive.enabled",
                "value": "false"
              },
              {
                "name": "spark.sql.adaptive.join.enabled",
                "value": "false"
              },
              {
                "name": "spark.sql.adaptive.skewedJoin.enabled",
                "value": "false"
              },
              {
                "name": "spark.shuffle.spill.compress",
                "value": "true"
              },
              {
                "name": "spark.hdfs-site.customized.configs",
                "value": "[{\"name\":\"dfs.blocksize\",\"data\":\"8388608\"}]"
              },
              {
                "name": "spark.io.compression.codec",
                "value": "snappy"
              },
              {
                "name": "spark.shuffle.service.enabled",
                "value": "true"
              },
              {
                "name": "spark.log.level",
                "value": "INFO"
              },
              {
                "name": "spark.executor.log.level",
                "value": "INFO"
              },
              {
                "name": "spark.yarn.security.credentials.hbase.enabled",
                "value": "true"
              },
			  {
                "name": "spark.yarn.am.memory",
                "value": "512M"
              },
			  {
                "name": "spark.hbase-site.customized.configs",
                "value": "[{\\\"name\\\":\\\"hbase.rpc.protection\\\",\\\"data\\\":\\\"privacy\\\"}]"
              },
			  {
                "name": "spark.serializer",
                "value": "org.apache.spark.serializer.KryoSerializer"
              },
              {
                "name": "spark.eventlog.group.size",
                "value": "1g"
              },
              {
                "name": "custom",
                "value": "[{\\\"name\\\":\\\"spark.yarn.cluster.driver.extraLibraryPath\\\",\\\"data\\\":\\\"\\\"},{\\\"name\\\":\\\"spark.driver.extraLibraryPath\\\",\\\"data\\\":\\\"\\\"},{\\\"name\\\":\\\"spark.executor.extraLibraryPath\\\",\\\"data\\\":\\\"\\\"}]"
              },
              {
                "name": "spark.driver.extraLibraryPath",
                "value": ""
              },
              {
                "name": "spark.executor.extraLibraryPath",
                "value": ""
              }
            ]
          },
          {
            "name": "JDBCServer2x",
            "configurations": [
              {
                "name": "spark.shuffle.service.enabled",
                "value": "true"
              },
              {
                "name": "spark.sql.adaptive.enabled",
                "value": "false"
              },
              {
                "name": "spark.sql.adaptive.join.enabled",
                "value": "false"
              },
              {
                "name": "spark.sql.adaptive.skewedJoin.enabled",
                "value": "false"
              },
              {
                "name": "spark.ui.retainedJobs",
                "value": "100"
              },
              {
                "name": "spark.ui.retainedStages",
                "value": "200"
              },
              {
                "name": "spark.log.level",
                "value": "WARN"
              },
              {
                "name": "spark.executor.log.level",
                "value": "WARN"
              },
              {
                "name": "spark.eventlog.group.size",
                "value": "1g"
              }
            ]
          },
          {
            "name": "JobHistory2x",
            "configurations": [
              {
                "name": "spark.log.level",
                "value": "WARN"
              },
              {
                "name": "SPARK_DAEMON_MEMORY",
                "value": "1G"
              },
	      {
                "name": "spark.history.fs.cleaner.enabled",
                "value": "true"
              },
	      {
                "name": "spark.history.fs.cleaner.interval",
                "value": "1d"
              },
	      {
                "name": "spark.history.fs.cleaner.maxAge",
                "value": "1d"
              }
            ]
          }
        ],
        "name": "Spark2x",
        "configurations": []
      },
      {
        "roleList": [
          {
            "name": "JobHistoryServer",
            "configurations": [
              {
                "name": "GC_PROFILE",
                "value": "custom"
              },
              {
                "name": "hadoop.log.level",
                "value": "WARN"
              },
              {
                "name": "mapreduce.audit.log.level",
                "value": "WARN"
              },
              {
				"name": "JHS_FLOAT_IP", 
				"value": "{{JHS_FLOAT_IP}}", 
				"configFile": "ENV_VARS", 
				"overwrite": false 
			  }
            ]
          }
        ],
        "name": "Mapreduce",
        "configurations": [
          {
            "name": "yarn.log-aggregation.retain-seconds",
            "value": "86400"
          },
          {
            "name": "yarn.log-aggregation.retain-check-interval-seconds",
            "value": "17280"
          },
          {
            "name": "hadoop.log.level",
            "value": "WARN"
          },
          {
            "name": "mapreduce.audit.log.level",
            "value": "WARN"
          }
        ]
      },
      {
        "roleList": [
          {
            "name": "quorumpeer",
            "configurations": [
              {
                "name": "GC_OPTS",
                "value": "-Xms512M -Xmx1G -Xss512k  -XX:NewSize=64M -XX:MaxNewSize=64M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M"
              }
            ]
          }
        ],
        "name": "ZooKeeper",
        "configurations": [
		  {
			"name": "customized.quota",
            "value": "[{\\\"name\\\":\\\"/druid\\\",\\\"data\\\":\\\"20000\\\"}]"
		  }
		]
      }
    ]
  }
}