ambari2.6 blueprint, HA集群

1 问题

生产环境大数据集群一般采用多节点HA形式, 确保高可用

那么通过blueprint如何实现多节点HA的部署呢?

2 分析

  • HA本质还是在指定主机上部署规划组件
  • 创建HA, 需要知道组件对应的服务名称, 如HDFS组件(NameNode, JOURNALNODE, ZKFC)
  • 同时添加组件HA配置

不知道如何配置时, 可以先通过UI部署HA集群, 再使用API接口GET /api/v1/clusters/<集群名称>?format=blueprint导出集群信息, 保留必要的配置项目即可

3 方案

创建文件: cluster.json

注意

  • 关注hive数据库配置, 可直接通过yum自动安装 (提供yum源), 也可配置本地库
  • configurations配置项名称可通过已有ambari UI页面查看, 然后在json文件中自定义属性
{
	"Blueprints": {
		"blueprint_name": "N3-hdp26-ha",
		"stack_name": "HDP",
		"stack_version": "2.6"
	},
	"settings": [
		{
			"recovery_settings": []
		},
		{
			"service_settings": [
				{
					"name": "HIVE",
					"credential_store_enabled": "false"
				}
			]
		},
		{
			"component_settings": []
		}
	],
	"host_groups": [
		{
			"name": "master_mgmt",
			"components": [
				{
					"name": "METRICS_COLLECTOR"
				},
				{
					"name": "METRICS_GRAFANA"
				},
				{
					"name": "ZOOKEEPER_SERVER"
				},
				{
					"name": "JOURNALNODE"
				},
				{
					"name": "METRICS_MONITOR"
				},
				{
					"name": "HIVE_METASTORE"
				},
				{
					"name": "HIVE_SERVER"
				},
				{
					"name": "HCAT"
				},
				{
					"name": "WEBHCAT_SERVER"
				},
				{
					"name": "SLIDER"
				},
				{
					"name": "PIG"
				},
				{
					"name": "ZOOKEEPER_CLIENT"
				},
				{
					"name": "HDFS_CLIENT"
				},
				{
					"name": "YARN_CLIENT"
				},
				{
					"name": "MAPREDUCE2_CLIENT"
				},
				{
					"name": "HIVE_CLIENT"
				},
				{
					"name": "TEZ_CLIENT"
				},
				{
					"name": "DATANODE"
				},
				{
					"name": "NODEMANAGER"
				}
			],
			"cardinality": "1"
		},
		{
			"name": "master_nn1",
			"components": [
				{
					"name": "NAMENODE"
				},
				{
					"name": "ZKFC"
				},
				{
					"name": "METRICS_MONITOR"
				},
				{
					"name": "ZOOKEEPER_SERVER"
				},
				{
					"name": "RESOURCEMANAGER"
				},
				{
					"name": "APP_TIMELINE_SERVER"
				},
				{
					"name": "JOURNALNODE"
				},
				{
					"name": "HIVE_CLIENT"
				},
				{
					"name": "HDFS_CLIENT"
				},
				{
					"name": "YARN_CLIENT"
				},
				{
					"name": "ZOOKEEPER_CLIENT"
				},
				{
					"name": "SPARK2_CLIENT"
				},
				{
					"name": "MAPREDUCE2_CLIENT"
				},
				{
					"name": "TEZ_CLIENT"
				},
				{
					"name": "DATANODE"
				},
				{
					"name": "NODEMANAGER"
				}
			],
			"cardinality": "1"
		},
		{
			"name": "master_nn2",
			"components": [
				{
					"name": "METRICS_MONITOR"
				},
				{
					"name": "NAMENODE"
				},
				{
					"name": "ZKFC"
				},
				{
					"name": "RESOURCEMANAGER"
				},
				{
					"name": "HISTORYSERVER"
				},
				{
					"name": "ZOOKEEPER_SERVER"
				},
				{
					"name": "JOURNALNODE"
				},
				{
					"name": "HIVE_CLIENT"
				},
				{
					"name": "HDFS_CLIENT"
				},
				{
					"name": "YARN_CLIENT"
				},
				{
					"name": "ZOOKEEPER_CLIENT"
				},
				{
					"name": "SPARK2_JOBHISTORYSERVER"
				},
				{
					"name": "SPARK2_CLIENT"
				},
				{
					"name": "MAPREDUCE2_CLIENT"
				},
				{
					"name": "TEZ_CLIENT"
				},
				{
					"name": "DATANODE"
				},
				{
					"name": "NODEMANAGER"
				}
			],
			"cardinality": "1"
		}
	],
	"configurations": [
		{
			"mapred-site": {
				"properties": {
					"mapreduce.job.reduce.slowstart.completedmaps": "0.7",
					"mapreduce.map.output.compress": "true",
					"mapreduce.output.fileoutputformat.compress": "true"
				}
			}
		},
		{
			"yarn-site": {
				"properties": {
					"hadoop.registry.rm.enabled": "true",
					"hadoop.registry.zk.quorum": "%HOSTGROUP::master_nn1%:2181,%HOSTGROUP::master_nn2%:2181,%HOSTGROUP::master_mgmt%:2181",
					"yarn.log.server.url": "http://%HOSTGROUP::master_nn2%:19888/jobhistory/logs",
					"yarn.resourcemanager.address": "%HOSTGROUP::master_nn1%:8050",
					"yarn.resourcemanager.admin.address": "%HOSTGROUP::master_nn1%:8141",
					"yarn.resourcemanager.cluster-id": "yarn-cluster",
					"yarn.resourcemanager.ha.automatic-failover.zk-base-path": "/yarn-leader-election",
					"yarn.resourcemanager.ha.enabled": "true",
					"yarn.resourcemanager.ha.rm-ids": "rm1,rm2",
					"yarn.resourcemanager.hostname": "%HOSTGROUP::master_nn1%",
					"yarn.resourcemanager.hostname.rm1": "%HOSTGROUP::master_nn1%",
					"yarn.resourcemanager.hostname.rm2": "%HOSTGROUP::master_nn2%",
					"yarn.resourcemanager.recovery.enabled": "true",
					"yarn.resourcemanager.resource-tracker.address": "%HOSTGROUP::master_nn1%:8025",
					"yarn.resourcemanager.scheduler.address": "%HOSTGROUP::master_nn1%:8030",
					"yarn.resourcemanager.store.class": "org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore",
					"yarn.resourcemanager.webapp.address": "%HOSTGROUP::master_nn1%:8088",
					"yarn.resourcemanager.webapp.address.rm1": "%HOSTGROUP::master_nn1%:8088",
					"yarn.resourcemanager.webapp.address.rm2": "%HOSTGROUP::master_nn2%:8088",
					"yarn.resourcemanager.webapp.https.address": "%HOSTGROUP::master_nn1%:8090",
					"yarn.resourcemanager.webapp.https.address.rm1": "%HOSTGROUP::master_nn1%:8090",
					"yarn.resourcemanager.webapp.https.address.rm2": "%HOSTGROUP::master_nn2%:8090",
					"yarn.timeline-service.address": "%HOSTGROUP::master_nn1%:10200",
					"yarn.timeline-service.webapp.address": "%HOSTGROUP::master_nn1%:8188",
					"yarn.timeline-service.webapp.https.address": "%HOSTGROUP::master_nn1%:8190"
				}
			}
		},
		{
			"hive-site": {
				"properties": {
					"hive.exec.compress.output": "true",
					"hive.merge.mapfiles": "true",
					"hive.server2.tez.initialize.default.sessions": "true",
					"hive.server2.transport.mode": "http",
					"javax.jdo.option.ConnectionDriverName": "com.mysql.jdbc.Driver",
					"javax.jdo.option.ConnectionPassword": "password",
					"javax.jdo.option.ConnectionURL": "jdbc:mysql://192.168.1.10/hive?createDatabaseIfNotExist=true",
					"javax.jdo.option.ConnectionUserName": "hive"
				}
			}
		},
		{
			"hive-env": {
				"properties_attributes": {},
				"properties": {
					"hive_database": "Existing MySQL / MariaDB Database",
					"hive_ambari_database": "MySQL"
				}
			}
		},
		{
			"hdfs-site": {
				"properties": {
					"dfs.namenode.safemode.threshold-pct": "0.99",
					"dfs.client.failover.proxy.provider.mycluster": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider",
					"dfs.ha.automatic-failover.enabled": "true",
					"dfs.ha.fencing.methods": "shell(/bin/true)",
					"dfs.ha.namenodes.mycluster": "nn1,nn2",
					"dfs.namenode.http-address": "%HOSTGROUP::master_nn1%:50070",
					"dfs.namenode.http-address.mycluster.nn1": "%HOSTGROUP::master_nn1%:50070",
					"dfs.namenode.http-address.mycluster.nn2": "%HOSTGROUP::master_nn2%:50070",
					"dfs.namenode.https-address": "%HOSTGROUP::master_nn1%:50470",
					"dfs.namenode.https-address.mycluster.nn1": "%HOSTGROUP::master_nn1%:50470",
					"dfs.namenode.https-address.mycluster.nn2": "%HOSTGROUP::master_nn2%:50470",
					"dfs.namenode.rpc-address.mycluster.nn1": "%HOSTGROUP::master_nn1%:8020",
					"dfs.namenode.rpc-address.mycluster.nn2": "%HOSTGROUP::master_nn2%:8020",
					"dfs.namenode.shared.edits.dir": "qjournal://%HOSTGROUP::master_nn1%:8485;%HOSTGROUP::master_nn2%:8485;%HOSTGROUP::master_mgmt%:8485/mycluster",
					"dfs.nameservices": "mycluster"
				}
			}
		},
		{
			"core-site": {
				"properties": {
					"fs.trash.interval": "4320",
					"fs.defaultFS": "hdfs://mycluster",
					"hadoop.proxyuser.yarn.hosts": "%HOSTGROUP::master_nn1%,%HOSTGROUP::master_nn2%",
					"ha.zookeeper.quorum": "%HOSTGROUP::master_nn1%:2181,%HOSTGROUP::master_nn2%:2181,%HOSTGROUP::master_mgmt%:2181"
				}
			}
		}
	]
}

4 执行

blueprint安装步骤, 请参考 ambari2.6 blueprint, 创建单节点集群

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值