1.5.6、CDH 搭建Hadoop在安装之前(定制安装解决方案---使用Cloudera Manager模板创建CDH群集)
使用Cloudera Manager模板创建CDH群集
- 用于开发人员,测试和生产环境的重复群集。
- 快速为特定工作负载创建集群。
- 重现生产群集以进行测试和调试。
继续阅读:
导出群集配置
要创建群集模板,首先要从源群集导出配置。群集必须由Cloudera Manager 5.7或更高版本运行和管理。
- 您创建的任何主机模板都用于导出配置。如果您不想在新群集中使用这些模板,请将其删除。在Cloudera Manager中,转到“ 主机” >“ 主机模板”,然后单击要 删除的主机模板旁边的“删除”。
- 删除Cloudera Manager安装向导创建的所有主机模板。他们通常有一个名字模板 - 1)。
- 运行以下命令将JSON配置文件下载到方便的位置进行编辑:
- curl -u admin_username:admin_user_password
- “http:// Cloudera Manager URL / api / v12 / clusters / Cluster name / export”>
- path_to_file / file_name .json
例如:
- curl -u adminuser:adminpass“http://myCluster-1.myDomain.com:7180/api/v12/clusters/Cluster1/export”> myCluster1-template.json
注意:添加?exportAutoConfig = TRUE上述命令的参数,包括自动配置所做的配置。这些配置仅供参考,在将模板导入新群集时不会使用。例如:
- curl -u admin_username:admin_user_password
- “http:// Cloudera Manager URL / api / v12 / clusters / Cluster name / export”>
- path_to_file / file_name .json?exportAutoConfig = true
- curl -u admin_username:admin_user_password
准备新群集
- 已安装并配置Cloudera Manager数据库。
- 已安装并运行Cloudera Manager 5.7或更高版本。
- 安装了所有必需的CDH服务数据库。请参阅步骤4:安装和配置数据库。
- JDK安装在所有群集主机上。
- Cloudera Manager Agent已在所有群集主机上安装和配置。
- 如果源群集使用Kerberos,则新群集必须具有在Cloudera Manager中配置的KDC属性和权限。
- 如果源群集使用程序包来安装CDH和托管服务,请在导入模板之前手动安装这些程序包。请参阅使用Cloudera Manager管理软件安装。
创建模板
"clusterName" : "<changeme>",
"hosts" : [ {
"hostName" : "<changeme>",
"hostTemplateRefName" : "<changeme>",
"roleRefNames" : [ "HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e" ]
}, {
"hostName" : "<changeme>",
"hostTemplateRefName" : "<changeme>"
}, {
"hostNameRange" : "<HOST[0001-0002]>",
"hostTemplateRefName" : "<changeme>"
} ],
"variables" : [ {
"name" : "HDFS-1-NAMENODE-BASE-dfs_name_dir_list",
"value" : "/dfs/nn"
}, {
"name" : "HDFS-1-SECONDARYNAMENODE-BASE-fs_checkpoint_dir_list",
"value" : "/dfs/snn"
}, {
"name" : "HIVE-1-hive_metastore_database_host",
"value" : "myCluster-1.myDomain.com"
}, {
"name" : "HIVE-1-hive_metastore_database_name",
"value" : "hive1"
}, {
"name" : "HIVE-1-hive_metastore_database_password",
"value" : "<changeme>"
}, {
"name" : "HIVE-1-hive_metastore_database_port",
"value" : "3306"
}, {
"name" : "HIVE-1-hive_metastore_database_type",
"value" : "mysql"
}, {
"name" : "HIVE-1-hive_metastore_database_user",
"value" : "hive1"
}, {
"name" : "HUE-1-database_host",
"value" : "myCluster-1.myDomain.com"
}, {
"name" : "HUE-1-database_name",
"value" : "hueserver0be88b55f5dedbf7bc74d61a86c0253e"
}, {
"name" : "HUE-1-database_password",
"value" : "<changeme>"
}, {
"name" : "HUE-1-database_port",
"value" : "3306"
}, {
"name" : "HUE-1-database_type",
"value" : "mysql"
}, {
"name" : "HUE-1-database_user",
"value" : "hueserver0be88b5"
}, {
"name" : "IMPALA-1-IMPALAD-BASE-scratch_dirs",
"value" : "/impala/impalad"
}, {
"name" : "KUDU-1-KUDU_MASTER-BASE-fs_data_dirs",
"value" : "/var/lib/kudu/master"
}, {
"name" : "KUDU-1-KUDU_MASTER-BASE-fs_wal_dir",
"value" : "/var/lib/kudu/master"
}, {
"name" : "KUDU-1-KUDU_TSERVER-BASE-fs_data_dirs",
"value" : "/var/lib/kudu/tserver"
}, {
"name" : "KUDU-1-KUDU_TSERVER-BASE-fs_wal_dir",
"value" : "/var/lib/kudu/tserver"
}, {
"name" : "MAPREDUCE-1-JOBTRACKER-BASE-jobtracker_mapred_local_dir_list",
"value" : "/mapred/jt"
}, {
"name" : "MAPREDUCE-1-TASKTRACKER-BASE-tasktracker_mapred_local_dir_list",
"value" : "/mapred/local"
}, {
"name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_host",
"value" : "myCluster-1.myDomain.com:3306"
}, {
"name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_name",
"value" : "oozieserver0be88b55f5dedbf7bc74d61a86c0253e"
}, {
"name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_password",
"value" : "<changeme>"
}, {
"name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_type",
"value" : "mysql"
}, {
"name" : "OOZIE-1-OOZIE_SERVER-BASE-oozie_database_user",
"value" : "oozieserver0be88"
}, {
"name" : "YARN-1-NODEMANAGER-BASE-yarn_nodemanager_local_dirs",
"value" : "/yarn/nm"
}, {
"name" : "YARN-1-NODEMANAGER-BASE-yarn_nodemanager_log_dirs",
"value" : "/yarn/container-logs"
} ]
}
- 更新 hosts 部分。
如果您在源群集中定义了主机模板,它们将显示在 hostTemplatesJSON模板的一部分。对于不使用主机模板的主机,导出过程会根据角色分配创建主机模板,以便于创建新群集。在任何一种情况下,您必须匹配中的项目hostTemplates 部分与 hosts 中的部分 instantiator 部分。这是一个样本 hostTemplates 来自与JSON文件相同的部分 instantiator 部分,上面:
"refName" : "HostTemplate-0-from-myCluster-1.myDomain.com",
"cardinality" : 1,
"roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-GATEWAY-BASE", "HBASE-1-HBASETHRIFTSERVER-BASE", "HBASE-1-MASTER-BASE", "HDFS-1-BALANCER-BASE", "HDFS-1-GATEWAY-BASE", "HDFS-1-NAMENODE-BASE", "HDFS-1-NFSGATEWAY-BASE", "HDFS-1-SECONDARYNAMENODE-BASE", "HIVE-1-GATEWAY-BASE", "HIVE-1-HIVEMETASTORE-BASE", "HIVE-1-HIVESERVER2-BASE", "HUE-1-HUE_LOAD_BALANCER-BASE", "HUE-1-HUE_SERVER-BASE", "IMPALA-1-CATALOGSERVER-BASE", "IMPALA-1-STATESTORE-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KS_INDEXER-1-HBASE_INDEXER-BASE", "KUDU-1-KUDU_MASTER-BASE", "MAPREDUCE-1-GATEWAY-BASE", "MAPREDUCE-1-JOBTRACKER-BASE", "OOZIE-1-OOZIE_SERVER-BASE", "SOLR-1-SOLR_SERVER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SPARK_ON_YARN-1-SPARK_YARN_HISTORY_SERVER-BASE", "SQOOP-1-SQOOP_SERVER-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-GATEWAY-BASE", "YARN-1-JOBHISTORY-BASE", "YARN-1-RESOURCEMANAGER-BASE", "ZOOKEEPER-1-SERVER-BASE" ]
}, {
"refName" : "HostTemplate-1-from-myCluster-4.myDomain.com",
"cardinality" : 1,
"roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
}, {
"refName" : "HostTemplate-2-from-myCluster-[2-3].myDomain.com",
"cardinality" : 2,
"roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
} ]
的价值 roleConfigGroupsRefNames 指示将哪些角色组分配给主机。
- 找到中的条目 hosts 部分 instantiator 您希望安装角色的位置。
- 复制的值 refName 为了价值 hostTemplateRefName。
- 在新集群中输入主机名作为值 主机名。某些主机部分可能会改为使用hostNameRange对于具有多个具有相同角色集的主机的群集。使用以下方法之一指示一系列主机:
- 括号; 例如, myhost[1-4].foo.com
- 逗号分隔的主机名字符串; 例如,host-1.domain,host-2.domain,host-3.domain
"refName" : "HostTemplate-0-from-myCluster-1.myDomain.com",
"cardinality" : 1,
"roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-GATEWAY-BASE", "HBASE-1-HBASETHRIFTSERVER-BASE", "HBASE-1-MASTER-BASE", "HDFS-1-BALANCER-BASE", "HDFS-1-GATEWAY-BASE", "HDFS-1-NAMENODE-BASE", "HDFS-1-NFSGATEWAY-BASE", "HDFS-1-SECONDARYNAMENODE-BASE", "HIVE-1-GATEWAY-BASE", "HIVE-1-HIVEMETASTORE-BASE", "HIVE-1-HIVESERVER2-BASE", "HUE-1-HUE_LOAD_BALANCER-BASE", "HUE-1-HUE_SERVER-BASE", "IMPALA-1-CATALOGSERVER-BASE", "IMPALA-1-STATESTORE-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KS_INDEXER-1-HBASE_INDEXER-BASE", "KUDU-1-KUDU_MASTER-BASE", "MAPREDUCE-1-GATEWAY-BASE", "MAPREDUCE-1-JOBTRACKER-BASE", "OOZIE-1-OOZIE_SERVER-BASE", "SOLR-1-SOLR_SERVER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SPARK_ON_YARN-1-SPARK_YARN_HISTORY_SERVER-BASE", "SQOOP-1-SQOOP_SERVER-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-GATEWAY-BASE", "YARN-1-JOBHISTORY-BASE", "YARN-1-RESOURCEMANAGER-BASE", "ZOOKEEPER-1-SERVER-BASE" ]
}, {
"refName" : "HostTemplate-1-from-myCluster-4.myDomain.com",
"cardinality" : 1,
"roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
}, {
"refName" : "HostTemplate-2-from-myCluster-[2-3].myDomain.com",
"cardinality" : 2,
"roleConfigGroupsRefNames" : [ "FLUME-1-AGENT-BASE", "HBASE-1-REGIONSERVER-BASE", "HDFS-1-DATANODE-BASE", "HIVE-1-GATEWAY-BASE", "IMPALA-1-IMPALAD-BASE", "KAFKA-1-KAFKA_BROKER-BASE", "KUDU-1-KUDU_TSERVER-BASE", "MAPREDUCE-1-TASKTRACKER-BASE", "SPARK_ON_YARN-1-GATEWAY-BASE", "SQOOP_CLIENT-1-GATEWAY-BASE", "YARN-1-NODEMANAGER-BASE" ]
} ],
"instantiator" : {
"clusterName" : "myCluster_new",
"hosts" : [ {
"hostName" : "myNewCluster-1.myDomain.com",
"hostTemplateRefName" : "HostTemplate-0-from-myCluster-1.myDomain.com",
"roleRefNames" : [ "HDFS-1-NAMENODE-c975a0b51fd36e914896cd5e0adb1b5b" ]
}, {
"hostName" : "myNewCluster-5.myDomain.com",
"hostTemplateRefName" : "HostTemplate-1-from-myCluster-4.myDomain.com"
}, {
"hostNameRange" : "myNewCluster-[3-4].myDomain.com",
"hostTemplateRefName" : "HostTemplate-2-from-myCluster-[2-3].myDomain.com"
} ],
{
"refName": "HDFS-1-NAMENODE-0be88b55f5dedbf7bc74d61a86c0253e",
"roleType": "NAMENODE"
}
]
- (可选)更改群集的显示名称。编辑以。开头的行“显示名称”(靠近JSON文件的顶部); 例如:
- “displayName”:“myNewCluster”,
将模板导入新群集
- 以root身份登录Cloudera Manager服务器。
- 运行以下命令以导入模板。如果在源群集中配置了远程存储库URL,请附加命令 ?addRepositories=true。
@path_to_template/template_filename.json
http://admin_user:admin_password@cloudera_manager_url:cloudera_manager_port/api/v12/cm/importClusterTemplate
- {
- "id" : 17,
- "name" : "ClusterTemplateImport",
- "startTime" : "2016-03-09T23:44:38.491Z",
- "active" : true,
- "children" : {
- "items" : [ ]
- }
- curl -X POST -H "Content-Type: application/json" -d @myTemplate.json http://admin:admin@myNewCluster-1.mydomain.com:7182/api/v12/cm/importClusterTemplate
- curl -X POST -H "Content-Type: application/json" -d @myTemplate.json http://admin:admin@myNewCluster-1.mydomain.com:7182/api/v12/cm/importClusterTemplate?addRepositories=true
- 在Web浏览器中打开新群集的Cloudera Manager,然后单击Cloudera Manager徽标转到主页。
- 单击“ 所有最近的命令”选项卡。
如果导入正在进行,您应该看到标记为“ 导入群集模板”的链接。单击链接以查看导入的进度。
如果任何命令失败,请更正问题并单击“ 重试”。您可能需要在Cloudera Manager中编辑一些属性。
导入模板后,Cloudera Manager将应用自动配置规则,为各种角色设置内存和CPU分配等属性。如果新群集具有不同的硬件或操作要求,则可能需要修改这些值。
示例Python代码
您可以使用以Python或其他语言编写的客户端以编程方式执行导出和导入集群模板的步骤。(你也可以使用卷曲 上面提供的命令。)
- resource = ApiResource(“myCluster-1.myDomain.com”,7180,“admin”,“admin”,version = 12)
- cluster = resource.get_cluster(“Cluster1”);
- template = cluster.export(False)
- pprint(template)
,打开('〜/ cluster-template.json')作为data_file:
data = json.load(data_file)
template = ApiClusterTemplate(资源).from_json_dict(data,resource)
cms = ClouderaManager(资源)
cms.import_cluster_template(模板)
1.5.6、CDH 搭建Hadoop在安装之前(定制安装解决方案---使用Cloudera Manager模板创建CDH群集)的更多相关文章
- 2.2、CDH 搭建Hadoop在安装(安装Java Development Kit)
第2步:安装Java Development Kit 要安装Oracle JDK,您可以使用Cloudera Manager安装Cloudera提供的版本,也可以直接安装Oracle的其他版本. 继续 ...
- 1.4、CDH 搭建Hadoop在安装之前(推荐的群集主机和角色分配)
推荐的群集主机和角色分配 要点:本主题描述了Cloudera Manager管理的CDH群集的建议角色分配.您为部署选择的实际分配可能会有所不同,具体取决于工作负载的类型和数量,群集中部署的服务,硬件 ...
- 2.5、CDH 搭建Hadoop在安装(设置Cloudera Manager数据库)
步骤5:设置Cloudera Manager数据库 Cloudera Manager Server包含一个可以为自己创建和配置数据库的脚本.该脚本可以: 创建Cloudera Manager Serv ...
- 2.6、CDH 搭建Hadoop在安装(安装CDH和其他软件)
第6步:安装CDH和其他软件 设置Cloudera Manager数据库后,启动Cloudera Manager Server,然后登录Cloudera Manager Admin Console: ...
- 2、CDH 搭建Hadoop在安装(安装Cloudera Manager,CDH和托管服务)
安装Cloudera Manager,CDH和托管服务 建议使用此过程为生产环境安装Cloudera Manager和CDH.对于非生产“易于安装”,请参阅安装概念证明群集. 在开始安装之前,请确保已 ...
- 1.5.3、CDH 搭建Hadoop在安装之前(定制安装解决方案---创建群集主机的虚拟映像)
创建群集主机的虚拟映像 您可以使用预先部署的Cloudera软件创建虚拟机映像,例如PXE启动映像,Amazon AMI和Azure VM映像,这些映像可用于快速启动虚拟机.这些图像使用parcel来 ...
- 1、CDH 搭建Hadoop在安装之前(存储空间规划)
Cloudera Manager的存储空间规划 最低要求角色: 完全管理员 Cloudera Manager跟踪许多后台进程中的服务,作业和应用程序的度量标准.所有这些指标都需要存储.根据组织的大小, ...
- 大数据 -- Cloudera Manager(简称CM)+CDH构建大数据平台
一.Cloudera Manager介绍 Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装.中心化管理.集群监控.报警等功 ...
- 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群
本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...
随机推荐
- django-chunks文件
with open(file_save_path, 'wb') as f: for chunk in file_content.chunks(): f.write(chunk)
- [Unity动画]04.Avatar Mask
参考链接: https://www.cnblogs.com/hammerc/p/4832637.html Avatar Mask主要用于动画层融合.例如说,边跑边举起东西,这个实际上就是下半身播放跑步 ...
- <Linux> 文件夹右下角有锁,解锁
sudo chown -R $USER 文件夹路径 例如:sudo chown -R $USER ~/scala
- pom格式
参考: https://www.jianshu.com/p/0e3a1f9c9ce7 https://blog.csdn.net/u012152619/article/details/51485297 ...
- java中的排序--排序容器_TreeSet与TreeMap
1.TreeSet:数据元素可以排序且不可重复. 对比: (1)Set接口:HashSet,元素必须重写hashcode和equals方法. (2)TreeSet:只要可以排序即可.去重:比较等于0即 ...
- Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx]
ERROR - Context initialization failed org.springframework.beans.factory.parsing.BeanDefinitionParsin ...
- WebService简单教程
一.简介 1.什么是WebService? WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Htt ...
- python的字符串分片
s = "abcdefg" 对于这样一个字符串进行操作.分片格式为: s[i:j:k] 其中,i和j分别代表子串的起始和末尾:-1则代表倒数第一个元素,同理-2代表倒数第二个元素. ...
- [C基础修炼]如何用vs2017写一个C语言hello world程序
从微软官网下载vs2017安装后,打开 文件>新建>项目>Visual C++空项目(选择名称,位置)确定>找到源文件 鼠标右击>添加>新建项>Visual ...
- leetcode1024
class Solution(object): def videoStitching(self, clips: 'List[List[int]]', T: int) -> int: li = s ...