《阿里云:CDP企业数据云平台:从入门到实践(2023)(270页).pdf》由会员分享,可在线阅读,更多相关《阿里云:CDP企业数据云平台:从入门到实践(2023)(270页).pdf(270页珍藏版)》请在三个皮匠报告上搜索。
1、封面页(此页面将由下图全覆盖,此为编辑稿中的示意,将在终稿 PDF 版中做更新)目录 Cloudera CDP 产品介绍.4 CDP/HDP 何去何从.23 Hive3 新特性.62 CDP 平台的安全和治理.78 CDP 集群管理.115 如何访问 CDP 集群.142 如何迁移 CDH/HDP 到 CDP.148 HDFS 迁移到 CDP.160 Hive 迁移到 CDP.173 HBase 迁移到 CDP.192 CDP 之操作型数据库.206 CDP 之数据存储.226 CDP 之数据仓库.255 Cloudera CDP 产品介绍 4 Cloudera CDP 产品介绍 一、阿里云+
2、Cloudera 产品介绍 1.阿里云+Cloudera 大数据方案介绍 Cloudera 公司的几款产品在 2021 年 FORRESTER WAVES 中的位置都是 Strong Performers 或者 Leader,展现出产品被市场认可的程度。Cloudera 公司的核心产品是 Cloudera Data Platform(CDP),它整合了 CDH 和HDP 两者的优势,并根据业界的最新技术趋势形成的新平台,提供了业界首个混合数据云平台产品。CDP 在混合云和多云环境中可以提供强大的自助服务分析和弹性,给 IT 和数据管理员所需要的复杂性、细粒度的安全与治理策略。Cloudera
3、最新的许可政策 Cloudera 的许可政策类似于成熟的 Red Hat 开源模型。Cloudera CDP 产品介绍 5 该模型在市场上广为人知,并被全世界的企业所接受。所有产品源均将获得 OSI 批准的许可证(Apache Software License,ASL 或GNU Affero General Public License,AGPL)的许可。访问从 Cloudera 获得的所有产品的二进制文件和源代码都需要订阅协议,获取到产品许可证和访问账户才能进行访问。由 Apache Software Foundation 托管的我们为之贡献的所有开源项目将继续是 ASF 管辖的项目。我们的
4、源代码贡献模型保持不变,并且仍然是第三方项目的第一个上游。第三方项目存储库的公共资源仅在上游。Cloudera 终止提供社区版 CDH 和 HDP 的下载和维护 2021 年 2 月 1 日,Cloudera 终止 CDH 和 HDP 社区版的免费下载,所有的 CDH和 HDP 产品也逐渐进入了结束生命周期的支持阶段。HDP 2.6.x/CDH 5.x 覆盖了约 70的客户群,EOS 时间 2020 年 12 月终止生命周期和支持。HDP3:2021 年 12 月终止生命周期和支持。CDH 6.3:2022 年 3 月终止生命周期和支持。Cloudera CDP 产品介绍 6 售卖形态:基于阿
5、里云如何售卖 CDP?公有云形态:半托管模式的 CDP Cloudera CDP 混合数据云平台是企业版 CDH 的全新商业化升级产品,是阿里云和Cloudera 联合打造阿里云上的半托管形态的大数据平台。该平台可以灵活地运行各种企业工作负载(包括实时摄取和分析、批处理、交互式 SQL 查询和分析、企业搜索、高级分析和机器学习等),支持从边缘计算到人工智能的多功能数据分析,提供企业级的安全模型来保障客户数据安全。基于阿里云部署的 Cloudera CDP 企业数据云提供给用户开箱即用的 CDP 平台,减少了用户对平台搭建的时间成本和人工成本,并大幅度降低后续的运维成本。专有云 On-Premi
6、se:线下转售三大套件(CDP、CDF、CDSW)Cloudera CDP 产品介绍 7 阿里云的交付模式:公有云 线下输出 部署开通 阿里云 选项 1:Cloudera 原厂服务 选项 2:GTS 运维 Tier1/Tier2:阿里云 Tier 3:cloudera 产品默认带 7*24 原厂远程支持服务 现场服务可购买 PS 应用交付 合作伙伴 合作伙伴 二、公有云方案:云上 CDP 1.基于阿里云部署的 CDP 1)产品核心 部署商业版 CDP,包括完整的 Cloudera Manager 及 Cloudera Runtime。基于多种规格的 ECS,开箱即用,支持云上集群扩展能力以及数
7、据湖。与阿里云产品集成互通,提供高安全、合规和高可用的云上 CDP 平台,降低复杂性。Cloudera CDP 产品介绍 8 无需配置的正版软件及正版 license 许可证。2)产品引擎与服务 100%兼容开源 Hadoop 生态,经阿里云与 Cloudera 联合研发性能优化。提供商业化 SLA 保障与 7*24 小时的阿里云和 Cloudera 专家支持服务。提供专家服务及咨询,如平台迁移、数据迁移、版本升级、参数调优等。2.一致的安全与治理-SDX 1)专为随时随地进行多功能分析而设计 Cloudera CDP 产品介绍 9 安全性:动态细粒度的访问控制始终应用于所有云和数据中心。包括
8、全栈加密和密钥管理、动态行过滤和动态列掩码。治理:跨平台应用的企业级审计、数据血缘和治理功能,具有丰富的合作伙伴集成扩展性。元数据:利用所有元数据(结构、运营、业务和社交)建立信息资产,以提高可用性、信任度和价值。目录:用于管理和使用跨越所有分析和部署的数据资产的单一窗格。智能:洞悉平台中如何使用数据、元数据和分析,从而为优化提供建议和自动化。2)SDX 提供 通过在所有云和数据中心中一致地应用动态细粒度访问控制实现安全性。包括全栈加密和密钥管理。通过跨平台应用的企业级审计、沿袭和治理功能进行治理,并具有丰富的合作伙伴集成扩展性。Cloudera CDP 产品介绍 10 还有智能,可以洞悉平台
9、中如何使用数据,元数据和分析,从而为优化提供建议和自动化。我们从最广泛的意义上利用元数据:不仅是您称为架构的结构类型,而且还包括运营、业务和社交方面的元数据,建立信息资产以提高可用性,信任度和价值。最后,SDX 提供的数据目录是一个统一的窗格,用于管理和使用涵盖所有分析和部署的数据资产。3.统一版本(CDPCloudera Data Platform)CDP整合 CDH 和 HDP 两者的优势。CDP PVC 基础版功能地图。Cloudera CDP 产品介绍 11 CDP 针对 CDH/HDP 用户的新功能。CDH 客户的新功能 策略和授权 动态行过滤和动态列掩码 基于属性的访问控制 Spa
10、rkSQL 细粒度的访问控制 Sentry 到 Ranger 的迁移工具 数据治理 元数据、血缘和监管链,高级数据发现和业务词汇表 Navigator 到 Atlas 的迁移,提高了性能和可伸缩性 流媒体 支持与 HDFS,AWS S3 和 Kafka 流的 Kafka Connect 对 Kafka 集群的集群管理和复制支持 使用 Cruise Control 在集群之间存储和访问架构以及重新平衡集群 运营数据库 支持具有完整 ACID 事务功能的标准 SQL 二级索引 星型 Schema 支持 基于表的视图 数据仓库 Hive-on-Tez 提供更好的 ETL 性能 ACID 事务,ANS
11、I 2016 SQL 支持,主要性能改进 查询结果缓存 物化视图 改进的 CBO,矢量化覆盖率 存储 Apache Ozone 提供 HDFS 30 倍的可扩展性,支持 100 亿个对象 S3 原生支持 与 Kafka 和 Nifi 的集成 安全 使用 Knox 的基于网关的 SSO 支持 Ranger KMS-KeyTrustee 集成 支持新的 Key HSM 版本 Cloudera CDP 产品介绍 12 HDP 客户的新功能 管理 虚拟私有集群(VPC)自动传输加密设置 针对管理员的细粒度 RBAC 简化的维护工作流程 搜索 在非结构化数据上基于相关性的文本搜索(text,pdf,.j
12、pg.)数 据 仓 库(Impala)更适合 Data Mart 迁移用例(交互式,BI 样式查询)能够查询大型集群中的大量数据(“大数据”)集群环境中的分布式查询,方便扩展 与 Kudu 集成以获取快速数据并为策略提供 Ranger 用于大数据处理和分析的单一系统,因此客户可以避免仅用于分析的昂贵的建模和 ETL 查询编辑器 内置 SQL 编辑器,可自动完成智能查询 共享查询,图表结果并下载任何数据库 轻松搜索,浏览,导入数据集或作业 存储 Apache Kudu-更好的性能,可快速更改/更新数据。通过 Kudu 和 Impala 报告更新支持-Kudu+Spark 的实时和流式应用程序-时
13、间序列分析,事件分析和实时数据仓库以最智能的自动完成功能提供最佳的查询体验 Apache Ozone 提供 HDFS 30 倍的可扩展性,支持 100 亿个对象 S3 原生支持 加密 Auto-TLS 功能可自动执行启用 TLS 加密所需的所有步骤 Ranger KMS 与 Key Trustee Server 集成以提供额外的密钥提供程序存储 使用 NavEncrypt 进行静态加密 CDP 大数据组件列表。CDP Private Cloud Base7.1 Cloudera Manager 7.3 Hadoop 3.1 Spark 2.4.5/3 Hive 3.1 Impala 3.4 O
14、ozie 5.1 Hue 4.5 Ranger 2.1 Atlas 2.1 Kafka Schema Registry 0.8 HBase 2.2 Phoenix 5.1 Kudu 1.13 Sqoop 1.4.7 Parquet 1.10 Avro 1.8 ORC 1.5 Zookeeper 3.5 Solr 8.4 Cruise Control 2.0 Tez 0.9 Key HSM 7.1 Knox 1.3 Livy 0.7 Navigator Encrypt 7.1 Ranger KMS 7.1 Zeppelin 0.8.2 Hive Warehouse Connector 1.0 K
15、afka 2.5 Streams Replication Mgr 2.1 Cloudera CDP 产品介绍 13 Streams Messaging Mgr 1.0 Key Trustee Server 7 Ozone 1.0 Kafka Connect 2.4 RHEL/CENTOS/OEL 7.6,7.7,7.8,7.9 Ubuntu 18.04 SLES 12SP5 JDK 1.8/11 MySQL 5.7/8 Oracle DB 12.2/19.3 PostgreSQL 10,11.x,12 Maria DB 10.2 从 CDP PvC Base 7.0 升级 从 CDH 5.13
16、-5.16 升级 从 HDP 2.6.5 升级 从 HDP 3.1 升级 从 CDH6 升级 CDP 大数据组件列表简化管理的紧密结合的平台。公有云客户:1.2 倍成本带来三大收益。Cloudera CDP 产品介绍 14 三、专有云方案:CDP、CDF、CDSW 1.CLOUDERA-混合数据云 On-Premise(专有云)整体方案,CDP/CDF/CDSW 2.Cloudera Data Flow从边缘到云的实时流数据管理 DATAFLOW:它由 Apache NiFi 提供支持,使开发人员能够以任何结构连接到任何地方的任何数据源,对其进行处理,并使用低代码创作体验交付到任何目的地。Cl
17、oudera CDP 产品介绍 15 STREAM PROCESSING:它由 Apache Flink 和 Kafka 提供支持,提供完整的企业级流管理和状态处理解决方案。借助对 SQL 等行业标准接口的支持,开发人员、数据分析师和数据科学家可以轻松构建各种混合实时应用程序。CLOUDERA SDX:使用Apache Ranger和Apache Atlas使用相同的工具保护、监控和管理您的流式处理工作负载。3.Cloudera Data Science Workbench(CDSW)CDSW-机器学习:覆盖从边缘到 AI 的场景。专有云线下客户,弥补 CDH 三大不足。更多组件和更高版本?C
18、DP 新增组件包括 Zeppelin,Livy,Phoenix,SMM,Knox,ORC,Ranger和 Atlas 等等。?更多的企业管理。Cloudera CDP 产品介绍 16 企业级安全和管理?CDP 的 Apache Ranger 提供了新的安全功能(动态行过滤和列掩码)。同时借助 Apache Atlas,CDP 改进了数据资产管理功能,帮助企业实现 PCI 和GDPR 标准。?更多的企业管理平台集成。版本持续更新更长时间 EoS 时间比较:?CDH 6.3:2022 年 3 月。后续仅有维护版本。?CDP 7.1:2023 年 5 月。产品线持续更新。四、典型场景 1.为什么选择
19、 CDP?许可证 renew+硬件更新的机会。HDP 2.6.x/CDH 5.x 覆盖了约 70的客户群。CDH、HDP EoS。运行这些软件的客户将需要升级到受支持的版本。Cloudera CDP 产品介绍 17 2.阿里云 CDP 产品客户价值 1)更快、更高效、更安全 2)重大功能增强/性能改进 数据工程:Spark3 性能提升 2 倍;支持 Nvidia GPU 卡,性能再提升 3-7 倍。数据仓库:Impala 性能提升 2 到 7 倍;新执行引擎 Hive on Tez,支持 ACID、物化视图,性能提升 5 倍以上。运营数据库:支持 SQL 和 No SQL 多种模式,吞吐量性能
20、提高 15-20%。Cloudera CDP 产品介绍 18 流处理:完善的集群管理,复制,流量控制。3)安全合规和售后支持 基于 Ranger 提供统一的细粒度访问控制,动态行过滤和列掩码。基于 Atlas 提供完善的元数据、血缘和监管链,高级数据发现和业务词汇表。持续修复已报的 CVE 安全漏洞。专家支持服务,快速解决使用问题,用户专注业务。4)不升级的影响 旧平台功能/性能/安全受限,无法满足部分应用需求和国家/行业合规性需求。没有售后支持,应用无法放心的广泛应用于生产,影响业务创新。5)CDP7.1 VS CDH6.3 更高版本 CDP 的 HDFS,Hive,HBase,Spark,
21、Kafka 和 Solr 等组件版本较新。更多组件 CDP 新增组件包括 Zeppelin,Livy,Phoenix,SMM,Knox,ORC,Ranger 和 Atlas等等。更长时间 EoS 时间比较:?CDH 6.3:2022 年 3 月。后续仅有维护版本。?CDP 7.1:2023 年 5 月。产品线持续更新。Cloudera CDP 产品介绍 19 安全合规 CDP 的 Apache Ranger 提供了新的安全功能(动态行过滤和列掩码)。同时借助Apache Atlas,CDP 改进了数据资产管理功能,帮助企业实现 PCI 和 GDPR 标准。更高扩展 Apache Hadoop
22、Ozone 是一个分布式 KV 存储,旨在实现数十亿个规模的文件扩展,远远超过当前 Namenode 文件上限(300M)。同时,Ozone 能与 HDFS 共享数据节点实现无缝迁移。更易管理 CM7.1 支持在 cgroup 中直接启用新配置。而在 C6 中必须重新启动集群才能更新cgroup 配置。另外,CDP 的 ZK 新版本修复了与 jackson-databind、Jetty、log4j相关的 17 个安全漏洞。新 Hive3 体验 Hive on Tez 提供更好的 ETL 性能,同时支持 ACID,极大简化事务处理,兼容 ANSI SQL 2016 标准。另外,Data Anal
23、ytics Studio 能够可视化展示 HiveSQL 对应的 DAG分解图。新 Spark 体验 CDP 预装 Spark 2.4.5,同时支持并行安装 Spark3.0。可以体验 Spark SQL 自适应执行和动态分区裁剪等功能。新的队列管理 CDP 的 YARN Queue Manager 使用 Capacity Scheduler,支持 GPU、Node Labels、GlobalScheduling,同时采取更加灵活的 Placement Policy。多种部署方式:支持公有云/本地部署,混合云部署 Cloudera CDP 产品介绍 20 6)CDP 公有云应用场景 现代数据库
24、 运营数据库 Cloudera CDP 产品介绍 21 准实时分析 流式处理和分析 升级现有集群 选项 A 步骤 1:将现有集群升级到 CDP PVC Base,从而基于现有数据创建 SDX 环境。Cloudera CDP 产品介绍 22 步骤 2:安装 CDP 私有云并使用“体验”构建新应用程序。步骤 3:使用工作负载管理器将关键工作负载从 CDP 数据中心版集群智能迁移到CDP 私有云体验。选项 B 步骤 1:在新硬件上安装 CDP 数据中心,并使用 Replication Manager 从现有集群中复制数据、元数据和策略以创建 SDX 环境。步骤 2:安装 CDP 私有云并使用“体验”
25、构建新应用程序。步骤 3:使用工作负载管理器将关键工作负载从 CDH/HDP 集群智能迁移到 CDP 私有云体验。CDP/HDP 何去何从 23 CDP/HDP 何去何从 一、CDH/HDP 平台现状 1.Cloudera 公司简介Cloudera 公司于 2008 年成立,2014 年进入中国,肯睿(上海)软件有限公司,当时的主要代表产品:CDH 是全球最受欢迎的 Hadoop 发行版,100%开源。2019 年 1 月 3 日,Cloudera 和 Hortonworks 正式合并,合并后 Cloudera 公司整合已有产品和最新的技术,提供端到端的混合数据云平台产品。在 Cloudera
26、,我们相信数据可以使今天的不可能,在明天成为可能。Cloudera提供的混合数据平台具有安全数据管理和可移植的云原生数据分析。我们使人们能够转换复杂的数据随时随地更快、更轻松地获得可行的洞察力,以增强业务性能并超出预期。Cloudera 助力医院更好地治疗癌症,保护金融机构免受欺诈和网络犯罪的侵害,并帮助人类到达火星,等等不胜枚举。由开源社区的不懈创新做支撑,Cloudera 为世界各地的公司推进数字化转型,使每个人都可以轻松访问数据并进行分析。2021 年 7 月,Cloudera 中国和阿里云正式战略合作,并发布基于阿里云部署的 Cloudera CDP 混合数据平台产品。CDP/HDP
27、何去何从 24 Cloudera 和 Hortonworks 两家公司合并成新的 Cloudera 之后,两家公司的代表产品 CDH 和 HDP 在产品功能上存在重叠性及差异性,再加上科技的发展和一些技术(云计算、计算和存储分离、K8S 容器技术、流式计算和人工智能)变的成熟,Cloudera 将 CDH 和 HDP 进行融合,并增加了新功能,形成了新的产品 CDP。Cloudera Data Platform(CDP)是一种混合数据平台,旨在实现无与伦比的自由选择任何云、任何分析、任何数据。CDP 提供在数据中心和多个数据云之间双向安全移动应用程序、数据和用户的自由,无论您的数据位于何处。这
28、一切都归功于现代数据架构:统一的数据编织可以跨多个云和本地智能、安全地集中编排不同的数据源。开放式数据湖库支持对跨混合多云的云原生对象存储中的流数据和存储数据进行多功能分析。可扩展的数据网格通过将所有权分配给跨职能团队,同时维护通用数据基础架构,有助于消除数据孤岛。2.CDH/HDP 产品公司合并CDH/HDP 这两个产品比他们的公司在市场上更加广为流传。大部分用户可能只知道 CDH 或者 HDP,而不知道 Cloudera 或者 Hortonworks,实际上 CDH 是 Cloudera公司的代表产品,HDP 是 Hortonworks 公司的代表产品。两家公司都是围绕着大数据平台去做发行
29、版,他们在 2019 年 1 月进行了合并,形成了新的 Cloudera 公司。合并之后,两家公司的能力也做了一些整合。首先两家公司的平台能力都是围绕着中间的数据工程和数据仓库,他们都具有大数据平台的存储和计算能力。如上图,CDP/HDP 何去何从 25 绿色的 IoT 摄取和流是 Hortonworks 另外一款产品提供的能力,主要做实时数据的采集和处理分析。蓝色的是 Cloudera 的另一个产品 CDSW 提供的,来帮助加速机器学习、数据科学的一些应用。这几款产品都可以部署在企业的客户边缘计算、私有云、公有云和混合云上。两家公司在合并之后,首先把这 4 个产品进行打通,客户可以根据自己的
30、生态选择从边缘计算到人工智能的处理流程。两家公司合并完成之后,紧接着就进行了产品整合,为什么?在两家公司合并前,Cloudera 当时有两个主推的大数据平台产品:CDH5 和 CDH6。Hortonworks 有两个主推的平台产品:HDP2 和 HDP3。这两家公司的产品分别对应Hadoop2 和 Hadoop3 的发行版,合并成新的 Cloudera 之后,一家公司维护 4 个同质性的平台产品负荷是比较重的,再加上外部技术的发展变化(云计算、计算和存储分离、容器和 K8S 等),Cloudera 最终选择进行平台整合,形成新的产品 CDP。3.CDH/HDP 的产品生命周期CDP 的全称是
31、Cloudera Data Platform。Cloudera 公司的 CDP 推出之后,首先支持了 CDH5 和 HDP2 两个平台的直接升级。随着技术的发展,2020 年也支持了 CDH6和 HDP3 的直接升级。在 CDP 推出之后,HDP 和 CDH 两个平台都可以迁移升级到CDP 平台上,两个产品也进入了 EoS 阶段,逐渐退出市场,其中 CDH5 和 HDP2 在2020年12月底已经不再进行售后支持,CDH6和HDP3也分别在2021年底和2022年 3 月结束它的支持生命周期。CDP/HDP 何去何从 26 两家公司合并推出 CDP 之后,CDH 和 HDP 产品已经不再增加新
32、的功能,仅是一些维护式的更新,使得已有用户没办法在老的 CDH/HDP 平台上继续获取新的功能和性能提升。Release GA Date EoS Date Cloudera Enterprise 6.3 Jul-2019 Mar-2022 Cloudera Enterprise 6.2 Mar-2019 Mar-2022 Cloudera Enterprise 6.1 Dec-2018 Dec-2021 Cloudera Enterprise 6.0 Aug-2018 Aug-2021 Cloudera Enterprise 5.16 Nov-2018 Dec-2020 Cloudera En
33、terprise 5.15 Jun-2018 Dec-2020 Cloudera Enterprise 5.14 Jan-2018 Dec-2020 HDP 3.1 Dec-2018 Dec-2021 HDP 3.0 Jul-2018 Jul-2021 HDP 2.6 Apr-2017 Dec-2020 HDP 2.5 Aug-2016 Aug-2019 该表是 Cloudera 官网给出的 Cloudera 支持的产品生命周期,主要列出了 CDH 和HDP。其中 Cloudera Enterprise 对应的是 CDH 企业版。可以看到 Cloudera 最新的产品 CDH6 系列和 HDP
34、3 系列,已经全部 EoS 了,不再进行支持。4.Cloudera 产品许可证变化Cloudera 在两家公司合并完之后,将产品许可证也做了一些调整,使得它更加类似于成熟的 Red Hat 的开源模型。CDP/HDP 何去何从 27 首先,所有的产品源都是符合 OSI 批准的许可证,包括 Apache 的开源许可证和AGPL 的许可证。其次,从 2019 年 11 月 Cloudera 再发布的所有产品不再提供社区版,只有企业版,用户需要订阅才能正常下载和使用 Cloudera 发布的产品。但它还是会提供试用版,60 天的试用期,使得用户可以做功能的验证和尝试。从 2021 年 1 月份开始,
35、Cloudera 还把以前对外公开的 CDH/HDP 所有版本都拿到了 Paywall,使得用户都需要订阅 Cloudera 产品,获取到对应的授权才能下载。对大家来说,这听起来是一个坏消息,其实也不尽然。为什么呢?接下来我们来分析一下国内大数据生态的供应商情况。5.国内大数据生态挑战大家对 Hadoop 已经比较熟悉了,大家可以到 Hadoop 官网随便下载和使用,在我们的传统思维中,门槛很低,基本上是免费。但大家只考虑了软件获取成本,而忽略了软件使用成本和后续的运营成本。据信通院在 2019 年 6 月数据整理,当时国内有 39 家基于 Hadoop 的平台供应商,这些供应商里面有 70%
36、多是基于 Cloudera 的 CDH 和 HDP 的社区版封装成产品来提供给用户的,有 24%是基于 Apache 封装,还有一家自研的产品。大部分供应商基本都是在 CDH/HDP 社区版进一步封装,同时替换掉 CDH/HDP 的 Logo,就发布出来自己的版本。这种行为对用户和这些供应商有什么挑战?Cloudera 的许可证模 CDP/HDP 何去何从 28 式变更之后,再把 CDH/HDP 的 logo 替换掉,是商业盗版行为,面临商业合规的风险。那么,直接使用 Apache 的版本进行封装是否可以?可以,但可能存在如下风险:风险 1 在于国内大部分供应商没有足够的 Apache 的 P
37、MC 和 Committer 资源,导致出现问题之后不能够快速定位问题,只能依靠自己的经验去猜,或到社区上去获取对应的支持,这必然没办法满足企业对应用 SLA 的需求。风险 2 这些供应商没有足够的 Hadoop 平台开发的资源,也就没有足够的能力和权限进行Apache 社区的代码修复。为了维护产品,就会出现产品分支,供应商需要维护多个不同的版本,容易造成维护混乱和功能不一致。使用这样的产品,使得大部分非互联网企业需要享受互联网企业的试错待遇,而同时又没有办法满足他们的 SLA,导致他们没有办法去上 A 类应用来满足它的使用需求。同时随着国家对安全漏洞的安全要求增强,大部分企业没有办法跟踪和解
38、决 CVE 相关的安全审计,因为这些厂商不了解第三方库如何引用,不知道下一代产品如何更新。特别重要的是,金融业客户没有办法面对“护网”的工作需求。我们时不时会接触到护网行动,在护网行动中会扫描出一大堆安全漏洞。而这些安全漏洞是需要对应厂商来提供解决方案的,不了解 CVE 的厂家是没有办法对此提供支持的。最近爆发的 Log4J 的 CVE-2021-44228 对于这类供应商就是一个巨大的挑战。把整个中国大数据生态分析下来,我们会发现,Hadoop 使用的门槛很低,但是我们没办法真正把它运用到生产上,因为国内的厂商,没有办法去提供足够的支撑该平台可以运行在生产上。可是,Hadoop 平台作为比
39、RDBMS 更新的一代平台,能够解决我们很多问题,这时候我们要怎么办?是不是就放弃?答案是:否。CDP/HDP 何去何从 29 我们还有全球公司可以来提供支持,例如 Cloudera 就可以提供这种专业的平台服务支持。Cloudera 的 CDP 里面涉及 39+个 Apache 的开源组件,拥有超过 30 个组件的控制权,使得 Cloudera 可以修改里面的一些安全漏洞 CVE 和 bug,也可以增加新功能和性能增强等等。对于其他组件,也有 PMC 和 Committer 来保证代码修复的权利。第二,Cloudera 可以决定未来产品发展的路线。我们会根据社区的反馈,和对新产品新功能研究创
40、新,来决定对哪一些组件进行引入,对哪些组件选择废弃。第三,Cloudera 因为有足够的 PMC 和 Committer,可以自行决定第三方库的引用和替换,使得用户可以放心地使用。当然这只是产品平台的一个能力,只有这些还不够。此外,Cloudera 还有完善的 400 售后支持体系,Cloudera 在中国有 30 多人的中文售后支持团队,可以支持整个中国甚至包括部分东南亚的售后。同时 Cloudera 在全球有 10 来个售后支持中心可以提供 724 小时售后服务。对于企业来讲,要把关键的应用上到生产里,也需要完善的安全解决方案。Cloudera为此提供了业界最完整最成熟的安全解决方案,来帮
41、助用户满足安全合规需求。6.自研用户的压力 大数据平台除了向第三方厂商购买之外,还可以进行自研。那么自研的成本或者价值估算怎么样,我们这里用一张图表来进行说明。CDP/HDP 何去何从 30 自研的话,需要 30 到 50 人来完成整个平台的构建、组件的升级、安全的实施以及平台使用的支持。目前国内有这种能力的工程师成本需要人民币 3050 万元左右/人/年,每年会需要 200400 万美金的人工成本,这对于大部分企业来说还是比较高的。如果使用 Cloudera 订阅,费用会是怎么样?假设我们使用 50 个节点的列表价来计算,差不多是一年 50 万美元左右。在这每年50 万美元的订阅费用里面我们
42、能获取到什么?第一个是产品的使用支持,Cloudera有庞大的工程师团队和 Apache 的 PMC、Committer 能够支持企业产品的创新和更新;同时还有 300 多个技术支持专家可以提供 724 小时售后支持,有专业的知识库帮助我们快速解决问题,还提供了知识库等其他增值服务。这对于大部分厂商来说这是一个成本更低、风险更小的解决方案,同时让员工主要做业务应用,可以创造更大的业务价值。二、为什么选择 CDP 1.什么是 CDP?Cloudera Data Platform(CDP)是 Cloudera 公司的最新产品,该新产品结合了Cloudera Enterprise Data Hub
43、和 Hortonworks Data Platform Enterprise 的优点,CDP/HDP 何去何从 31 并在技术堆栈中增加了新功能和对已有技术提供了增强功能。这种统一的发行是一个可扩展且可自定义的平台,您可以在其中安全地运行多种类型的工作负载。企业希望将这种强大的数据管理基础架构迁移或添加到云中,以提高运营效率、降低成本、提供计算和容量灵活性以及速度和敏捷性。随着组织在云环境中采用基于 Hadoop 的大数据部署,他们还需要企业级的安全性和治理、多种分析功能、管理工具和技术支持-所有这些需求都是 CDP 平台的一部分,下图展示了 CDP 平台的功能地图。CDP 支持各种混合解决方
44、案,其中计算任务与数据存储分离,并且可以从远程集群访问数据。这种混合方法通过管理存储、表 Schema、身份验证、授权和治理,并为容器化应用程序提供了基础。CDP/HDP 何去何从 32 CDP 包括各种组件,例如 Apache HDFS、Apache Hive 3、Apache HBase 和 Apache Impala,以及许多其他用于特殊工作负载的组件。您可以选择这些服务的任意组合来创建满足您的业务需求和工作负载的集群。几个预配置的服务包也可用于常见的工作负载。2.相对于 CDH/HDP,CDP 有什么改进 CDP 平台有 40 多个组件,是可以提供更多功能的企业级分析平台。这个平台集合
45、了 CDH 和 HDP 的精华来创建,把一些过时的技术淘汰掉,再融合新的技术,把双方差异性的技术保留下来,同时升级共享一些技术得到最新版本。CDP/HDP 何去何从 33 整个 CDP 平台主要有两块功能。第一块是通过 Cloudera Manager 负责整个平台的运营和管理工作,上图中间这部分是 CDP 的主要功能,是 CDP 平台具有的功能和能力。最下面支持各种各样的存储,HDFS、Ozone、Kudu、云对象存储等。它还有数据移动功能,任务编排和用户接口的功能、有运营数据库、数据仓库的能力,搜索、安全和治理的能力,同时还有数据的加密和密钥管理的功能。Cloudera 还有的其他应用,比
46、如 CDSW 或Cloudera Data Flow,也可以被 Cloudera manage 来管理和支持,来满足企业更广泛的应用和使用能力。CDP 作为 CDH 和 HDP 两个产品融合后的产品,具有了两个产品的最佳功能,同时有增加了新功能。整体来看有下面这些改进。高级数据工程?Spark3 性能提升 2 倍。?Hive Warehouse Connector 使数据工程更简单、更快捷。现代数据仓库?与传统 MapReduce 相比,Hive on Tez 的有向无环图(DAG)和数据传输原语提高了查询性能。?Impala 的最新改进使性能提高了 2 到 7 倍。?使用物化视图和查询缓存加
47、快 Hive 查询。可靠的运营数据库?支持 SQL 和 No SQL 的多模式,吞吐量性能提高 15-20%。1)企业级数据工程 CDP 提供更快、更容易的企业级数据工程支持。CDP/HDP 何去何从 34 Spark 通过 Hive Warehouse Connector(HWC)来提供高性能的 SPARK-HIVE 互操作性?性能改进-用于 Hive ACID 表的 Spark Direct Reader。?Spark 和 Hive Acid v2 集成降低了复杂性,可以用于 Hive ACID 表的透明读取和大量访问。?简化应用。Spark 创新?在 CDP 平台上同时支持 Spark2
48、.4.7 和 Spark3,使得用户可以根据实际需求选择使用的 Spark 版本。?Spark 3 提供了性能改进,目前 Cloudera 也已经推出了 Spark 3.1 的 GA 版本。?Spark 2.4,启用自适应查询执行、动态分区修剪等优化。?Spark 2.4 改进-从上游 Spark 3 错误修复和关键性能优化(如 DPP)向后移植。整合第三方生态?添加了 Livy JDBC/Thrift Server 支持,并提高了安全性和容错性。CDP/HDP 何去何从 35 加强治理?用于提供完整数据血缘的 Spark Atlas 连接器,支持 Spark 的字段级血缘。2)数据仓库 CD
49、P 中提供的数据仓库功能简化了架构,同时提供更快的工作负载。3.使用最新的 Impala 将性能提升 2 到 7 倍。架构简化:通过更多的原生工具降低了第三方集成的成本和复杂性,并简化了应用程序?列掩码和行过滤:除了访问权限控制,进一步增强了数据保护的能力,支持Hive/Impala?查询联邦:支持和 RDBMS 集成查询?数据可视化:BI 消费?工作负载管理:跨引擎自动化和集成?ACID v2 支持:更简单的管道?增强型数据仓库:时间序列 DW、探索 DW CDP/HDP 何去何从 36 更快的工作负载:更快的查询响应时间*,更高的并发性?高级缓存:查询、数据、元数据?物化视图:BI 加速?
50、引擎改进:多线程、基于成本的优化、谓词下推 3)运营数据库 CDP 中的运营数据库同时支持 SQL 和 No-SQL 两种模式,降低了运营成本并改善了连接性。更低的运营成本?运营数据库的吞吐量性能提高 15-20%?DR 实例的扩展可用性?提高稳定性 通过支持 Phoenix,改进的运营数据库的连通性?更简单地连接到更多种类的数据源?JDBC/ODBC 现在支持越来越广泛的应用程序类型支持?横向扩展的 RDBMS?支持 ANSI SQL?二级索引,星型模式支持?视图?横向扩展复杂事务支持?完全符合 ACID?消除热点?可以与 HBase 应用程序共存?PB+规模 CDP/HDP 何去何从 37
51、 4)从 CDH 到 CDP 的新功能 对于 CDH 的用户来讲,CDP 平台增加了很多新功能来提供更好的安全/治理和效率。功能 描述 策略和授权 动态行过滤和动态列掩码 基于属性的访问控制 SparkSQL 细粒度的访问控制 Sentry 到 Ranger 的迁移工具 数据治理 元数据、血缘和监管链,高级数据发现和业务词汇表 Navigator 到 Atlas 的迁移,提高了性能和可伸缩性 流媒体 支持与 HDFS,AWS S3 和 Kafka 流的 Kafka Connect 对 Kafka 集群的集群管理和复制支持 使用 Cruise Control 在集群之间存储和访问架构以及重新平衡
52、集群 运营数据库 支持具有完整 ACID 事务功能的标准 SQL 二级索引 星型 Schema 支持 基于表的视图 数据仓库 Hive-on-Tez 提供更好的 ETL 性能 ACID 事务,ANSI 2016 SQL 支持,主要性能改进 查询结果缓存 物化视图 改进的 CBO,矢量化覆盖率 存储 Apache Ozone 提供 HDFS 30 倍的可扩展性,支持 100 亿个对象 S3 原生支持 CDP/HDP 何去何从 38 与 Kafka 和 Nifi 的集成 安全 使用 Knox 的基于网关的 SSO 支持 Ranger KMS-KeyTrustee 集成 支持新的 Key HSM 版
53、本 对于已有的 CDH 用户,他们会获得哪些能力?我们从整个大方向来讲,它在授权和策略管理上面做得更好,支持行过滤和动态列掩码,支持 SparkSQL 细粒度的访问控制,提供跨生态的授权和策略管理。在数据治理上,它采用了 Atlas,可以更好地管理元数据、数据血缘和监管链,同时支持业务数据等等应用。在实时数据上,对 Kafka 做了很多增强,支持连接不同存储的 Kafka connect,支持 Kafka 集群的管理和数据复制,以及集群的运维。在运营数据库上支持了完整的 ACID SQL 标准,支持二级索引,支持星型 Schema 等等。在数据仓库上,把 Hive 引擎用 Hive-on-Te
54、z 替代来提供更好的 ETL 性能,同时支持ACID 事务支持 ANSI 2016 SQL 标准,也做了很多性能的优化。在存储上,通过 Ozone 可以提供 HDFS 30 倍的扩展性,对 S3 原生远程支持,同时可以和 Kafka、Nifi 集成。在安全上,提供了基于 Knox 的网关 SSO,同时支持密钥管理等等。5)从 HDP 到 CDP 的新功能 对于 HDP 平台的用户来讲,CDP 平台在管理/安全/数据仓库/存储等方面都提供了很多新功能。功能 描述 管理 虚拟私有集群(VPC)自动传输加密设置 针对管理员的细粒度 RBAC 简化的维护工作流程 搜索 在非结构化数据上基于相关性的文本
55、搜索(text,pdf,.jpg.)数据仓库(Impala)更适合 Data Mart 迁移用例(交互式,BI 样式查询)能够查询大型集群中的大量数据(“大数据”)集群环境中的分布式查询,方便扩展 与 Kudu 集成以获取快速数据并为策略提供 Ranger CDP/HDP 何去何从 39 用于大数据处理和分析的单一系统,因此客户可以避免仅用于分析的昂贵的建模和 ETL 查询编辑器 内置 SQL 编辑器,可自动完成智能查询 共享查询,图表结果并下载任何数据库 轻松搜索,浏览,导入数据集或作业 存储 Apache Kudu-更好的性能,可快速更改/更新数据。通过 Kudu 和 Impala 报告更
56、新支持-Kudu+Spark 的实时和流式应用程序-时间序列分析,事件分析和实时数据仓库以最智能的自动完成功能提供最佳的查询体验 Apache Ozone 提供 HDFS 30 倍的可扩展性,支持 100 亿个对象 S3 原生支持 加密 Auto-TLS 功能可自动执行启用 TLS 加密所需的所有步骤 Ranger KMS 与 Key Trustee Server 集成以提供额外的密钥提供程序存储 使用 NavEncrypt 进行静态加密 对于 HDP 用户来说,也获取了大量的新功能。包括管理支持了计算和存储分离的体系架构,支持自动传输加密以及针对管理员的细粒度 RBAC。搜索上,提供了非结构
57、化数据的搜索,比如文本图像等等。数据仓库上,引入了 Impala 来提供交互式 BI 查询的使用场景。编辑控制器上,通过内置 SQL 编辑器来自动完成智能查询使用。存储上,引入了 Kudu 和 Ozone,Kudu 可以支持快速变化的数据的快速更新,以及更好的交互式查询。加密上,引入了自动传输加密以及 Ranger KMS 等能力。6)合规安全 Cloudera 提供的安全解决方案是业界最完整最成熟的,它主要由 4 部分组成。第一块是用户的访问边界,通过认证、网络隔离、用户组映射等技术来决定用户是否能够访问平台,进到集群访问之后的用户可以根据他拥有的权限去访问数据和应用,CDP/HDP 何去何
58、从 40 这主要是涉及到权限和授权相关的技术。当然,企业里面的数据要有可视性和可见性,需要知道数据从哪里来到哪里去,需要知道谁访问了什么,这就是审计和血缘相关的概念。还有一块就是数据的保护,防止不该访问的人访问,这里对应的是数据加密、数据标签、数据掩码等技术概念。通过这样 4 个模块,Cloudera 提供了业界最完整最成熟的安全解决方案,使得企业可以更合规地去使用数据。7)改进总结 前面简单说了一下 CDP 平台相对于 CDH/HDP 平台增加的功能,CDP 平台更多的价值,可以用这一张图表来表示。CDP/HDP 何去何从 41 它提供了更高的分析性能,相对于以前的 CDH/HDP 平台产品
59、,它通过集成最新版的 Impala、Hive 和 Spark,可以带给用户两倍的分析性能提升。同时通过 Cloudera Manager 的集群管理,来提供增强的集群管理和资源调度,减少了 20%的资源使用。通过在 CDP 平台引入 Ozone 对象存储和 HDFS 纠删码,可以提供 5 倍的存储密度,使得用户的存储更具有成本效益。对于安全合规比较敏感的用户,CDP 把已知的 CVE都解决了。在最新的 CDP7.1.7 里,有个用户前一段时间刚进行了安全漏洞的扫描,没有在 CDP 平台上发现任何 CVE。发现的 CVE 基本上都是在上下游上面,该产品更符合用户对安全合规的诉求。最后一点是数据的
60、安全治理,在 CDP 中通过引入新的 SDX 控制,包括默认拒绝、最低权限,策略标签、可扩展审计、一致执行等等,使得用户减少 50%的工作量,来缓解监管合规性,大幅度降低任务、重载。4.基于阿里云部署的 CDP 2021 年 7 月 Cloudera 和阿里云两家公司强强合作,推出了基于阿里云部署的 CDP平台。这个平台除了具有 CDP 平台的所有优势之外,还增加了阿里云公有云相关的一些优势。CDP/HDP 何去何从 42 首先是产品核心方面。第一,阿里云提供的 CDP 版本,是包含完整的 CDP 能力的。第二,它基于多种规格,使得用户可以选择不同的套餐去构建使用。第三,Cloudera CD
61、P 平台和阿里云平台产品集成互通,用户可以在阿里云上直接一起使用阿里云其他的产品,同时它还提供了开箱即用的安全平台,可以降低它的使用复杂度,也降低了运维成本。其次是产品引擎与服务方面。第一,百分百兼容开源的 Hadoop,同时又通过两家公司的联合调优,使性能最优。第二,它能提供给客户 724 小时的专家支持服务和专业保障,使用户可以轻松地对已有的 CDH/HDP 这些平台来进行迁移,进行版本升级,参数调优等工作。基于阿里云部署的 CDP 平台的整体架构是这样的底层平台会使用阿里云的云盘、基于大数据的本地存储、数据湖等数据存储方式,计算层通过阿里云的 ECS 来扩展。在这之上,它通过 SDX 来
62、管理所有数据的状态,通过 Cloudera Manager 来管理整个平台,在上面提供基于数仓、数据湖、数据工程、流计算、运营数据库等业务场景的能力。5.为什么选择基于阿里云部署的 CDP CDP/HDP 何去何从 43 客户会问,我为什么要选择基于阿里云部署的 CDP 平台?从成本上来讲,用户是有一定的成本支出,20%的成本增加带来下列收益:第一,用户可以使用最新版的 CDP 平台,这个平台可以提供给用户更多的开源组件,更高的版本,更稳定可靠的软件版本支持,同时覆盖客户从边缘计算到人工智能的数据分析的应用场景。第二,这个平台可以提供给用户企业级的服务支持,包括大数据专家服务,开箱即用,降低了
63、运维成本。第三,这个平台可以提供更完整更成熟的安全治理管理方案,满足企业的安全合规诉求。同时,稳定可靠的产品,还大大降低了运维的复杂度和成本,使得企业可以聚焦到业务应用,增强企业的业务领先性。三、CDP 用例场景 1.现代化数据仓库 构建现代化数据仓库来替代传统数据仓库以解决企业对数据来源、数据量及数据服务时效的需求,使得现代化数据仓库可以使用强大的自助服务工具来为数千名 BI 分析用户提供支持,同时系统提供快速和大规模的向导和自动化管理工具,并且存储所有的数据(包括各种类型和数据量的数据)。CDP/HDP 何去何从 44 在现代化数据仓库平台中,能够容纳所有的数据类型和数据量,并在平台上进行
64、大规模数据的处理和分析,同时通过统一的安全和治理,保证企业数据的合规。利用 CDP 平台提供的高性能的 ETL 工具 Hive-on-Tez 和交互式低延时 BI 查询工具Impala 来提供现代数据仓库的解决方案。2.流式消息处理 Apache Kafka 是一个高性能、高可用性的冗余流消息平台,可以替代更传统的消息代理。消息代理的使用有多种原因(将数据生成和处理分离,缓冲未处理的消息等)。与大多数消息传递系统相比,Kafka 具有更好的吞吐量、内置分区、复制和容错功能,这使其成为大规模消息处理应用程序的理想解决方案。Kafka 的功能很像发布/订阅消息系统,但具有更高的吞吐量、内置的分区、
65、复制和容错能力。对于大规模消息处理应用程序来说,Kafka 是一个很好的解决方案。它通常与 Apache Hadoop、Spark Streaming 和 Flink 等一起使用。在 CDP 中提供了 Kafka 及其周边的小伙伴,来使得 Kafka 更易用,更好用。CDP/HDP 何去何从 45 该图是一种简化的动态数据参考架构,在边缘端显示为 Apache MiNiFi,它从移动资产中提取了机器生成的数据。Apache NiFi 收集数据并转换、解析和过滤到 Kafka的主题,以便 Apache Flink/Spark Streaming 等流处理引擎和其他应用程序可以快速构建和运行分析。
66、使用 CDP7.1,您将获得最新的 Kafka 服务。Kafka Connect 支持可用于增强与 HDFS、S3 和 Kafka Streams 的连接。可以直接将 Kafka 的数据写入到对应的存储中。Schema Registry 将在整个 Kafka 集群中存储和访问您的 Schema。它与Apache Ranger 集成,来支持对 Schema Registry 的访问控制。Stream Replication Manager 可实现业务连续性,该业务连续性支持您的 Kafka集群的复制,以实现灾难恢复和高可用性需求。Cruise Control 支持提供基于 API 的工具,以监视
67、和协助 Kafka 集群和主题的重新平衡和扩展。Streams Messaging Manager 用于监控和管理发布者、代理、使用者和主题。3.多租户和虚拟专用集群 虚拟专用集群使用 Cloudera 共享数据体验(SDX)来简化内部部署和基于云的应用程序的部署,并使在不同集群中运行的工作负载能够安全灵活地共享数据。CDP/HDP 何去何从 46 虚拟专用集群的体系结构为部署工作负载和在应用程序之间共享数据提供了许多优势,包括共享目录、统一安全性、一致的治理和数据生命周期管理。在传统的集群部署中,常规集群包含存储节点、计算节点以及其他服务,例如并置在单个集群中的元数据服务和安全服务。这种传统
68、的体系结构具有许多优势,例如Impala 和 YARN 等计算服务可以访问并置的数据源(例如 HDFS 或 Hive)。借助虚拟专用集群和 SDX 框架,Cloudera Manager 中提供了一种称为计算集群的新型集群。Compute 集群运行诸如 Hive Execution Service、Spark 或 YARN 之类的计算服务,但是您可以配置这些服务以访问托管在另一个称为 Base 集群的常规集群中的数据。使用此体系结构,您可以通过多种方式分离计算和存储资源,以灵活地最大化利用资源。最常规的集群模式为传统模式,这是所有的计算和存储都在一个集群中,虽然可以使用大数据平台的资源管理来设
69、置多租户和资源隔离,但无法实现真正的多租户。当传统模式中有多个业务部门进行不同的工作负载时,就存在无法满足用户 SLA 的情况,可以在传统模式的基础上转换成混合模式,这时最下面还是传统集群,SDX来提供外部集群访问数据的上下文,上面的集群 1 和集群 2 都是只有计算服务的集群,他们根据数据上下文访问基础集群的数据,这时可以把一些工作负载放到计算集群中,而把部分工作负载保存在基础集群中,实现资源隔离效果更好的多租户。对于某些用户,可能在最开始规划时就是完全的计算和存储隔离,这时就是分离的模式,最下面的集群存储所有的数据并通过 SDX 提供外部集群访问数据的数据上下文,上面的计算集群只有计算引擎
70、来进行工作负载计算。CDP/HDP 何去何从 47 4.运营数据库 Cloudera 运营数据库提供了实时的、始终可用的、可扩展的运营数据库,该数据库在统一的运营和仓储平台中为传统结构化数据和非结构化数据提供服务。运营数据库由 Apache HBase 和 Apache Phoenix 提供支持。在运营数据库中,您可以将 Apache HBase 用作具有 HDFS 和/或 S3 提供存储基础结构的数据存储。您可以选择使用原生的 Apache HBase API 之一开发应用程序,也可以使用 Apache Phoenix 进行数据访问。Apache Phoenix 是一个 SQL 层,提供了编
71、程的 ANSI SQL 接口。它可以在 Apache HBase 之上运行,并且可以使用标准 SQL 查询和 Apache Phoenix 命令来处理数据。您可以在公有云或本地中使用Cloudera 运营数据库。CDP/HDP 何去何从 48 运营数据库具有以下组件:Apache Phoenix 提供了一个在 Apache HBase 之上运行的 SQL 接口。Apache HBase 为键值存储提供了巨大的可扩展性,因此您可以在一个平台上存储无限量的数据,并满足不断增长的数据服务需求。Apache ZooKeeper 提供了分布式配置服务,同步服务和命名注册表。Apache Knox Gat
72、eway 提供外围安全性,以便企业可以放心地将访问权限扩展到新用户。Apache HDFS 用于存放 Apache HBase WAL。Hue 提供了一个基于 Web 的编辑器来创建和浏览 Apache HBase 表。Cloudera 共享数据体验(SDX)用于安全和治理功能。安全和治理策略设置一次,并应用于所有数据和工作负载。5.准实时分析 准实时分析需要对变化中的数据提供快速分析能力,包括结合历史数据和实时流数据进行汇总分析、预测和明细查询。由于绝对实时和批量不可调和,“近实时”的意思是这是人机交互中能感受的尺度(秒级),而不是机器自动处理的实时性量级(ns/us 级)。分析手段:数据价
73、值从非结构化到结构化,分析从非范式到范式。SQL 是结构化分析的最终手段,但是:分析包括汇总分析(顺序扫描)与明细查询(随机扫描)。小数据量下都不是问题,但是放在海量数据下看,两种负载难以调和。海量数据和实时流窗口上的 SQL 引擎实现也完全不同。CDP/HDP 何去何从 49 准实时分析的典型场景需要同时支持顺序和随机读写的应用场景,包括:在线交互式 BI 分析/决策辅助?场景举例:贷后风险实时监测、实时资产偏好视图、历史风险偏好趋势、市场监测?应用类型:需要准实时的同步插入/修改,同时汇总分析和单条查询 时间序列数据?场景举例:股市行情数据、欺诈检测和预防、风险监控、线上实时反欺诈?应用类
74、型:需要实时捕获流数据,同时结合已有的 T+1 数据进行汇总、分析和计算 机器日志数据分析?场景举例:台机监控、故障预警?应用类型:需要过滤大量流数据,同时结合已有的 T+1 数据进行汇总、分析和计算 在企业数据中心中通常用 Lambda 架构来实现准实时分析场景。但这种混合架构的复杂性无处不在:同时提供高性能的顺序扫描和随机查询,避免使用 HBase+HDFS 混合架构的复杂性 CDP/HDP 何去何从 50?开发:必须编写复杂的代码来管理两个系统之间的数据传输及同步?运维:必须管理跨多个不同系统的一致性备份、安全策略以及监控?业务:新数据从达到 HBase 到 HDFS 中有时延,不能马上
75、供分析?在实际运行中,系统通常会遇到数据延时达到,因此需要对过去的数据进行修正等。如果使用不可更改的存储(如 HDFS 文件),将会非常不便 在 CDP 平台上通过使用 Kudu+Impala 的架构来提供准实时数据分析,这里只使用一套系统,不再需要后台定时的批处理任务来同步数据,可以轻松应对数据延迟和数据修复工作,新数据可以立即用于分析和业务运营。Kudu+Impala 的架构具有下列特点:通过 SQL 进行快速分析查询,并包含大多数常用的最新特性。能插入、更新和删除数据。主索引分布数据、确保数据唯一性。更快的流式数据插入。更好的 Hadoop 集成。CDP/HDP 何去何从 51 在同一集
76、群中能进行 HDFS 和 Kudu 表之间的 JOIN。与 Impala、Spark、Kafka 等的集成。这里 Kudu 填充了 HDFS 和 HBase 两个存储的空缺,支持在快速变化的数据上进行快速分析。6.企业级大规模 IoT/实时流媒体场景 1)数据收集的挑战 在制造过程中管理所有工厂的所有数据的收集是一项艰巨的任务,它带来了一些挑战:难以评估 IoT 数据的容量和种类:许多工厂利用来自多家供应商的现代和传统制造资产以及设备,并使用各种协议和数据格式。尽管控制器和设备可以连接到 OT 系统,但是它们通常不以易于与 IT 系统共享数据的方式连接。为了实现互连的制造和新兴的 IoT 用例
77、,需要一种解决方案,该解决方案可以从边缘处理所有类型的各种数据结构和架构,对数据进行规范化,然后与包括大数据应用程序在内的任何类型的数据使用者共享。管理实时数据的复杂性:为了能够驱动预测分析用例,数据管理平台需要启用对流数据的实时分析。该平台还需要实时或近实时有效地摄取、存储和处理流数据,以便立即提供见解和行动。CDP/HDP 何去何从 52 将数据从独立的孤岛中解放出来:制造价值链中的特殊过程(创新平台、QMS、MES 等)奖励针对独特孤岛解决方案量身定制的不同数据源和数据管理平台。这些独特解决方案限制了企业价值,只考虑了跨企业数据可以提供的洞察力的一小部分,同时划分了业务并限制了合作机会。
78、正确的平台必须具有从价值链的各个方面摄取、存储、管理、分析和处理流数据的能力,并将其与数据历史学家、ERP、MES 和 QMS 来源相结合,并利用它来形成可行的见解。这些见解将提供驱动高价值制造业用例的仪表板,报告和预测分析。平衡边缘:了解边缘和云中的数据处理之间的正确平衡是一个挑战,这就是为什么需要考虑整个数据生命周期的原因。行业中的趋势令人担忧,因为公司选择专注于一个或另一个而又没有意识到自己可以并且应该同时做这两个事情。云计算可用于长期分析和大规模部署,但它受到带宽的限制,并且通常收集大量数据却仅使用其中的一小部分数据。边缘的价值在于在将最有价值的数据发送到云以进行进一步的高性能处理之前
79、,以零延迟对影响最大的边缘起作用。2)使用 Cloudera 数据平台收集数据 步骤 1:收集原始数据 制造业务中的数据包括多种来源-工业机器人、白车身磷酸盐涂层处理罐(温度、浓度或补给),供应链远程信息处理或主要零件信息等。这部分数据可能是每个工厂已经收集的主数据,也可能是原始的数据源。步骤 2:为每个工厂配置数据源 将使用 Cloudera 流管理(由 Apache NiFi 提供支持)来说明该数据收集、以检索该原始数据并将其拆分为单独的工厂流(由 Apache Kafka 管理)、以更准确地模拟真实场景。CDP/HDP 何去何从 53 图 2:数据收集流程图 步骤 3:监控每个工厂的数据
80、吞吐量 现在,所有数据都流入单独的 Kafka 流中,数据架构师正在监控每个工厂的数据吞吐量,并调整所需的计算和存储资源,以确保每个工厂都具有将数据发送到平台所需的吞吐量。步骤 4:从 Apache Kafka 流捕获数据 Kafka 捕获所有工厂数据流并将其收集到处理器中,这些处理器将进行过滤和丰富,以用于控制和运行由运营数据库提供支持的基本业务运营,或者通过企业数据仓库或用于高级分析的业务企业见解。步骤 5:将数据推送到存储解决方案 由于制造和质量工程师希望密切监控此电动机的部署和现场使用,因此特定的制造可追溯性数据被过滤到单独的路径中,并保存在 Apache Hive 中自己的表中。这将
81、允许工程师稍后在 CDP 中针对数据进行临时查询,并将其与企业数据仓库中的其他相关数据结合起来,例如维修订单或客户反馈,以产生诸如保修,预测性等高级用例维护程序或产品开发输入。或者,如果需要控制和运行基本业务操作,则将带有已处理时间戳的整个数据集发送到 Apache HBase。此数据将用作其运行库存平台的基础,这将需要使用恒定的 CDP/HDP 何去何从 54 读/写操作,因为每天可以添加和删除库存数千次。由于 HBase 旨在大规模处理此类数据事务,因此它是应对这一独特挑战的最佳解决方案。3)用例总结 该用例显示了正确摄取数据的重要性,因为这是从运营数据库、企业数据仓库或高级分析机器学习预
82、测分析中获得洞察力的基础。“正确处理”的价值包括使用来自任何企业源的数据,从而打破数据孤岛,使用所有数据(无论是流数据还是面向批量的数据),以及将数据发送到正确位置以产生所需的下游洞察力的能力。使用 CDP,数据工程师和其他业务用户可以开始将收集的数据用于各种任务,从库存管理到零件预测到机器学习。由于 Cloudera Data Flow 促进了从任何企业源获取实时数据的能力,因此可以扩展和维护它,而无需广泛了解各种编程语言和专有数据收集方法。如果遇到独特的问题,工程师还可以创建自己的过程逻辑以进行真正的细粒度控制。四、怎样到达 CDP 1.到达 CDP 有哪些路径 由于 CDH/HDP 的所
83、有版本都已退出市场,而且两个产品的版本已经落后于最新的创新,且面临安全合规和 CVE 安全漏洞等方面的问题,新的 CDP 平台带来了更多的价值和创新,从旧平台(例如 Cloudera CDH 或 HDP)过渡到 CDP 公有云或 CDP 私有云的四种路径。四个路径分别是原地升级、迁移升级、滚动迁移升级和迁移到公有云。从遗留平台的发行版到 CDP 的所有路径的每种机制都有共同的工作、缓解风险和取得成功成果的方面。其中包括工作负载审查、测试和验证、管理服务级别协议(SLA)、以及在移动期间最大程度地减少工作负载的不可用。因为滚动式迁移升级和迁移到公有云是迁移升级的变种,这里主要讨论原地升级和迁移升
84、级的适合场景和方法。对于同时对公有云和 Cloudera CDP 感兴趣的用户,可以考虑直接将已有的平台迁移升级到基于阿里云部署的 CDP 平台上,这样在获取阿里云和 CDP 平台的优势的同时,又降低了运维和管理成本。CDP/HDP 何去何从 55 2.CDH/HDP 到 CDP 的升级路线图 CDP 目前的版本支持了 CDH 和 HDP 所有版本,他们可以原地升级和迁移升级到CDP 平台。目前不同的集群版本可以根据自己的实际情况来选择不同的升级路线。CDP/HDP 何去何从 56 3.原地升级 1)主要任务 集群中的主要内容可以分成这样四部分:用户积累的历史数据,数据对应的 Schema等数
85、据状态相关的元数据,数据处理的批量和流处理程序,数据上层的外部应用。其中历史数据和 Schema 不需要做特殊处理,在升级过程中会自动进行更新;但批量脚本和外部程序因为涉及到组件版本和 API 的调整,会涉及到代码改造的工作。2)优点 使用现有硬件,并添加很少的新节点(如果需要的话)。许多服务的现有设置和配置将保持不变。没有其他环境或相关开销。3)缺点 从 CDP 私有云基础 7.1.7 开始,原地升级当前限于 HDP2.6.5、HDP3.1.5、CDH5.13-5.16 和 CDH6.1-6.3。如果用户的集群版本不在支持的范围内,则需要先升级到支持的集群版本,然后再升级到 CDP。原地升级
86、需要集群停机。预先安排某些类型的工作可以最大程度地减少升级当天的停机时间,例如操作系统升级或组件转换,如 Spark 1.6 到 Spark 2.X 代码更新。所有租户必须同时准备升级。如果一个租户遇到必须首先解决的问题,则可能会延迟该过程。4)何时使用 原地升级最适合具有更多重要数据足迹的大型集群。应用程序的 SLA 和停机时间要求在决策中起着至关重要的作用,因为这种升级过程需要计划停机时间。在决定原原地升级 迁移升级 CDP/HDP 何去何从 57 地升级策略时,旧集群的寿命和硬件刷新周期是另一个重要的考虑因素。如果集群节点在近期内不应该进行硬件刷新,则原地升级可能是获取 CDP 的最佳选
87、择。4.迁移升级 迁移升级方法是 CDP 的第二条路径。在第二套硬件上配置了一个新的未开发的 CDP私有云基础版集群。对于阿里云上的用户,可以直接采用该方案进行迁移到基于阿里云部署的 CDP 平台上。该过程旨在最大程度地减少单个工作负载的停机时间,同时在每个工作负载的基础上提供一种直接的回滚机制。迁移升级分为三个主要阶段。首先,构建并配置新的 CDP 私有云基础版集群。其次,配置复制过程以提供数据、元数据以及随附的治理策略的定期且一致的快照。第三,将工作负载部署到新集群上,对其进行测试,并在验证后将其转变为生产状态。移动后,请在旧版集群上禁用它们。此更改意味着在迁移期间,您将临时使生产工作负载
88、跨多个集群运行。Cloudera 提供了辅助此过程的工具,包括 DistCP,用于数据复制的 Replication Manager(以前称为 BDR)以及用于 Hive 模式和迁移的 hms-mirror。Authzmigrator提供从 Sentry 到 Ranger 的策略转换路径。FS2CS 简化了从 YARN FairScheduler 到CapacityScheduler 的切换。在不需要转换的情况下,通过将策略和配置导出导入CDP 中的相应组件,可以直接重用。1)主要任务 集群中的主要内容可以分成这样四部分:用户积累的历史数据,数据对应的 Schema等数据状态相关的元数据,数据
89、处理的批量和流处理程序,数据上层的外部应用。其中历史数据和 Schema 需要进行迁移并升级到新版本;但批量脚本和外部程序因为涉及到组件版本和 API 的调整,会涉及到代码改造的工作。CDP/HDP 何去何从 58 2)优点 由于遗留版本和 CDP 版本可以并行运行而不会互相影响,因此更容易满足各个工作负载的服务级别协议。设施齐备的单个租户可以一次移动一个工作负载,而无需在所有租户之间进行任何协调的活动。回滚仅需要在工作负载级别或租户级别进行协调,而无需在整个集群级别进行协调。支持从任何 HDP2/3 或 CDH5/6 版本直接迁移到 CDP。该方法还可以推广到非Cloudera 发行版。3)
90、缺点 此方法需要一组重复的硬件,以与旧版环境一起实施未开发的 CDP 集群。这种新硬件可能会对资本支出和预算产生重大影响。直到所有租户都迁移到新环境之前,额外的环境维护开销。4)何时使用 如果您有更严格的服务级别协议,而这些协议又无法使得您的工作负载延长进行长时间的停机时间,则最好采用这种机制。此外,升级过程通常是实施完整的硬件更新以利用更新的、功能更强大的设备的绝佳时机。在决定采用迁移升级方法的同时,诸如硬件的寿命及其刷新周期,数据中心重定位的需求等因素可以发挥重要作用。结合了硬件更新和数据中心重定位的客户已使用此机制来实施和缩短升级生命周期,并将对业务计划的多重影响降至最低。5.迁移升级指
91、南 Cloudera 迁移指南用于提供将各种组件的数据从 CDH、HDP 和 CDP 私有云迁移到CDP 私有云的指南和说明。CDP/HDP 何去何从 59 五、基于阿里云部署的 CDP 的测试和使用 1.如何申请基于阿里云部署的 CDP 测试 CDP/HDP 何去何从 60 在阿里云的官网的路径为:产品-大数据-相关解决方案和生态产品-Cloudera 企业数据云,这是 Cloudera 和阿里云合作平台的入口。阿里云上的 CDP 是基于阿里云部署的 CDP 平台的半托管产品,用户可以在上面管理整个平台运用。CDP/HDP 何去何从 61 阿里云的 CDP 产品还能提供免费测试和试用。链接如
92、下:https:/ 点击之后会跳转到产品免费试用申请,填写对应的信息之后,阿里云的同事会来负责后续的申请审批,审批通过之后就可以获取代金券来进行 CDP 产品的试用。Hive3 新特性 62 Hive3 新特性 一、Hive3 的新功能 1.Hive3 的新功能 1)性能提升 更好的 SQL 兼容性 Hive3 支持绝大多数最新的 ANSI SQL2016 标准。ACID v2 相比 Hive2 的 ACID v1,v2 在小文件、Stats、性能等方面都有了很大提升。查询 Caching 配置单元过滤并缓存相似或相同的查询。Hive 不会重新计算未更改的数据,当数百个或数千个 BI 工具和
93、Web 服务的用户查询 Hive 时,缓存重复查询可以大大减少负载。物化视图 多个查询经常需要相同的中间汇总表或联接表,所以可以通过将中间表预先计算和缓存到视图中来避免昂贵、重复的查询部分共享。Hive on Tez:Hive3 底层计算引擎使用 Hive on Tez,通过内存来计算,性能是 Hive2 的 50 倍;2)事务特性优化 计划查询 Hive3 新特性 63 JDBC 联邦?启动后Hive从JDBC数据源创建两个数据库:information_schema和sys。?所有 Metastore 表都映射到表空间中,并且在 sys 中可用。?information_schema 数据
94、显示系统状态,类似于 sys 数据库数据,可以使用 SQL 标准查询来查询 information_schema。Kafka Connector 和 Cloud Connectors:实现直接操作组件存储和应用。3)托管表优化 在 Hive3 中严格控制了文件系统和计算机的内存资源,提高整体性能的可预测性以及安全性。使用 ACID 来确定要读取的文件,而不依赖于之前的存储系统。Hive3 的文件移动比 Hive2 减少很多。聚集的缓存元数据和数据减少对文件系统的操作。4)Spark 可以使用 Hive 从 Spark 应用程序查询数据,Hive Warehouse Connector(HWC)
95、支持从 Spark 读取和写入 Hive 数据。2.升级挑战:访问模式的更改 1)更高的安全性 KNOX 代理直接访问。支持 SSL 接口访问。完整的 Kerberos 实施。IDM 集成(许多服务的 PAM 默认值)。Hive3 新特性 64 通过 KNOX 实现单点登录。授权模型方面:CDP 采用 Ranger,Hive 强制实施 Ranger 中指定的访问控制,与其他安全方案相比,为模型提供更强的安全性,并且在管理策略方面提供更大的灵活性;此模型仅允许 Hive 访问数据仓库。如果您未启用 Ranger 安全服务或其他安全性,则默认情况下,Hive 会根据用户模拟使用 CDP 数据中心基
96、于存储的授权。HDFS 权限更改:在 CDP 数据中心中,基于存储的授权严重依赖于 HDFS 访问控制列表(ACL),ACL 是 HDFS 中权限系统的扩展,默认情况下 CDP 数据中心在 HDFS 中打开 ACL。2)Hive 自身变化 HS2 vs.CLI(Beeline):Hive 和 Hive Sever 分离,通过 Hive Sever 2 提供访问,同时,Hive CLI 被 Beeline 取代。旧版脚本:Hive1 和 Hive2 的旧版脚本,在 Hive3 中需要进行测试和调整。新的默认值:比如默认路径、默认结构等。SQL 强制(CBO 改进)。旧版的作业配置调整。旧版摄取模
97、式调整:比如小文件摄取。JDBC/ODBC 驱动更新。JDBC/ODBC 访问点控制。资源映射。托管表(v1 与 v2)。Hive3 新特性 65 非模拟。更严格的 ACL 检查(DDL)。3)Spark 访问托管表:Spark 不能直接访问 Hive 托管表,需要通过 HWC 进行操作,通过 HWC 从 Spark 访问 Hive ACID 表,外部表则无需通过 HWC。组件升级(1.x 到 2.x)。适应更安全的环境。元存储翻译层。数据位置。3.功能变化 托管表:使用 V2 版本,针对不同的文件格式产生不同的作用,在定义和默认位置方面都会有调整。仓库位置:拆分托管表和外部表,以获得更好的治
98、理标准。安全防控:有模拟和非模拟方式,推荐使用非模拟方式访问。数据安全治理:通过 ACL 整合和非模拟方式集成。LLAP:CDP 私有云和公有云版本中提供,而 Base 版本则不提供 LLAP。JDBC 驱动程序更新。4.功能移除 执行引擎不再支持 Hive on MR/Spark,由 Hive on Tez 执行。Hive3 新特性 66 移除 Hive CONCAT,使用 ACID 表。移除 Hive Indexes,使用物化视图代替。移除 Hive CLI,使用 Beeline。Tez View 从 DAS 中移到 Hue。Oozie 的 HiveAction 被 Hive2Action
99、 代替。二、Hive3 的变更细节 1.Hive Metastore(HMS)转换层 允许在各种 Metastore 用户之间安全共享元数据,如 Hive、Spark 和 Impala。每个客户端技术(Hive、Spark 和 Impala)都支持读取和写入数据源的功能列表。Metastore将这些功能与所请求的表相匹配,如果请求中存在不兼容,Metastore将向客户端提出异常并终止对表详细信息的内联请求。在集成中推荐使用 NON-IMPERSONATION(非模拟),doas=false 方式。2.通过翻译层进行规范化的副作用 Hive Metastore 转换层在 HDP 3.1.5 及
100、更高版本中可用,包括 CDP-PvC Base 7.1+。更改了“数据库”LOCATION 值的“使用”:LOCATION 在外部表中可用,而在托管表中不可用,从历史上看(直到 HDP 3.1.4),它控制了“托管”表的基本目录,而现在(HDP 3.1.5+和 CDP-PvC Base 7.1),它代表“外部”位置的默认基本目录。控制“托管”表的基本位置,可以通过数据库的“MANAGEDLOCATION”进行控制(仅限 CDP 7.1+)。Hive3 新特性 67 禁止非 ACID 托管表:https:/issues.apache.org/jira/browse/HIVE-22158 3.更改
101、托管(ACID)表的“默认”位置 在 CDP Runtime 7.1 及更高版本中可用(不在 HDP 3 中)。先决条件:对于非模拟(doas=false),“hive”超级用户需要对该位置的 RW 访问权限。SHOW DATABASE 不会显示托管位置。4.结构转换为 Hive Metastore 在 Hive 或 Spark 中创建的表由 Hive Metastore 翻译和调整,并在内部存储以匹配公认的最佳实践和术语。在 Hive 中创建 CREATE Table 默认创建支持 ACID 的托管表,需要文件格式是ORC。在 Hive 和在 Spark 中创建 CREATE EXTERNA
102、L 都默认创建外表,这种外表的表结构和数据是分离的,当 DROP Table 后数据依然存在。Hive3 新特性 68 在 Spark 中创建 CREATE 表默认创建 EXTERNAL/PURGE 表,这种表的表格式和数据是一体的,当 DROP Table 后,数据也跟着移除。外部表可以配置 PURGE(相当于“经典”托管表)。5.Hive1 到 Hive3 会话 执行引擎从 Hive on MR 迁移到 Hive on TEZ 的,检查会阻碍 TEZ 的旧会话配置。原本就是 Hive on TEZ 的,CBO 已经成熟,但许多旧的“会话”设置可能会产生负面影响。因此推荐以下操作:查看查询设
103、置的会话值,删除它们并重试,在相关的地方添加回来。检查统计数据,并在必要时刷新这些数据。定期进行 Rebalance,整合小文件。6.Hive3 Warehouse 拆分/影响 针对托管和外部两个仓库位置:托管表在目录/warehouse/tablespace/managed/hive 下:可以通过“数据库”级别的“位置”设置调整位置。外部表在目录/warehouse/tablespace/external/hive 下:可以通过“TABLE”级别的“位置”设置调整位置。Hive3 的 Warehouse 构建模式,与 Hive1 和 Hive2 有很大不同,它覆盖 CREATE TABLE
104、中的位置:在托管表创建中设置“位置”,违反了 posix 安全性,继而创建失败。Hive3 新特性 69 触发尝试有效 SBA 的外部代码路径。设置“位置”只能用于“外部”表。7.Hive 的细微默认值变更 Hive 的细微默认值变更,比如 CREATE TABLE,在 Hive 3 中是创建一个托管 ACID表,而在 Hive1 和 2 中,是创建一个托管(非 ACID)表,这意味着:如果“CREATE TABLE”表是应用程序工作流程的一部分,则该表的使用者必须是 Hive 或使用 Spark HWC,因为该表将是一个 ACID 表。或者,将这些“CREATE TABLE”语句转换为“CR
105、EATE EXTERNAL TABLE”(带有清除)以保持与“经典托管表”之前相同的行为。在 CDP 7.1.4 中,新的“会话”级别配置将提供“CREATE TABLE”到“CREATE EXTERNAL TABLE”的自动转换。保存需要“经典”托管表的旧脚本的返工,结果是一个具有清除功能的“外部”表。用于会话级别控制的 JDBC 参数:hiveCreateAsExternalLegacy=true HS2 级别控制的 HS2 配置:hive.create.as.external.legacy=true 8.Hive3 的 ODBC 设置 推荐设置两个参数,来调整 ODBC 驱动程序设置(见
106、下图):Use Native Query=True(选中)Get Tables With Query=False(不选)Hive3 新特性 70 通过以上设置,可以实现 Hive 访问性能优化,因此这些设置的相反值很可能会导致通过此 ODBC 接口使用 Hive 的应用程序性能不佳。9.Spark 与 Hive 托管表的集成 Spark 与 Hive 托管表的集成,主要是 Spark 读写 Hive 表的情况:托管表的访问模式推荐使用 HWC(JDBC 模式)低容量处理模式。也可以直接使用 Hive Direct Read/Spark SQL 模式来读取托管表。写入仍需要通过 HWC 模式。同
107、时在读取时会存在未进行权限验证直接访问的安全隐患。Hive3 新特性 71 三、Demo 演示 Demo 演示主要有两部分:Hive3 的 ACID 和 Hive3 的 Merge,会在 Zeppelin 中进行操作。1.Hive3 的 ACID 详细步骤如下:1)创建表:Hive ACID CRAETE TABLE IF NOT EXISTS hello_acid(key int,value int)查看建表语句:show create table hello_acid 查看表信息:INSERT INTO hello_acid PARTITION(load_date)VALUES 2)插入数
108、据 INSERT INTO hello_acid PARTITION(load_date)VALUES Hive3 新特性 72 数据查询:Select*FROM hello_acid 3)删除 key=2 的记录 DELETE FROM hello_acid WHERE key=2 数据查询:key=2 的记录被删除 Hive3 新特性 73 4)数据更新,将 key=3 的数据更新成 10 UPDATE hello_acid SET value=10 WHERE key=3 数据查询 5)创建 mydim 表,并插入三条记录 6)创建中间表 update_staging_table,并插入
109、数据 Hive3 新特性 74 查看表记录 根据中间表的 key 值更新 mydim 数据,结果显示影响了 2 个记录,接着进行数据查询,显示有 2 个记录由 true 变成 false:UPDATE mydim SET is_current=false WHERE mydim.key IN(SELECT key FROM update_staging_table)Hive3 新特性 75 根据中间表数据进行数据删除,结果显示将 2 个 false 的记录删除,只剩下 true 的1 条记录。DELETE FROM mydim WHERE mydim.key IN(SELECT key FRO
110、M update_staging_table)7)信息查询 交易信息:锁信息:row_id:Hive3 新特性 76 2.Hive3 的 Merge 详细步骤如下:1)创建数据库、创建表 CREATE DATABASE merge_data CREAT TABLE merge_data.transaction CREAT TABLE merge_data.merge_source 2)向两个表中插入记录 INSERT INTO merge_data.transaction PARTITION(tran_date)VALUES INSERT INTO merge_data.merge_sourc
111、e VALUES Hive3 新特性 77 3)进行 merge 操作 MERGE INTO merge_data.transactions AS T USING merge_data.merge_source AS S ON T.ID=S.ID and T.tran_date=S.tran_date WHEN MATCHED AND(T.TranValue!=S.TranValue AND S.TranValue IS NOT NULL)THEN UPDATE SET TranValue=S.TranValue,last_update_user=merge_update WHEN MATCH
112、ED AND S.TranValue IS NULL THEN DELETE WHEN NOT MATCHED THEN INSERT VALUES(S.ID,S.TranValue,merge_insert,S.tran_date)查看 merge 后的数据 另外,在 CDP 中,无论是 Hive、Spark 和 Impala,都是通过 Ranger 来管理的,在Ranger 的 Hadoop SQL 里进行设置。CDP 平台的安全和治理 78 CDP 平台的安全和治理 一、安全挑战 大数据平台会面临各种各样的安全和治理挑战,主要体现在以下几个方面:跨工作负载共享数据 需要创建多个数据副本,
113、每个副本都有自己的数据上下文集合,易产生数据竖井或数据孤岛等问题。繁重的管理工作 创建的多个数据副本,需要有多个集群来存储数据,管理员就需要在多个管理位置进行数据管理,同时还需要进行数据间的权限同步,增加了管理员的工作负担。数据泄露 数据中缺少一项许可,可能导致不该访问的数据被他人访问,造成数据泄露及重大的财务和声誉风险。难以安全地共享数据以进行新分析 很多时候需要将数据复制脱敏后共享,或者直接将数据不加控制的进行共享,这些都给企业的数据泄露带来了极大风险。CDP 平台的安全和治理 79 GDPR 等严格的新法规,使挑战变得更大 GDPR 等安全法律法规对数据保护提出了新的要求,这些要求企业更
114、好的保护用户的数据。二、应对措施 鉴于上述挑战,CDP 平台提供了全面的安全措施来保护客户的数据安全。1.CDP 平台的四大安全支柱 1)认证&边界 通过 Kerberos、LDAP、Apache Knox 实现认证方式、用户/组映射等验证企业目录中的用户。2)访问授权 通过 Apache Ranger 和 Apache Atlas 等技术来定义用户和应用程序可以处理数据的访问权限。3)可见性 通过 Apache Atlas 和 Apache Ranger 进行审计、数据血缘等报告数据来自何处以及如何使用。CDP 平台的安全和治理 80 2.数据保护 通过 SSL/TLS,HDFS TDE,R
115、anger(KMS,Masking,Filtering)等进行加密、密钥管理以保护集群中的数据免受未授权的可见性。3.保护企业数据 在实际应用中,上述四个支柱通过以下方式保护企业数据:1)护城河 通过防火墙来构建企业数据安全的护城河,以拦截未授权访问。2)有限的入境点 通过 Apache Knox 构建有限的入境点,只对外暴露一个端口,应用的端口都可以通过 Knox 代理进入,以确保用户通过安全入口进入环境。3)检查身份 通过 LDAP/AD 等技术进行身份验证;确保用户是他所说的那个人。4)内墙 在大平台内部运用 Kerberos 提供服务、数据库、主机以及用户间的访问认证。CDP 平台的安
116、全和治理 81 5)守望塔 通过 Apache Ranger 控制用户访问权限。6)高硬墙 针对企业核心数据,通过 HDFS Encryption 进行数据加密的方式提供数据保护。4.认证&边界 身份验证是一个过程,要求用户和服务在尝试访问系统资源时证明其身份。组织通常通过各种经过时间考验的技术来管理用户身份和身份验证,包括可插入身份验证模块(PAM)、用于身份、目录和其他服务(例如组管理)的轻量级目录访问协议(LDAP)以及用于身份验证的 Kerberos。Cloudera 集群支持与所有这些技术的集成。例如,拥有现有 LDAP 目录服务(例如Active Directory,包含在 Mic
117、rosoft Windows Server 中,作为其 Active Directory 服务套件的一部分)的组织可以利用该组织的现有用户帐户和组列表,而不是在整个集群中创建新帐户。使用 Active Directory 或 OpenLDAP 等外部系统可以支持用户角色授权机制。作为 LDAP 的替代方案,您可以使用可插入身份验证模块(PAM),这是用于外部身份验证的标准 Linux 模块。在 Cloudera Manager 中,PAM 配置比 LDAP 更简单,系统管理员可以通过安装新的 PAM 模块来添加新的身份验证方法。如果您有多个LDAP 服务器,您可以使用系统安全服务守护程序(SS
118、SD)配置 PAM 以与 LDAP 同步,因为 Cloudera Manager 不支持多个 LDAP 服务器。您还可以将 Cloudera Manager 配置为使用 Apache Knox 进行身份验证,并使用 PAM 来查找存储在 LDAP中的用户和角色。对于身份验证,Cloudera 支持与 MIT Kerberos 和 Active Directory 的集成。Microsoft Active Directory 除了其身份管理和目录功能(即 LDAP)之外,还支持 Kerberos 进行身份验证。Kerberos 提供强身份验证,强意味着在身份验证过程中,在请求进程和服务之间的交换
119、中使用加密机制而不是单独的密码。CDP 平台的安全和治理 82 这些系统并不相互排斥。例如,Microsoft Active Directory 是一种 LDAP 目录服务,它还提供 Kerberos 身份验证服务,并且 Kerberos 凭据可以在 LDAP 目录服务中存储和管理。Cloudera Manager Server、CDP 节点和 Cloudera Enterprise 组件,例如 Apache Hive、Hue 和 Impala,都可以使用 Kerberos 身份验证。1)身份和权限安全 CDP 平台使用的身份认证技术主要是 Kerberos、Apache Knox 和 LDA
120、P。Apache Knox 可以集成所有数据访问,利用现有目录和协议,实现跨所有接口与 SSO 进行一致的身份验证,只暴露最小的端口。2)身份识别方法 CDP 平台提供的身份识别方法有两种:目录选择和协议选择。目录选择:Active Directory,Altus 目录,云目录,等等。协议选择:LDAP,SAML 或访问密钥。大多数客户选择与企业 Active Directory 集成。用户利用现有的用户 ID、密码和组成员身份,来访问 Cloudera 资源。无论部署环境如何,都使用相同的登录,即用户不需要新帐户,大多数用户甚至无需了解正在使用哪个云(或本地)基础架构。3)认证方式及步骤 W
121、eb UIs:LDAP 和 SAML 身份验证选项。SQL Access:LDAP/AD 和 Kerberos 身份验证选项。Commend Line:有两种认证方式:?Kerberos 认证?利用 Active Directory(AD),Cloudera Manager 提供的自动化功能 CDP 平台的安全和治理 83 示例 步骤一:在 AD 上认证用户。步骤二:认证的用户获取 Kerberos 票据。步骤三:访问票据授权的服务,完成访问。4)租户集群访问流程 CDP 平台的安全和治理 84 用户通过 LDAP 账户访问 Linux 系统,Linux 系统通过 SSSD 服务同步 LDAP
122、 账户提供用户访问认证。用户通过接口机访问Hadoop平台,先通过Hadoop认证,如Kerberos Principal密码或 Keytab 等。进入 Hadoop 平台后可以同步访问 Sentry、Ranger、HBase、HDFS ACL、YARN ACL 等做进一步的资源访问控制。5)Apache Knox 功能 Apache Knox 是用于与 REST API 和 UI 交互的应用程序网关。Knox Gateway 为Cloudera Data Platform 集群中的所有 REST 和 HTTP 交互提供单一访问点。安装 Knox 时,您必须在集群上启用 Kerberos。Kn
123、ox 提供三组面向用户的服务:CDP 平台的安全和治理 85 代理服务 Apache Knox 项目的主要目标是通过 HTTP 资源代理提供对 Apache Hadoop 的访问。身份验证服务 用于 REST API 访问的身份验证以及用于 UI 的 WebSSO 流。LDAP/AD,基于标题的PreAuth,Kerberos,SAML,OAuth 都是可用的选项。客户端服务 客户端开发可以通过 DSL 脚本编写,也可以直接将 Knox Shell 类用作 SDK。KnoxShell 交互式脚本环境将 groovy shell 的交互式 shell 与 Knox Shell SDK 类结合在一
124、起,以便与已部署的 Hadoop 集群中的数据进行交互。Knox API 网关被设计为一个反向代理,考虑到策略执行领域的可插拔性,通过供应商和它代理请求的后端服务。策略实施的范围包括身份验证/联合、授权、审计、分发、主机映射和内容重写规则。政策是通过供应商链实施的,供应商链是在拓扑部署描述符中为由 Knox 管理的每个 Apache Hadoop 集群定义的。集群定义也在拓扑部署描述符中定义,并为 Knox网关提供集群布局,用于在面向用户的 URL 和集群内部之间进行路由和转换。每个受 Knox 保护的 Apache Hadoop 集群都有其一组 REST API,由单个集群特定的应用程序上下
125、文路径表示。这使 Knox 网关既可以保护多个集群,又可以为 REST API 消费者提供一个端点,用于跨多个集群访问所有所需的服务。只需将拓扑部署描述符写入 Knox 安装的拓扑目录,即可处理新的 Apache Hadoop集群定义,配置策略执行提供程序,并使应用程序上下文路径可供 API 使用者使用。虽然不安全的 Apache Hadoop 集群有很多好处,但 Knox 网关也很好地补充了kerberos 安全集群。结合 Kerberos 保护的 Apache Hadoop 集群的适当网络隔离,Knox Gateway 为企业提供了一个解决方案:CDP 平台的安全和治理 86 与企业身份管
126、理解决方案完美集成。保护集群部署的细节(主机和端口对最终用户隐藏)。简化客户需要与之交互的服务数量。5.访问授权 授权与谁有权访问或控制给定的什么资源或服务有关。由于Hadoop将多个不同的、以前独立的 IT 系统的功能合并在一起,作为一个企业数据中心来存储和处理组织内的所有数据,因此它需要具有不同粒度的多个授权控制。在这种情况下,Hadoop 管理工具通过以下方式简化设置和维护:将所有用户绑定到可以在现有 LDAP 或 AD 目录中指定的组。为类似的交互方法提供基于角色的访问控制,例如批处理和交互式 SQL 查询。例如,Apache Ranger 权限适用于 Hive(HiveServer2
127、)和 Impala。CDP 目前提供以下形式的访问控制:传统 POSIX 样式的权限用于目录和文件,其中每个目录和文件都分配有一个所有者和组。每个任务都有一组可用的基本权限;文件权限只是读、写和执行,目录有一个额外的权限来确定对子目录的访问。Apache HDFS ACL 允许您为特定的命名用户或命名组设置不同的权限,从而提供对 HDFS 文件权限的细粒度控制。Apache HBase使用ACL按列、列族和列族限定符授权各种操作(READ,WRITE,CREATE,ADMIN)。HBase ACL 被授予和撤销给用户和组。使用 Apache Ranger 进行访问控制。1)访问安全 在 CDP
128、 中,访问安全主要通过 Apache Ranger 和 Apache Atlas 来完成,实现访问权限和授权的能力。CDP 平台的安全和治理 87 Apache Ranger 提供:数据的逻辑副本。所有访问路径上的一组权限。细粒度的访问权限,直至列和行级别:?动态列掩码。?动态行过滤。?通过与 Apache Atlas 的结合实现基于分类的安全性。2)Apache Ranger 功能 a)授权 Apache Ranger 通过用户界面管理访问控制,确保跨 Cloudera Data Platform(CDP)组件的一致策略管理。安全管理员可以在数据库、表、列和文件级别定义安全策略,并可以管理特
129、定的基于 LDAP 的组或个人用户的权限。基于时间或地理位置等动态条件的规则也可以添加到现有策略规则中。Ranger 授权模型是可插入的,可以使用基于服务的定义轻松扩展到任何数据源。一旦用户通过身份验证,就必须确定他们的访问权限。授权定义了用户对资源的访问权限。例如,可能允许用户创建策略和查看报告,但不允许编辑用户和组。您可以使用 Ranger 来设置和管理对 Hadoop 服务的访问。Ranger 使您能够为特定资源(HDFS、HBase、Hive 等)创建服务,并为这些服务添加访问策略。Ranger 安全区域使您能够将服务资源组织到多个安全区域中。您还可以创建基于标签的服务并为这些服务添加
130、访问策略。使用基于标签的策略,您可以跨多个组件控制对资源的访问,而无需在每个组件中创建单独的服务和策略。您还可以使用 Ranger TagSync 将 Ranger 标签存储与外部元数据服务(例如 Apache Atlas)同步。集中式平台,可跨 Hadoop 生态系统一致地定义和管理安全策略。CDP 平台的安全和治理 88 HDFS,Hive,HBase,YARN,Kafka,Solr,Storm,Knox,NiFi,Atlas,Impala,HMS。具有自定义策略条件和上下文丰富程序的可扩展体系结构。轻松添加新的组件类型以进行授权。b)密钥管理 存储和管理加密密钥策略和生命周期。支持 HD
131、FS 透明数据加密。与 HSM 集成。Safenet(LUNA,KeySecure)。c)审计 Apache Ranger 提供了一个集中式框架,用于收集访问审计历史记录和报告数据,包括过滤各种参数。Ranger 增强了从 Hadoop 组件获取的审计信息,并通过这种集中报告功能提供了洞察力。所有访问请求的中央审核位置。支持多个目标源(HDFS,Solr 等)。实时视觉查询界面。3)Apache Ranger 架构 在 Apache Ranger 架构中,对外暴露的是 Ranger 管理 Portal,即进行整体权限管控的 Portal,包括两部分内容:Ranger 审计服务器和 Ranger
132、 策略服务器,都是运用 Plugin 的方式从 Hadoop 组件中采集数据和应用策略,审计服务器会将采集来的数据放入 Solr 或 HDFS 中。Ranger 架构中的另一部分是通过 API 与遗留的工具和数据治理进行集成。CDP 平台的安全和治理 89 Apache Ranger 架构 4)Apache Ranger 的 ABAC 模型 Apache Ranger 支持在授权策略中使用用户、组、资源、分类和环境属性。ABAC 使得在事先不了解特定资源、特定用户的情况下表达授权策略成为可能这有助于避免在引入新资源或用户时需要新策略。ABAC 也可用于设置行过滤器。主题、行动、资源和环境的结合
133、。CDP 平台的安全和治理 90 使用描述性属性:AD 组,基于 Apache Atlas 的标签或分类、地理位置等。Ranger 的方法与 NIST 800-162 一致。避免角色扩散和可管理性问题。5)Apache Ranger:全面的可扩展授权 资源是 Apache Ranger 策略模型中的基本元素。Apache Ranger 启用策略来授权对资源的访问。在这种情况下,资源是任何需要授权访问的东西,如文件/路径、数据库、表、列、主题;但也可以是服务比如 Apache Knox 拓扑。Apache Ranger策略模型以声明的方式捕获服务资源的详细信息例如层次结构、区分大小写、支持行过滤
134、器/数据屏蔽等详细信息。当您登录到 Ranger 控制台时,将显示基于资源的策略服务管理器页面。您可以使用此页面为 Hadoop 资源(HDFS、HBase、Hive 等)创建服务并为这些资源添加访问策略。单击顶部菜单中的访问管理器可打开“基于资源的策略服务管理器”页面,还显示一个子菜单,其中包含指向基于资源的策略、基于标签的策略和报告的链接(当您将鼠标悬停在访问管理器上时,也会显示此子菜单关联)。CDP 平台的安全和治理 91 Access ManagerResource Based Policies:打开 Service Manager for Resource Based Policie
135、s 页面。您可以使用此页面为资源(HDFS、HBase、Hive 等)创建服务并为这些服务添加访问策略。Access ManagerTag Based Policies:打开 Service Manager for Tag Based Policies 页面。您可以使用此页面创建基于标签的服务并向这些服务添加访问策略。使用基于标签的策略,您可以跨多个组件控制对资源的访问,而无需在每个组件中创建单独的服务和策略。Access ManagerReports:打开 Reports 页面。您可以使用此页面根据策略名称、资源、组和用户名等搜索条件为基于资源和标签的策略生成用户访问报告。审核:您可以使用审
136、核页面在资源级别监控用户活动,还可以根据用户、组或时间设置条件审核。审核页面包括访问、管理、登录会话、插件、插件状态和用户同步选项卡。安全区域:让您可以将基于资源和标签的服务和策略组织到单独的安全区域中。您可以为每个安全区域分配一名或多名管理员。然后,安全区域管理员可以为其安全区域创建和更新策略。CDP 平台的安全和治理 92 设置:使您能够管理策略权限并将其分配给用户和组。单击或将鼠标悬停在设置上会显示一个子菜单,其中包含指向用户/组/角色和权限页面的链接。6)Apache Ranger 提供的安全策略 a)基于动态标签的安全策略 在企业数据湖中的实体(HDFS、Hive 表、HBase 表
137、等)通过 Atlas 进行 Tag 或分类,在 Ranger 中通过 Atlas 客户端订阅对应主题并获取元数据更新,同时基于 Tag的安全控制(如基于分类、禁令、时间、位置等)设置对应的安全策略。CDP 平台的安全和治理 93 b)动态行过滤和列掩码 在下图的示例中,一个跨国银行有来自美国和欧洲的数据,在这个数据平台里有两类用户,分别是美国的分析师组 Joe 和欧洲的 HR 用户组 Ivanna,他们都执行类似的 Select From 语句无任何过滤条件。美国分析师组 Joe 将具有 CC 和国民 ID(SSN)的美国人员的数据视为掩码值,并且 MRN 为无效,而欧洲的 Ivanna 则可
138、以看到未掩码的内容,但受到行过滤策略限制,只能查看仅适用于欧洲人员的数据。在这个示例中运用了 Ranger 的两类策略:按区域过滤行和列掩码,在列掩码中还包含基于资源的权限控制和基于Tag的权限控制,在后面的示例中会进行详细介绍。7)Apache Ranger 策略评估流程 在授权访问请求时,Apache Ranger 插件会评估适用于被访问资源的 Ranger 策略。下图显示了策略评估流程的详细信息。CDP 平台的安全和治理 94 a)寻找标签 Apache Ranger 支持注册上下文增强器的服务,用于将上下文数据更新为访问请求。Ranger 标签服务是基于标签的策略功能的一部分,它添加了
139、一个名为RangerTagEnricher 的上下文增强器。此上下文丰富器负责为请求的资源查找标签并将标签详细信息添加到请求上下文中。这个上下文丰富器保留可用标签的缓存;在处理访问请求时,它会找到适用于所请求资源的标签,并将标签添加到请求上下文中。context enricher 通过定期轮询 Ranger Admin 来更新缓存。b)评估基于标签的策略 一旦找到所请求资源的标签列表,Apache Ranger 策略引擎就会评估适用于这些标签的基于标签的策略。如果这些标签之一的策略导致拒绝,则访问将被拒绝。如果没有拒绝任何标签,并且如果策略允许其中一个标签,则将允许访问。如果没有任何标签的结果
140、,或者没有资源的标签,策略引擎将评估基于资源的策略来做出授权决定。CDP 平台的安全和治理 95 c)在条件中使用标签 Apache Ranger 允许在评估授权策略时使用自定义条件。Apache Ranger 策略引擎使各种请求详细信息(例如用户、组、资源和上下文)可用于条件。由增强器添加的请求上下文中的标签可用于条件,可用于影响授权决策。标签服务实例中的默认策略,EXPIRES_ON 标签,使用这样的条件来检查请求日期是否晚于标签属性 expiry_date 中指定的值。除非在 Atlas 中创建了 EXPIRES_ON标签,否则此默认策略不起作用。d)Ranger 准入条件 Apache
141、 Ranger 访问策略模型由两个主要部分组成:应用策略的资源规范,例如HDFS 文件和目录、Hive 数据库、表和列、HBase 表、列族和列等;以及特定用户和组访问条件的规范。e)允许拒绝和排除条件 Apache Ranger 支持以下访问条件:允许 从允许中排除 拒绝 从拒绝中排除 这些访问条件使您能够设置细粒度的访问控制策略。例如,您可以允许“finance”组中的所有用户访问“finance”数据库,但拒绝“interns”组中的所有用户访问。假设“实习生”组的成员之一“斯科特”需要完成一项需要访问“财务”数据库的任务。在这种情况下,您可以添加一个 Exclude from Deny
142、 条件,允许用户“scott”访问“finance”数据库。下图显示了如何在Apache Ranger 中设置此策略:CDP 平台的安全和治理 96 f)准入条件政策评估 Apache Ranger 策略按特定顺序进行评估,以确保可预测的结果(如果没有允许访问的访问策略,授权请求通常会被拒绝)。下图显示了政策评估工作流程:CDP 平台的安全和治理 97 三、数据治理 1.建立可信数据湖的数据管理 CDP 平台的安全和治理 98 利用 CDP 平台构建可信数据湖,其中包含了大量的数据管理,包括:数据质量和配置文件、安全和访问控制、元数据管理、数据保留和归档、主数据管理、业务定义、数据血缘、审计、
143、搜索和索引、治理等。2.理解你的数据 通过了解以下内容更好的理解数据:如何发现哪些数据存储在哪里?如何追踪数据沿袭?如何以适当的粒度保护数据?如何跟踪谁有权访问数据?如何审核谁访问了数据?如何启用数据自助服务?如何始终如一地管理创建、应用和管理策略?如何确保元数据随数据移动而保留?3.Apache Atlas 架构 Apache Atlas 为 Hadoop 提供数据治理功能。Apache Atlas 用作通用元数据存储,旨在在 Hadoop 堆栈内外交换元数据。Atlas 与 Apache Ranger 的紧密集成使您能够跨 Hadoop 堆栈的所有组件一致地定义、管理和管理安全性和合规性策
144、略。Atlas为 Data Steward Studio 提供元数据和沿袭,以支持跨企业数据管理数据。CDP 平台使用 Apache Atlas 来进行理解数据的工作。Atlas 主要负责元数据管理、数据血缘和数据分类处理,其架构图如下:CDP 平台的安全和治理 99 Apache Atals 通过 Messaging 消息框架从 Apache Hadoop 组件中捕获数据血缘,并将数据血缘维护到 Janus 图数据库系统中。审计系统是维护元数据变更的操作审计。在他们之上提供包括分类、数据资产、业务术语、血缘等搜索能力,最上层是REST API,可以灵活访问 Apache Atlas 服务、C
145、loudera 数据平台(CDP)组件、UI 和外部工具。Bridge 负责导入和导出到现有业务元数据,并与其他系统进行集成整合。4.搜索 使用任何元数据文本,按实体类型、实体和系统属性值、分类或词汇表术语进行搜索。您可以使用四种搜索模式搜索实体:来自所有字符串类型元数据的自由文本,包括分类、标签、业务元数据属性和用户定义的属性。按实体类型,按系统属性、实体属性、业务元数据属性、分类、术语、标签或用户定义的属性进行细化。按分类。CDP 平台的安全和治理 100 按术语。5.使用 Atlas 分类和标签 使用标签和分类将元数据添加到 Atlas 实体。您可以将元数据添加到 Atlas 实体,以帮
146、助您的组织查找、组织和分享您对驱动业务流程的数据资产的理解。Atlas 提供了两种向实体添加元数据的机制:标签和分类。标签和分类都可以应用于实体,以帮助描述实体的内容、状态或其他业务驱动的价值。CDP 平台的安全和治理 101 1)标签 标签是可以与实体相关联并可重复用于其他实体的单词或短语(字符串)。它们是一种向实体添加信息的轻量级方法,因此您可以轻松找到它并与他人分享您对实体的了解。任何人都可以创建标签并将标签与实体相关联。2)分类 分类是像标签一样的字符串,增加了复杂性和结构:Atlas 包括用于使用分类查找实体的精确搜索工具。分类可以通过沿袭关系自动传播到其他实体。您可以使用分类来驱动
147、 Ranger 中的访问控制策略。您可以使用键值对形式的属性来丰富分类,并设置值来描述特定实体。管理员可以通过 Ranger 中的 Atlas 策略控制谁可以创建和分配分类。简而言之,使用标签来标注实体;使用分类让实体参与 Atlas 内外的流程。6.Apache Atlas:连接器和生态系统 Atlas 自身是一个不断扩大的、开放的生态,其中包括一些自定义集成,与 Hadoop生态项目集成,另外还有一些外部已认证企业工具和认证中的企业工具。CDP 平台的安全和治理 102 四、实操演示 演示 CDP 平台中 Apache Knox,Apache Ranger 和 Apache Atlas 的
148、一些功能和策略。1.前期准备 进入 Cloudera Manager,本次演示使用阿里云 CDP Base 的一个集群,这个集群要启用 Kerberos。同时,需要提前部署包括 Knox、Atlas、Ranger 等组件。CDP 平台的安全和治理 103 如需启用 Knox 服务,只需在对应项目的配置中选择 Knox 即可。CDP 平台的安全和治理 104 2.使用 Joe 分析师登录进行演示 进入 Knox Gateway 页面,在 CDP Proxy 中选择 Zeppelin 并进入。进入 Zeppelin 中 Joe 的工作面板,其中包含完整的分析师所使用的内容。CDP 平台的安全和治理
149、 105 重点关注 1:动态数据掩码 在动态列掩码中包括两类:MRN/password 字段通过分类的 policy 进行掩码,以及通过 Hive 字段 Policy 进行的其它掩码。查询结果显示 MRN 和 Password、以及streetaddress、ccnumber、nationalid 都被掩码。CDP 平台的安全和治理 106 下面进入 Ranger 查看为实现上述 Policy 的设置。在 Access Manager 中有 Resource Based Policies、Tag Based Policies 和 Reports功能。首先查看Resource Based Pol
150、icies,其中掩码页面列出了掩码的定义。如:nationalid显示最后 4 位,ccn 显示前 4 位,password 的 policy 没有启用,点击任意项即可进入配置详情页。CDP 平台的安全和治理 107 查看 Tag Based Policies 中的 Masking 页面,点击 Mask PII(数据 PII 加密)进入配置详情页。其中可以看到,针对不同的用户组选择不同的掩码方式,如:HR 用户组是 unmasked(即可以看明细),Analyst用户组有两种表达式:对于Tag属性是MRN使用Nullify,对于 Tag 属性是 Password 使用 Hash。进入 Apac
151、he Atlas,Atlas 提供搜索、分类和术语的能力。搜索 PII,并查看其中的 MRN 和 Password。CDP 平台的安全和治理 108 mrn 的属性是 MRN,所属表是 us_customers,Password 属性是 Password,所属表是 us_costomers。重点关注 2:Prohibition policy Prohibition policy 拒绝通过字段组合(zipcode、insuranceid、bloodtype)来确认用户信息,下面要来演示在 Ranger 中是如何完成这一工作。CDP 平台的安全和治理 109 回到 Ranger,找到对应的 Pol
152、icy(Policy Name:Prohibit zipcode,insuranceid,bloodtype)。其中DENY的条件是worldwidebank.ww_customers.insuranceid,worldwidebank.ww_customres.bloodtype 这些字段。CDP 平台的安全和治理 110 同样也可以在 Access 中查看这个 Policy 的策略设置。重点关注 3:Leased Data Asset 通过 Expired On 的分类来进行访问控制的方式,是基于 Tag Based Policy。进入 Ranger Tag Based Policy 设置
153、访问条件。重点关注 4:Data Quality annotation based policy 通过数据质量打分(Data Quality Score)的方式进行访问控制。CDP 平台的安全和治理 111 在 Atlas 中的 claim saving 表来定义数据质量。这里定义的值是 0.51,因此,如果小于 0.51 则被拒绝访问。CDP 平台的安全和治理 112 3.使用 elt_user 用户登录进行演示 进入 Zeppelin elt_user 工作面板。查看 customers_trans 中的数据,显示都是无加密的明细数据。4.Ranger 的其他功能演示 1)Reports
154、CDP 平台的安全和治理 113 Report 中展示所有 Policies 的权限设置信息。2)审计 审计提供了很多能力,包括:Access,Admin,Login Sessions,Plugins,Plugin Status,User Sync。CDP 平台的安全和治理 114 Access 访问信息中的过滤器可以帮助过滤信息,同时可以通过过滤器得到访问拒绝的原因。CDP 集群管理 115 CDP 集群管理 Cloudera 和阿里云深度合作推出了基于阿里云部署的 Cloudera 企业数据云平台,即 CDP 平台。CDP 由两个最好的开源数据分析平台 CDH 和 HDP 融合而来,集合了
155、两个平台各自的最佳功能,同时增加了新功能。本文主要介绍 CDP 的集群管理。我们现在使用的是本地部署的 CDP 平台,这款产品由 40 多个组件组成,在原来的CDH 和 HDP 基础上增加了不少功能,同时提供了很多企业定制化的功能。整个 CDP 平台主要分成了以下几部分:上图左侧是运营和管理部分,主要是通过 Cloudera Manager 来控制。上图中间方框内的部分,包含了整个的数据存储、数据移动、任务编排和用户接口、计算、运营数据库、数据仓库、搜索安全和治理,同时还有加密相关的内容。CDP 集群管理 116 Cloudera 其他产品,如 CDSW、Cloudera DataFlow、C
156、loudera Workload XM,也都可以通过 Cloudera Manager 来管理,提供统一的使用和支持。一、Cloudera Manager 概览 1.Cloudera Manager 的总体功能 Cloudera Manager 是用于管理、配置和监控 CDP 私有云基础集群和 Cloudera Runtime 服务的应用程序。Cloudera Manager 服务器在您的 CDP 私有云基础部署中的一台主机上运行,并使用在集群中每台主机上运行的 Cloudera Manager Agent 管理一个或多个集群。Cloudera Manager 管理控制台是一个 Web 应用程
157、序管理员,其他人可以使用它来管理 CDP 私有云基础部署。使用 Cloudera Manager 管理控制台,您可以启动和停止集群和单个服务、配置和添加新服务、管理安全性以及升级集群。您还可以使用 Cloudera Manager API 以编程方式执行管理任务。Cloudera Manager 版本独立于它所属的 CDP Private Cloud Base 版本。Cloudera Manager 是一个用于管理集群的端到端应用程序。借助 Cloudera Manager,您可以轻松部署和集中操作完整的 Cloudera Runtime 堆栈和其他托管服务。该应用程序可自动执行安装和升级过程
158、,并为您提供集群范围内的主机和正 CDP 集群管理 117 在运行的服务的实时视图。Cloudera Manager Admin Console 提供了一个单一的中央控制台,您可以在其中更改整个集群的配置,并结合了全方位的报告和诊断工具来帮助您优化性能和利用率。Cloudera Manager 还管理安全和加密功能。Cloudera Manager 的单个实例可以管理多个集群,包括旧版本的 Cloudera Runtime 和 CDH。它覆盖了集群所有资源与服务的统一配置、管理、监控、诊断等所有管理工作,包含:自动化部署 智能配置警告 高可用配置 多集群多版本管理 细粒度的运维用户管理 静态和
159、动态资源管理 全局时间轴控制 智能日志管理 定制化的指标报表 开放 API 可以集成第三方工具 SDX 公有云/私有云架构支持 2.Cloudera Manager 术语 要有效地使用 Cloudera Manager,您应该首先了解它的术语。术语之间的关系如下所示,其定义如下:CDP 集群管理 118 一些术语,例如集群和服务,在没有进一步解释的情况下使用。其他术语,例如角色组、网关、主机模板和 Parcel,将在以下部分进行解释。有时术语服务和角色用于指代类型和实例,这可能会造成混淆。Cloudera Manager 和本节有时对类型和实例使用相同的术语。例如,Cloudera Manag
160、er Admin Console HomeStatus 选项卡和 Clusters ClusterName 菜单列出了服务实例。这类 似 于 编 程 语 言 中 的 做 法,其 中 术 语“字 符 串”可 能 表 示 一 种 类 型(java.lang.String)或该类型的实例。在需要区分类型和实例的地方,附加“类型”一词表示类型,附加“实例”一词明确表示实例。部署 Cloudera Manager 及其管理的所有集群的配置。动态资源池 在 Cloudera Manager 中,资源的命名配置和用于在池中运行的 YARN 应用程序或Impala 查询之间调度资源的策略。集群?包含 HDFS
161、 文件系统并在该数据上运行 MapReduce 和其他进程的一组计算机或计算机机架。CDP 集群管理 119?Cloudera Manager 中的一个逻辑实体,包含一组主机、安装在主机上的单个版本的 Cloudera Runtime 以及运行在主机上的服务和角色实例。一台主机只能属于一个集群。Cloudera Manager 可以管理多个集群,但是每个集群只能与一个 Cloudera Manager Server 相关联。主机 在 Cloudera Manager 中,运行角色实例的物理机或虚拟机。一台主机只能属于一个集群。机架 Cloudera Manager 中的物理实体,包含一组通常由
162、同一交换机提供服务的物理主机。服务?尽可能可预测的环境中运行在/etc/init.d/的 System V init 脚本的 Linux 命令,删除大多数环境变量并将当前工作目录设置为/。?Cloudera Manager 中的一类托管功能,可能是分布式的,也可能不是,在集群中运行。有时称为服务类型。例如:Hive、HBase、HDFS、YARN 和 Spark。服务实例 在 Cloudera Manager 中,在集群上运行的服务实例。例如:“HDFS-1”和“yarn”。一个服务实例跨越许多角色实例。角色 在 Cloudera Manager 中,服务中的一类功能。例如,HDFS 服务有以
163、下角色:NameNode、SecondaryNameNode、DataNode 和 Balancer。有时称为角色类型。角色实例 在 Cloudera Manager 中,在主机上运行的角色实例。它通常映射到 Unix 进程。例如:“NameNode-h1”和“DataNode-h1”。CDP 集群管理 120 角色组 在 Cloudera Manager 中,一组角色实例的一组配置属性。主机模板 Cloudera Manager 中的一组角色组。将模板应用于主机时,将创建每个角色组中的角色实例并将其分配给该主机。网关 一种通常为客户端提供对特定集群服务的访问权限的角色。例如,HDFS、Hiv
164、e、Kafka、MapReduce、Solr 和 Spark 都具有网关角色,为它们的客户端提供对各自服务的访问。网关角色的名称中并不总是带有“网关”,也不是专门用于客户端访问的。例如,Hue Kerberos Ticket Renewer 是代理来自 Kerberos 的票证的网关角色。支持一个或多个网关角色的节点有时被称为网关节点或边缘节点,“边缘”的概念在网络或云环境中很常见。就 Cloudera 集群而言,当从 Cloudera Manager Admin Console 的 Actions 菜单中选择 Deploy Client Configuration 时,集群中的网关节点会收到
165、适当的客户端配置文件。Parcel 一种二进制分发格式,包含已编译的代码和元信息,例如包描述、版本和依赖项。静态服务池 在 Cloudera Manager 中,整个集群资源(CPU、内存和 I/O 权重)跨一组服务的静态分区。3.CM 架构 如下图所示,Cloudera Manager 的核心是 Cloudera Manager Server。Server 托管 Cloudera Manager Admin Console、Cloudera Manager API 和应用程序逻辑,并负责安装软件、配置、启动和停止服务以及管理服务运行的集群。CDP 集群管理 121 Agent(代理):安装在
166、每台主机上。该代理负责启动和停止进程、解包配置、触发安装以及监控主机。Management Service(管理服务):由一组角色组成的服务,这些角色执行各种监控、警报和报告功能。数据库:存储配置和监控信息。通常,多个逻辑数据库跨一个或多个数据库服务器运行。例如,CM Server 和监控角色使用不同的逻辑数据库。Cloudera Repository(存储库):由 CM 分发的软件存储库。客户端:是与服务器交互的接口:CDP 集群管理 122?CM Admin Console(CM 管理控制台):基于 Web 的管理员用于管理集群和 CM 的用户界面。?CM API:API 开发人员用于创建
167、自定义 CM 应用程序。1)心跳 心跳是 Cloudera Manager 中的主要通信机制。默认情况下,代理每 15 秒向Cloudera Manager 服务器发送一次心跳。然而,为了减少用户延迟,当状态改变时频率会增加。在心跳交换期间,代理将其活动通知给 Cloudera Manager 服务器。反过来,Cloudera Manager 服务器响应代理应该执行的操作。Agent 和 Cloudera Manager Server 最终都会进行一些协调。例如,如果你启动一个服务,Agent 会尝试启动相关进程;如果进程启动失败,Cloudera Manager Server 会将启动命令标
168、记为失败。4.状态管理 Cloudera Manager Server 维护集群的状态。这种状态可以分为两类:“模型”和“运行时”,两者都存储在 Cloudera Manager Server 数据库中。Cloudera Manager 对集群和托管服务建模:它们的角色、配置和相互依赖性。模型状态捕获应该运行的位置和配置。例如,模型状态捕获一个集群包含 17 个主机 CDP 集群管理 123 的事实,每个主机都应该运行一个 DataNode。您可以通过 Cloudera Manager 管理控制台配置屏幕和 API 以及“添加服务”等操作与模型进行交互。运行时状态是什么进程在哪里运行,以及什么
169、命令(例如,重新平衡 HDFS 或运行备份/灾难恢复计划或滚动重启或停止)当前正在运行。运行时状态包括运行进程所需的确切配置文件。当您在 Cloudera Manager 管理控制台中选择 Start 时,服务器会收集相关服务和角色的所有配置,对其进行验证,生成配置文件,并将它们存储在数据库中。当您更新配置(例如,Hue 服务器 Web 端口)时,您已经更新了模型状态。但是,如果执行此操作时 Hue 正在运行,则它仍在使用旧端口。当这种不匹配发生时,角色被标记为具有“过时的配置”。要重新同步,您需要重新启动角色(这会触发配置重新生成和进程重新启动)。虽然 Cloudera Manager 对所
170、有合理的配置进行建模,但某些情况不可避免地需要特殊处理。为了允许您解决问题,例如,bug 或探索不受支持的选项,Cloudera Manager 支持“高级配置片段”机制,让您可以直接将属性添加到配置文件。二、Cloudera Manager 管理控制台 Cloudera Manager 管理控制台是基于 Web 的界面,可用于配置、管理和监控Cloudera Runtime。Cloudera Manager 管理控制台侧面导航栏提供以下选项卡和菜单:搜索:支持搜索服务、角色、主机、配置属性和命令。您可以输入部分字符串,并显示一个下拉列表,其中最多显示 16 个匹配的实体。示例:CDP 集群管
171、理 124 集群服务 查看服务实例或与该服务关联的角色实例的状态和其他详细信息。对服务实例,角色或特定角色实例进行配置更改。添加和删除服务或角色。停止、启动或重新启动服务或角色。查看已为服务或角色运行的命令。CDP 集群管理 125 查看审核事件历史记录。部署和下载客户端配置。退役和重新委任角色实例。进入或退出维护模式。执行特定于特定服务类型的操作。例如:?启用 HDFS 高可用性或 NameNode 联邦?运行 HDFSBalancer?创建 HBase、Hive 和 Sqoop 目录 CDP 集群管理 126 Cloudera Manager 管理服务:管理和监控 Cloudera Man
172、ager 管理服务。包括以下角色:活动监控器、警报发布者、事件服务器、主机监控器、报告管理器和服务监控器(Activity Monitor,Alert Publisher,Event Server,Host Monitor,Reports Manager,and Service Monitor)。CDP 集群管理 127 主机:显示由 Cloudera Manager 管理的主机。所有主机:显示集群中管理主机的列表。添加主机:启动“添加主机”向导。Parcels:显示集群中可用的 parcels,并允许您下载、分发和激活新的 parcels包。主机配置:打开“主机配置”页面,您可以在其中配置主
173、机并为一个或多个主机的全局配置属性指定替代。CDP 集群管理 128 角色:显示部署在每个主机上的角色。主机模板:创建和管理 主机模板,这些模板定义了可用于轻松扩展集群的角色组集。磁盘概述:显示集群中所有磁盘的状态。在此页面中,您可以:查看有关单个主机的状态和各种详细指标。进行配置更改以进行主机监控。查看主机上运行的所有进程。运行主机检查器。添加和删除主机。CDP 集群管理 129 创建和管理主机模板。管理 Parcels。退役和重新托管主机。进行机架分配。运行主机升级向导。报告:创建有关 HDFS、MapReduce、YARN 和 Impala 使用情况的报告、浏览 HDFS文件、并管理 H
174、DFS 目录的配额。CDP 集群管理 130 诊断:查看日志、事件和警报以诊断问题 审计:查询和筛选跨集群的审核事件,包括登录,跨集群等。图表:查询感兴趣的指标,将其显示为图表,并显示个性化的图表仪表板。CDP 集群管理 131 复制:管理复制计划和快照策略 管理:管理 Cloudera Manager 设置:配置 Cloudera Manager。警报:显示何时生成警报,配置警报收件人以及发送测试警报电子邮件。用户和角色:管理 Cloudera Manager 用户及其分配的角色和会话。CDP 集群管理 132 安全性:生成 Kerberos 凭据并检查主机。许可证:管理 Cloudera
175、许可证。语言:设置活动事件、健康事件和警报电子邮件的内容所使用的语言。外部帐户:配置从云服务到 Cloudera Manager 的连接。支持:显示各种支持的行动。发送诊断数据:将数据发送到 Cloudera 支持以支持故障排除。支持门户(Cloudera Enterprise):显示 Cloudera 支持门户。计划的诊断:每周配置自动收集诊断数据并发送给 Cloudera 支持的频率。以下链接打开了 Cloudera 网站上的最新文档:?帮助文档?安装指南?API 文档 CDP 集群管理 133?API Explorer(Cloudera Manager Swagger 界面)?发行说明
176、关于Cloudera Manager的版本号和内部版本详细信息以及Cloudera Manager服务器的当前日期和时间戳。下面演示一下 Cloudera Manager 新版本的功能。新版本的 Cloudera Manager 界面比较友好,主要分成两块,左边是菜单栏/功能栏,右边是功能的结构展示。Cloudera Manager 主页提供了两种展示类型:经典视图(Classic View)和表视图(Table View)。CDP 集群管理 134 表视图如上,里面展示了所有集群和其他内容,上面的 tab 里还可以查看所有运行情况,配置信息以及最近运行的命令。经典视图如上图,上面展示集群所有
177、组件,下面展示 Cloudera Manager 的服务信息,右边是一些图表。图表的默认时间是 30 分钟,用户可以根据自己的需求来设置不同的时间簿,也可以自定义。每个图表都可以放大来查看更细节的信息,也可以在图表生成器里打开以便在其他地方展示使用。CDP 集群管理 135 左侧菜单栏里面的集群主要分成三块内容,第一块是集群里面组件的信息,第二个是其他的一些功能,比如主机、用户角色、主机模板等等,最下面的是 Cloudera Manager 服务的内容。点击任意组件即可进入到它的展示页。“状态”里面展示了组件的运行状况测试、状况摘要、运行状态历史记录,和相关的图表。“实例”里面包含了组件的服务
178、角色,每个角色的状况和所在的主机等。CDP 集群管理 136 组件的配置参数是在“配置”里面设置的,Cloudera Manager 对配置进行了详细的划分,使得用户可以很容易找到对应的组件。“命令”里面显示了组件运行过程中出现的一些命令,便于用户后期去审核。“图表库”里面是一些默认的图表,用户也可以根据自己的需求来做自定义的图表。“审核”主要是对操作的审计。Cloudera Manager 还对组件做了很多扩充,比如 HDFS 里有文件浏览器用来浏览数据信息等内容。主机功能下面包括增加节点、Pacel 配置、主机配置、用户角色、主机模板、磁盘概述等等。主机页面展示了这个集群的所有主机,列出了
179、主机名称、IP、主机所有的角色、授权状态、信号负载等等详细内容。这里默认展示 10 个列,用户也可以根据需要再增加更多列,比如内核版本等等这些信息。添加主机可以直接通过界面来操作,可以把节点添加为只被 Cloudera Manager 管理或者把节点添加到集群,后面还可提供添加主机的向导。在 Cloudera Manager 里,所有的组件都通过 Pacel 来管理,它提供了一个管理和监控的页面。CDP 集群管理 137 上图可以看到,系统里的 Pacel 包有不同的状态,有的已经分配和激活,有的已分配未激活,有的没有下载。用户可以根据查看 Pacel 的使用情况,看到哪台机器在哪个节点上使用
180、。添加新的 Pacel 包有两点需要注意。一个是对应 Pacel 包的路径,这个实际上就是配用的链接。第二如果有些库是带有认证要求的,这里会要求启用认证,匹配用户的账户和密码信息,通过用户和密码就可以直接访问了。上图是 Pacel 的设置和后续检测新 Pacel 的内容。里面有默认的目录,也可以选择自己配置。CDP 集群管理 138 诊断里面是一些事件的信息和问题。我们可以通过筛选器对它进行过滤,来搜索对应的事件,然后判断问题。审核里面包含了整个系统的事件。CDP 集群管理 139 图表里面包含三块内容,一块是图表生成器,第二个是 DashBoard 和创建仪表盘。点击右上角的问号,会显示帮助
181、和示例,里面有标准文档提供给大家使用,可以直接拿过来拷贝执行,执行完之后就可以根据自己的需求构建不同类型的图表。构建完之后可以导入导出或保存。Cloudera Manager 还提供备份能力,它负责不同集群之间的数据同步。还有一块比较重要的内容就是管理,包括整个 Cloudera Manager 的设置、预警、用户和角色的配置、安全、许可证、语言和 Web 账户。CDP 集群管理 140 设置主要是配置 Cloudera Manager 的信息,包括 Pacel、外部认证安全性等。预警功能里有心跳预警、预警的配置和预警的捕获,用户也可以去修改对应的信息来启用预警或者关闭预警。捕获日志事件之后,
182、它可以更好地去跟踪日记,抽取日志时间的规则。预警可以通过 email 发送,也可以通过配置 SNMP,或者通过自定义的预警标本来配置。Cloudera Manager 做了很细的用户角色划分,使得不同的用户可以分配不同的角色来执行不同的权限。用户会话是当前活跃的用户的访问信息。安全部分主要是 Kerberos 和 TLS,里面提供了启用向导,用户可以根据向导来启用Kerberos 和 TLS。CDP 集群管理 141 Cloudera 还提供了不同的语言,包括中文、英语、德语、日语,用户需要在浏览器中进行设置,步骤如上。菜单栏的最下方还有部分功能。“正在运行的命令”是集群的命令情况,展开所有命
183、令就看到命令执行的情况。“支持”可以对应的支持门户和发送诊断数据,里面还提供了很多文档,包括安装部署的文档升级指南等。以上就是全部演示。如何访问 CDP 集群 142 如何访问 CDP 集群 一、前提条件 CDP 集群成功拉起之后。成功添加安全组白名单,并可以成功访问 CM 管控。二、使用 SSH 隧道方式访问 WEB 服务 1.创建 SSH 隧道 密钥的方式 ssh-i -N-D 8157 root 密码的方式 ssh-N-D 8157 root 相关参数描述如下:?8157:本地服务器端口以 8157 为例,实际配置时,您可使用本地服务器未被使用的任意一个端口。?-D:使用动态端口转发,启
184、动 SOCKS 代理进程并侦听用户本地端口。?:获取方式请参见【获取主节点的公网 IP 地址】。?:密钥文件保存的路径。2.配置浏览器 完成动态转发配置以后,您可以从以下两种方式中选择一种来进行浏览器配置。方式 1-Chrome 浏览器命令行方式 如何访问 CDP 集群 143 a)打开命令行窗口,进入本地 Google Chrome 浏览器客户端的安装目录。操作系统不同,Chrome 浏览器的默认安装目录不同。操作系统 Chrome 默认安装路径 Mac OS X/Applications/Google Chrome.app/Contents/MacOS/Google Chrome -use
185、r-data-dir=$HOME/chrome-with-proxy -proxy-server=socks5:/localhost:8157 Linux/usr/bin/google-chrome -user-data-dir=$HOME/chrome-with-proxy -proxy-server=socks5:/localhost:8157 Windows C:Program Files(x86)GoogleChromeApplicationchrome.exe -user-data-dir=%USERPROFILE%chrome-with-proxy -proxy-server=so
186、cks5:/localhost:8157 8157:本地服务器端口以 8157 为例,实际配置时,您可使用本地服务器未被使用的任意一个端口。在此 Chrome 会话中,您就可以通过内网访问 Cloudera Manager 和其他 Web UI了。比如:http:/cdp-master-:9870/dfshealth.html#tab-overview 如何访问 CDP 集群 144 方式 2-配置代理扩展程序的方式 代理扩展程序可以帮助您更加轻松地在浏览器中管理和使用代理,确保网页浏览和集群 Web UI 访问互不干扰。安装 Chrome 的 SwitchyOmega 插件。安装完成以后,单
187、击SwitchyOmega插件,然后在弹出框中选择选项进行配置。单击新建情景模式,输入情景模式名称(例如 SSH PAC),情景模式类型选择PAC 情景模式。在 PAC 脚本中配置以下内容。function regExpMatch(url,pattern)try return new RegExp(pattern).test(url);catch(ex)return false;function FindProxyForURL(url,host)/Important:replace 172.31 below with the proper prefix for your VPC subnet
188、if(shExpMatch(url,*localhost*)return SOCKS5 localhost:8157;if(shExpMatch(url,*cdp-*)return SOCKS5 localhost:8157;return DIRECT;完成上述参数配置后,在左侧导航栏中单击应用选项。如何访问 CDP 集群 145 打开 Chrome 浏览器,在 Chrome 中单击 SwitchyOmega 插件,切换到之前创建的 SSH tunnel 情景模式下。登录 CDP 管控,访问相应服务的 Web UI。例如:访问 Ranger 页面 三、使用 Knox 代理方式访问 WEB 服务
189、 登录到 Knox 所在节点,执行如下命令。先创建用户 test,并设置 test 的密码:1.先创建用户 test,并设置 test 的密码:useradd test passwd test 如何访问 CDP 集群 146 将用户 knox 添加到 admin 用户组中:usermod-a-G test knox 创建 shadow 组,将 knox 添加到 shadow 组中:#创建 group shadow groupadd shadow#将 root 添加到 shadow 组里 usermod-a-G shadow root#将 knox 添加到 shadow 组里 usermod-a
190、-G shadow knox#将文件/etc/shadow 的 group 修改为 shadow chgrp shadow/etc/shadow#添加/etc/shadow 文件 组的读权限:chmod g+r/etc/shadow groupadd shadow usermod-a-G shadow root usermod-a-G shadow knox chgrp shadow/etc/shadow chmod g+r/etc/shadow knox 登录页面:https:/ip:8443/gateway/homepage/home/使用 admin 用户名+密码成功登陆 如何访问 CD
191、P 集群 147 备注:Knox 匹配规则:.*$;https?:(.+):0-9+?.*$如何迁移 CDH/HDP 到 CDP 148 如何迁移 CDH/HDP 到 CDP 由于 CDH/HDP 的所有版本都已退出市场,而且两个产品的版本已经落后于最新的创新,且面临安全合规和 CVE 安全漏洞等方面的问题,新的 CDP 平台带来了更多的价值和创新,从旧平台(例如 Cloudera CDH 或 HDP)过渡到 CDP 公有云或 CDP 私有云的四种路径。四个路径分别是原地升级、迁移升级、滚动迁移升级和迁移到公有云。从遗留平台的发行版到 CDP 的所有路径的每种机制都有共同的工作、缓解风险和取得
192、成功成果的方面。其中包括工作负载审查、测试和验证、管理服务级别协议(SLA)、以及在移动期间最大程度地减少工作负载的不可用。因为滚动式迁移升级和迁移到公有云是迁移升级的变种,这里主要讨论原地升级和迁移升级的适合场景和方法。一、CDP 升级概述 在旧 CDH/HDP 升级到新 CDP 的过程中,主要有原地升级、迁移升级两种方式:原地升级 迁移升级 概述 卸载旧的 CDH,保留原有数据,然后安装新版 CDH 并升级 安装新的 CDH 集群,然后将现有数据拷贝至新集群,将新的 CDH 集群切换为生产集群 目标客户 没有富余的主机资源用做中间集群 能够接受较长的服务停机时间 有富余的主机资源(新节点或
193、者缩编现有节点)用做中间集群 要求极短的服务宕机时间 优点 不需要任何额外硬件资源 没有数据丢失风险 较短的服务停机时间 缺点 服务停机时间相对较长 需要多重验证 额外的硬件资源 需要迁移数据 整体升级周期较长 如何迁移 CDH/HDP 到 CDP 149 1.原地升级 1)版本要求 HDP2(2.6.5 以上版本)和 CDH5(5.13-5.16 版本)的用户可以直接采用原地升级,升级到 CDP7.03 以上版本。如果低于 HDP2.6.5 版本或 CDH5.13 版本,则需要先升级到对应版本再进行原地升级。而 CDH6 的用户都可以原地升级到 CDP7.1.7 以上版本;HDP3 的用户都
194、可以原地升级到 7.1.6 以上版本。2)用户特征 在原地升级的情况下,最适合的用户特征如下:没有额外的资源。组织有多个集群,可以在配置较低的环境中验证整个升级测试。集群里边有大型的单租户集群,而不是有很多租户,租户之间对时间要求也不一样。如何迁移 CDH/HDP 到 CDP 150 3)升级过程 备份应用程序和配置 已删除的组件查看和替换应用程序(docs)从 DEV 开始,升级 CM 部署 parcel、激活并升级到 CDP Runtime 完成应用冒烟测试 安排停机时间 升级主服务器、工作服务器、边缘服务器和客户端服务器 运行工作负载并完成 App Dev Signoff 4)升级任务
195、如何迁移 CDH/HDP 到 CDP 151 集群中的主要内容可以分成这样四部分:用户积累的历史数据,数据对应的 Schema等数据状态相关的元数据,数据处理的批量和流处理程序,数据上层的外部应用。其中历史数据和 Schema 不需要做特殊处理,在升级过程中会自动进行更新;但批量脚本和外部程序因为涉及到组件版本和 API 的调整,会涉及到代码改造的工作。2.迁移升级 迁移升级方法是 CDP 的第二条路径。在第二套硬件上配置了一个新的未开发的 CDP私有云基础版集群。对于阿里云上的用户,可以直接采用该方案进行迁移到基于阿里云部署的 CDP 平台上。该过程旨在最大程度地减少单个工作负载的停机时间,
196、同时在每个工作负载的基础上提供一种直接的回滚机制。迁移升级分为三个主要阶段。1)用户特征 在迁移升级的情况下,最适合的用户特征如下:有额外的基础设施,这一点对于阿里云用户来说得天独厚 干净的开始(新服务器配置,新网络,操作系统,平台)无法承受长时间停机的租户 大型的多租户集群,难以协调切换 如何迁移 CDH/HDP 到 CDP 152 2)升级过程 资产清单 创建新的 CDP PvC Base 集群 逐步将数据和工作负载迁移到 CDP 集群 随着工作负载从旧集群移出,服务器可以退役,然后添加到新的 CDP 集群 重复使用或停用旧硬件 3)升级任务 如何迁移 CDH/HDP 到 CDP 153
197、集群中的主要内容可以分成这样四部分:用户积累的历史数据,数据对应的 Schema等数据状态相关的元数据,数据处理的批量和流处理程序,数据上层的外部应用。其中历史数据和 Schema 需要进行迁移并升级到新版本;但批量脚本和外部程序因为涉及到组件版本和 API 的调整,会涉及到代码改造的工作。3.CDH/HDP 到 CDP 升级路线图 其中较为推荐 CDP7.1.7,版本更为稳定。CDP/HDP 的所有用户都可以通过原地升级或迁移升级到 CDP7.1.7。如果需要使用更低的版本,可以在上图找到适合的最低版本。4.技术风险和应对措施 如何迁移 CDH/HDP 到 CDP 154 二、迁移升级指南
198、迁移指导文档:https:/ 1.迁移升级工作分解 拷贝升级的五项核心工作:数据迁移(全量/增量方式)元数据迁移(关键组件的后台数据库)安全迁移(Linux User/LDAP/Kerberos/Sentry acl/其他 acl)批量脚本改造(SQL/Java script/Python script)外部应用对接(第三方工具/JDBC/ODBC 兼容性)如何迁移 CDH/HDP 到 CDP 155 2.迁移升级实施流程 拷贝升级实施流程一共分为三个阶段:1)第一阶段:预备期 主要完成 CDP 新集群的安装和检测,以及各项测试工作,具体工作内容如下:序号 工作内容 责任人 备注 1 制定拷贝
199、升级方案 项目组 Cloudera PS 项目组提供需求,PS 负责拷贝升级方案 2 CDP 集群安装和部署 主机部 Cloudera PS 主机部负责提供机位、电源和网络,PS 负责安装部署 3 搭建 CDP/C5 并行环境,包括部署批量脚本、批量调度等等 项目组 项目组负责 gateway 节点的软件安装和脚本部署 4 Hive/Impala 新增关键字冲突分析及处理 项目组 项目组负责关键字分析和处理 5 ETL 批量测试 项目组 项目组负责 ETL 多批次测试 6 应用对接测试 数据部 数据部负责第三方工具测试 2)第二阶段:并行期 主要完成 CDH/HDP-CDP 集群数据迁移和应用
200、切换工作,具体工作内容如下:如何迁移 CDH/HDP 到 CDP 156 序号 工作内容 责任人 备注 1 组 件 迁 移(包 括Sentry/Navigator/YARN FS/Flume 等等)项目组 Cloudera PS 项目组提供迁移清单,PS 负责组件迁移 2 安 全 迁 移(包 括Linux User/LDAP/Kerberos 等等)项目组 Cloudera PS 项目组提供迁移清单,PS 负责安全迁移 3 历 史 数 据 迁 移(包 括HDFS/Hive/Impala/HBase/Kudu 等等)项目组 Cloudera PS 项目组提供迁移清单,PS 负责历史数据迁移 4
201、当前数据迁移和批量补加载 项目组 Cloudera PS 项目组负责批量补加载,PS 负责当前数据迁移 5 新老系统并行运行,批量跟踪检查、性能优化 项目组 数据部 Cloudera PS 项目组负责 C5/CDP 集群一致性检查,数据部负责外部应用数据校验,Cloudera PS 负责配置参数/资源分配优化 6 第 三 方 工 具 升 级(包 括JDBC/ODBC)项目组 数据部 Cloudera PS 项目组负责集群内部 gateway 服务器,数据部负责集群外部服务器 7 CDP 集群正式割接,应用切换 项目组 数据部 Cloudera PS 项目组负责集群内部应用切换,数据部负责集群外
202、部应用切换 8 C5 集群停止对外服务 项目组 数据部 发布下线通知 3)第三阶段:运行期 在 CDP 集群正式割接之后,可以选择将原有 C5 集群节点先铲除数据、然后作为Datanode 节点加入 CDP 集群,具体工作内容如下:序号 工作内容 责任人 备注 1 C5 集群下线初始化,作为Datanode 加入 CDP 集群 主机部 Cloudera PS 主机部负责提供网络/升级 OS,PS负责安装部署 2 CDP 集群运行跟踪和改进 项目组 数据部 项目组负责批量跟踪,数据部负责外部应用跟踪 3.总体迁移方案 组件名称 组件类型 迁移方法 HDFS 基础组件 通过 Replication
203、 Manager 或者 distcp 进行数据迁移 YARN 基础组件 通过 YARN fs2cs 完成队列迁移 手工调整队列属性 手工创建 placement rules CM 基础组件 通过 CM API 或者手工迁移自定义角色或触发器 BDR 基础组件 BDR 在 CM 7.0 中重命名为 Replication Manager 如何迁移 CDH/HDP 到 CDP 157 手工迁移 BDR 复制策略 Zookeeper 基础组件 不需要迁移 Sentry 安全 通过 authzmigrator 工具进行迁移 Solr 权限需要手动转换 由新的 RMS 模块实现原有的 HDFS ACL
204、Sync 功能 KDC 安全 建议 CDP 使用新的 kerberos 域 Service principle 由 CM 自动生成 手工重建 User principle LDAP 安全 通过 slapcat 进行备份 通过 slapadd 进行恢复 Navigator 元数据 通过 nav2atlas 工具将 Navigator 元数据迁移为 Atlas 元数据 Navigator 审计数据在 CM 中保持为只读模式,直到不再需要为止 Hive/Impala 数据仓库 通过 Replication Manager 进行数据迁移 Solr 数据仓库 通过 solr-upgrade.sh 工具转
205、换 solr.xml,以及每个 collection 的solrconfig.xml 和 schema.xml 文件 重新设计 Solr 8 的 Schema,使用 MRindexer 重新生成索引 Hue 数据仓库 先备份 C5 Hue 数据库 然后恢复到 CDP Hue 数据库 Kudu 数据仓库 先通过 KuduBackup 导出数据 然后通过 KuduRestore 工具恢复数据到新 CDP 集群 手动迁移 Kudu 配置 HBase/Phoenix 操作型数据库 使用 HBase ExportSnapshot 进行数据迁移 Accumulo 操作型数据库 等待 CDP7.2 CDSW
206、 机器学习 先升级 CDSW 到 1.7.2+版本 通过备份/恢复方式,手工迁移/var/lib/cdsw 目录 Spark 数据工程 依赖于 HDFS/Hive 复制 改用 HWC 访问 Hive 3 事务内表 Oozie 数据工程 先备份 C5 Oozie 数据库 然后恢复到 CDP Oozie 数据库 手工将自定义 ShareLib jars 从 oozie workspace 复制到新集群 Kafka 流处理 如果 C5 使用了 Schema Registry,请先备份 schema 在 CDP 中安装 Kafka,Schema Registry,SRM 在 CDP 的 Schema
207、Registry 中导入 schema 在 CDP 中设置 SRM 复制 C5 集群中的 topic 通过 authzmigrator 工具,将现有 Kafka Sentry acl 迁移到 Ranger中 NiFi 流处理 NiFi 需要独立安装,请选择 CFM 2.1+版本 手工迁移 NiFi 流程和状态,更新 NiFi 流程中的处理器,以匹配 CDP的组件版本(例如 HBase2.2,Hive3.1)手工迁移 NiFi Registry 手工迁移 NiFi Ranger acl 如何迁移 CDH/HDP 到 CDP 158 4.全量&增量数据迁移 5.数据一致性校验方法 1)HDFS 一
208、致性检查 HDFS 的一致性检查,可以通过 HDFS 文件数目,以及大小两个维度确认数据的一致性。文件个数比对 比对新老集群,拷贝的 HDFS 目录以及文件的个数是否一致。理论上,应该完全一致,否则应该排查是什么原因,进行解决。如何迁移 CDH/HDP 到 CDP 159 文件数据量比对 逐一比对新老集群,拷贝的 HDFS 目录,文件的数据量大小。理论上应该完全一致。如果差异过大,应该进行数据更新。2)Hive 一致性检查 在完成数据拷贝之后,理论上新老集群两边的数据是一致的,这个时候,我们需要进行数据一致性的对比,来确认是否数据是一致的。挑选部分关键的表格进行抽查一致性比对,主要包含如下内容
209、:数据量比对 挑选部分关键表格,比对新老集群数据量的大小,注意这里的数据量大小并不会完全一致,原因是因为两边 hadoop,hive 等组件的版本都不相同,在数据存储上面会有细微的变化,因此最终的数据量是不同的。这里主要比对的是数据量的量级是否一致。Hive 表记录条数比对 挑选部分关键表格,比对新老集群 Hive 表记录条数。记录条数应该完全一致。如果不一致,则需要重新同步。关键 SQL 结果比对 挑选部分的关键 SQL,或者编写部分 SQL,分别在新老集群运行,运行结果应该完全一致。如果不一致,则需要分析原因,重新同步。Hive 表个数对比 对比拷贝列表中的 hive 表个数与实际新集群的
210、 hive 表个数是否一致。HDFS 迁移到 CDP 160 HDFS 迁移到 CDP 一、HDFS 迁移方案介绍 1.HDFS 迁移常见工具 在进行 HDFS 迁移时,第一个使用比较广泛的工具是 Hadoop 自带的迁移工具DistCP;第二个是经过加工封装和功能增强的 Cloudera Replication Manager。2.工具功能比较 DistCP Replication Manager 使用方式 命令行 CM 界面操作配置 安全支持 非 Kerberos 集群间 非 Kerberos 集群到 Kerberos 集群 Kerberos 集群到 Kerberos 集群 非 Kerbe
211、ros 集群间 非 Kerberos 集群到 Kerberos 集群 Kerberos 集群到 Kerberos 集群 监控 命令行报告 UI 提供完整的监控和运行报告 增量和全量支持 支持增量和全量复制 支持增量和全量复制 周期性运行 一次执行,通过调度器实现周期复制 UI 配置调度策略 提供每次执行的日志和执行过程 适用 所有 Hadoop 集群 CDH 到 CDH/CDP,CDP 到 CDP 需要 Cloudera 许可证 从六个维度对这两个工具进行比较:使用方式 DistCP 主要是通过命令行执行命令的方式去执行,Replication Manager 主要是通过 CM 界面配置简单操
212、作的方式提供给用户。安全支持 DistCP 主要支持非 Kerberos 集群间、非 Kerberos 集群到 Kerberos 集群、Kerberos集群到 Kerberos 集群的迁移。而 Replication Manager 也同样支持。HDFS 迁移到 CDP 161 监控 DistCP 是通过命令行报告,Replication Manager 通过双方提供完整的监控和运行报告,同时可以查看历史的报告记录。增量和全量支持 DistCP 和 Replication Manager 都支持,主要是利用快照比较增量。周期性运行 DistCP 主要是一次性执行,通过调度器来执行周期性的调度策
213、略。Replication Manager 可以在界面上提供立即执行、一次执行和周期性执行的调度策略。对所有的执行策略都提供对应的执行日志和执行过程,可以更好的去监控。适用范围 DistCP 适用范围比较广,适用于所有的 Hadoop 集群、CDH、HDP、Hadoop、CDP,以及 HDFS 的数据迁移。Replication Manager 主要支持 CDH 到 CDH、CDH 到 CDP以及 CDP 到 CDP 的数据迁移,要使用 Replication Manager 需要 Cloudera 许可证。二、使用 Distcp 迁移 HDFS 数据 DistCp(分布式副本)是用于大型集群
214、间/集群内复制的工具。它使用 MapReduce来影响其分布、错误处理和恢复以及报告。它将文件和目录列表扩展为映射任务的输入,每个任务都将复制源列表中指定的文件的一个分区。1.Distcp 基本用法 DistCp 最常见的调用是集群间复制:bash$hadoop distcp hdfs:/nn1:8020/foo/bar hdfs:/nn2:8020/bar/foo HDFS 迁移到 CDP 162 这会将 nn1 上/foo/bar 下的命名空间扩展为一个临时文件,将其内容分区到一组映射任务中,并在从 nn1 到 nn2 的每个 NodeManager 上启动一个副本。还可以在命令行中指定多
215、个源目录:bash$hadoop distcp hdfs:/nn1:8020/foo/a hdfs:/nn1:8020/foo/b hdfs:/nn2:8020/bar/foo 或者,等效地,从使用-f 选项的文件:bash$hadoop distcp-f hdfs:/nn1:8020/srclist hdfs:/nn2:8020/bar/foo srclist 包含的地方:hdfs:/nn1:8020/foo/a hdfs:/nn1:8020/foo/b 当从多个源复制时,如果两个源发生冲突,DistCp 将中止复制并显示一条错误消息,但目的地的冲突是根据指定的选项解决的。默认情况下,将跳过
216、目标中已存在的文件(即不被源文件替换)。在每个作业结束时报告跳过的文件计数,但如果复印机对其文件的某些子集失败,但在以后的尝试中成功,则可能不准确。重要的是每个 NodeManager 都可以访问源文件系统和目标文件系统并与之通信。对于 HDFS,源和目标都必须运行相同版本的协议或使用向后兼容的协议;请参阅版本之间复制(#Copying_Between_Versions_of_HDFS)。复制后,建议生成并交叉检查源和目标列表,以验证复制是否真正成功。由于 DistCp同时使用 Map/Reduce 和 FileSystem API,因此三者中的任何一个或两者之间的问题都可能对副本产生不利和无
217、声的影响。有些人在启用-update 的情况下成功运行以执行第二遍,但用户在尝试此操作之前应该熟悉其语义。还值得注意的是,如果另一个客户端仍在写入源文件,则复制可能会失败。尝试覆盖正在目标位置写入的文件在 HDFS 上也应该失败。如果源文件在复制之前被(重新)移动,则复制将失败并出现 FileNotFoundException。有关 DistCp 中所有可用选项的信息,请参阅详细的命令行参考。HDFS 迁移到 CDP 163 集群间的复制:主要是做不同集群间数据目录的一些复制,把源到目标通过DistCP 来去做。更新和覆盖:-update 用于从源中复制目标中不存在或与目标版本不同的文件。-o
218、verwrite 覆盖目标中存在的目标文件。支持同步:-diff 选项将文件从源集群同步到具有快照差异的目标集群。它复制、重命名和删除快照差异列表中的文件。使用-diff 选项时必须包含-update 选项。2.Distcp 参数 Flag Description Notes-prbugpcaxt 保留 r:复制数 b:块大小 u:用户 g:组 p:权限 c:校验和类型 a:ACL x:XAttr t:时间戳 当指定-update 时,除非文件大小也不同(即除非重新创建文件),否则不会同步状态更新。如果指定了-pa,DistCp 也会保留权限,因为 ACL是权限的超集。-i 忽略失败 此选项将
219、保留比默认情况更准确的副本统计信息。它还保留来自失败副本的日志。-log 将日志写入 DistCp 保留它尝试复制的每个文件的日志作为地图输出。如果一个 map 失败了,那么重新执行就不会保留日志输出了。-v 在 SKIP/COPY 日志中记录附加信息(路径、大小)此选项只能与-log 选项一起使用。-m 同时复制的最大数量 指定要复制数据的地图数量。请注意,更多的地图不一定会提高吞吐量。-overwrite 覆盖目标 如果映射失败并且未指定-i,则将重新复制拆分中的所有文件,而不仅仅是那些失败的文件。如使用文档中所述,它还更改了生成目标路径的语义,因此用户应谨慎使用。-update 如果源和
220、目标的大小、块大小或校验和不同,则覆盖 -append 同名但长度不同的文件的增量副本 如果源文件的长度大于目标文件,则比较公共长度部分的校验和。如果校验和匹配,则使用读取和附加功能仅复制差异-f 使用 处的列表作为src 列表 这相当于在命令行上列出每个源。urilist_uri 列表应该是完全限定的 URI。-filters 包含模式字符串列表的文件的路径,每行一个字符串,这样与模式匹配的路径将从副本中排除。支持java.util.regex.Pattern指定的正则表达式。-delete 删除 dst 中存在但 src 中不存在的文件 删除由 FS Shell 完成。因此,如果启用,将使
221、用垃圾箱。删除仅适用于更新或覆盖选项。HDFS 迁移到 CDP 164-strategy dynamic|uniformsize 选择要在 DistCp 中使用的复制策略。默认情况下,使用统一大小。如果指定“动态”,则使用 DynamicInputFormat 代替。(这在InputFormats 下的体系结构部分中进行了描述。)-bandwidth 指定每个 Map 的带宽,以 MB/秒为单位。每个 Map 将被限制为仅消耗指定的带宽。这并不总是准确的。映射在复制期间限制其带宽消耗,使得使用的净带宽趋向于指定值-atomic-tmp 指定原子提交,带有可选的 tmp目录。指示 DistCp
222、将源数据复制到临时目标位置,然后以原子方式将临时目标移动到最终位置。数据要么以完整和一致的形式提供给最终目标,要么根本不可用。可选地,-tmp 可用于指定 tmp-target 的位置。如果未指定,则选择默认值。-async 异步运行 DistCp。Hadoop 作业启动后立即退出。记录 Hadoop 作业 ID 以进行跟踪。-diff 使用给定两个快照之间的快照差异报告来识别源和目标之间的差异,并将差异应用于目标以使其与源同步。此选项仅与-update 选项一起有效,并且应满足以下条件。和已在源FS上创 建 了 两 个 快 照,并 且 比旧。-rdiff 使用给定两个快照之间的快照差异报告来
223、识别自从在目标上创建快照以来目标上发生了哪些更改,并将差异反向应用到目标,并从源的复制修改后的文 件,以 使 目 标 与相同。此选项仅与-update 选项一起有效,并且应满足以下条件。-numListstatusThreads 用于构建文件列表的线程数 最多 40 个线程。-skipcrccheck 是否跳过源路径和目标路径之间的 CRC 检查。-blocksperchunk 每个块的块数。指定时,将文件拆分为块以并行复制 如果设置为正值,则块数超过此值的文件将被拆分为块的块,以并行传输,并在 目 标 上 重 新 组 合。默 认 情 况 下,为 0,文件将完整传输而不会拆分。-copybuf
224、fersize 要使用的复制缓冲区的大小。默认情况下,设置为 8192B -xtrack 将有关丢失源文件的信息保存到指定路径。此选项仅对-update 选项有效。这是一个实验属性,不能与-atomic 选项一起使用。-direct 直接写入目标路径 当目标是对象存储时,用于避免可能非常昂贵的临时文件重命名操作-useiterator 使用单线程 listStatusIterator 构建列表 对于在客户端节省内存很有用。使用此选项将忽略 numListstatusThreads 选项 HDFS 迁移到 CDP 165 三、使用 Replication Manager 迁移数据 Replica
225、tion Manager 是 Cloudera Manager 中的一项服务。您可以在此服务中创建复制策略,以针对各种用例跨数据中心复制数据,这些用例包括灾难恢复场景、运行混合工作负载、将数据迁移到云或从云迁移数据或通用备份/恢复场景。您还可以创建 HDFS 或 HBase 快照策略,分别对 HDFS 目录和 HBase 表进行快照。1.Replication Manager 数据复制 Replication Manager 主要进行数据复制,用于不同集群之间的数据复制,以及本地集群和云上的数据复制,支持直接把数据写入到 S3。2.Replication Manager 概述 Replicat
226、ion Manager 使您能够跨数据中心复制数据以用于灾难恢复场景。支持复制 HDFS 存储的数据、Hive 表存储的数据、Hive Metastore 数据、Hive Metastore中注册的 Impala 表的 Impala 元数据(Catalog server metadata),以及 Sentry到 Ranger 的权限。如果需要去复制 HBase,是通过 HBase shell 提供的数据迁移。HDFS 迁移到 CDP 166 3.Cloudera Replication Manager Cloudera Manager 在 Cloudera Manager Admin Cons
227、ole 中提供以下关键功能,Replication Manager 可以利用这些功能:选择对您的业务运营至关重要的数据集。通过中央控制台监控和跟踪快照和复制作业的进度,并轻松识别问题或未能传输的文件。当快照或复制作业失败或中止时发出警报,以便可以快速诊断问题。您还可以使用 Cloudera Manager 来计划、保存和恢复 HDFS 目录和 HBase 表的快照。4.CDP 备份和灾难恢复 Replication Manager 提供的功能主要有:选择对应的来源和目标进行数据的同步源。做对应的配置,配置完后去做数据同步、数据复制的任务。在整个过程中可以去监控整个任务的执行。通过备份和恢复功能
228、支持。HDFS 迁移到 CDP 167 从上图的表中可以看到支持 HDFS 和 HBase 的快照支持、HDFS 和 Hive 的数据复制内容。5.Replication Manager 的架构注意事项 支持多路复制:独立表和目录之间的这种专项复制可以支持 a 到 b、b 到 a 的复制方式。资源管控:可以控制网络带宽的限制、每日摄取率、跨数据中心带宽等。HDFS 迁移到 CDP 168 支持安全:Kerberos 可以去做身份验证,支持相同领域以及跨领域的安全配置。同时可以用数据模拟、用户模拟的方式来保留适量的权限来进行这种迁移。本身是支持 Kerberos 集群到非 Kerberos 集群
229、,Kerberos 集群到 Kerberos 集群以及非 Kerberos 集群到非 Kerberos 集群的复制。跨版本支持:例如从 CDH 迁移到 CDP,源和集群可以运行不同版本的 CM。分布式 COPY 增强:通过 Kerberos 集成数据的错误和详细报等提供这种增强。6.CDP 私有云基础上的 Replication Manager 支持矩阵 功能 受支持的最低 Cloudera Manager 版本 受支持的最低 CDH 版本 受支持的服务 Replication Cloudera Manager 5.14+CDH 5.13+HDFS,Hive,Impala Replicatio
230、n to and from Amazon S3*Cloudera Manager 5.14+CDH 5.13+HDFS,Hive,Impala Snapshots Cloudera Manager 5.15+CDH 5.15+HDFS,Hive,Impala Replication to and from Microsoft ADLS Gen1 Cloudera Manager 5.15,5.16,6.1+CDH 5.13+HDFS,Hive,Impala Replication to Microsoft ADLS Gen2(ABFS)Cloudera Manager 6.1+CDH 5.13
231、+HDFS,Hive,Impala 7.RM 支持的场景 HDFS 迁移到 CDP 169 Replication Manager 支持的场景:CDH 到 CDP Base,是基于 Cloudera BDR 做的,支持 HDFS 数据拷贝、支持Hive 数据和元数据复制(以及 Sentry 到 Ranger),要求 CM 最低版本是 5.14,CDH 最低版本是 5.13。对于 CDP 集群,支持 CDP Base 到 CDP Base 的数据同步复制,主要也是使用Cloudera BDR 来做的。支持 HDFS 数据拷贝、支持 Hive 数据和元数据复制。在目前阶段仅支持 Hive 的外部表
232、数据复制,还不支持 Ranger 复制和 Atlas 复制。8.RM 复制支持的安全场景 四、HDFS 迁移步骤 1.使用 DistCP 进行 HDFS 迁移 Distcp snapshot 拷贝方式的主要步骤如下:Step1.假定将源集群的 HDFS 目录/data/a 拷贝到目标集群的 HDFS 目录/data/a_target。HDFS 迁移到 CDP 170 rootsource_cluster#hdfs dfs-ls/data/a Found 1 items-rw-r-r-2 etl_user supergroup 61440 2021-01-04 08:12/data/a/cnav
233、.tar 注意:请不要预先在目标集群创建 a_target 目录,因为 distcp 会自动创建。Step2.允许源目录创建快照。rootsource_cluster#hdfs dfsadmin-allowSnapshot/data/a Allowing snaphot on/data/a succeeded Step3.源目录建立快照 snapshot1。rootsource_cluster#hdfs dfs-createSnapshot/data/a snapshot1 Created snapshot/data/a/.snapshot/snapshot1 step4.基于 snapsho
234、t1 进行初始的全量拷贝。rootsource_cluster#hadoop distcp-Dmapreduce.job.hdfs-servers.token-renewal.exclude=source_cluster.tiger2.root.hwx.site hdfs:/source_cluster.tiger2.root.hwx.site/data/a/.snapshot/snapshot1 hdfs:/target_cluster.feng.root.hwx.site/data/a_target 在目标集群上,/data/a_target 已经自动生成,并且包含了数据。roottarg
235、et_cluster#hdfs dfs-ls/data/a_target Found 1 items-rw-r-r-3 etl_user administrator 61440 2021-01-04 00:46/data/a_target/cnav.tar Step5.允许目标目录创建快照 roottarget_cluster#hdfs dfsadmin-allowSnapshot/data/a_target Allowing snapshot on/data/a_target succeeded 此时,/data/a_target 应该被视为“只读”。请勿对该目录内容进行任何更改。HDFS
236、迁移到 CDP 171 Step6.在/data/a_target 中创建与用于源目录快照名称相同的快照 snapshot1。roottarget_cluster#hdfs dfs-createSnapshot/data/a_target snapshot1 Created snapshot/data/a_target/.snapshot/snapshot1 Step7.对源目录/data/a 中的内容进行增删改操作,然后创建新的快照 snapshot2。rootsource_cluster#hdfs dfs-put nav2atlas.tar/data/a rootsource_cluste
237、r#hdfs dfs-ls/data/a Found 2 items-rw-r-r-2 etl_user supergroup 61440 2021-01-04 08:12/data/a/cnav.tar-rw-r-r-2 etl_user supergroup 14018560 2021-01-04 08:50/data/a/nav2atlas.tar rootsource_cluster#hdfs dfs-createSnapshot/data/a snapshot2 Created snapshot/data/a/.snapshot/snapshot2 rootsource_cluste
238、r#hdfs snapshotDiff/data/a snapshot1 snapshot2 Difference between snapshot snapshot1 and snapshot snapshot2 under directory/data/a:M.+./nav2atlas.tar target/nav2atlas.tar Step8.基于 snapshot2 进行增量拷贝。rootsource_cluster#hadoop distcp-Dmapreduce.job.hdfs-servers.token-renewal.exclude=source_cluster.tiger
239、2.root.hwx.site-diff snapshot1 snapshot2-update hdfs:/source_cluster.tiger2.root.hwx.site/data/a hdfs:/target_cluster.feng.root.hwx.site/data/a_target 在目标集群上,/data/a_target 新增了数据。roottarget_cluster#hdfs dfs-ls/data/a_target Found 2 items-rw-r-r-3 etl_user administrator 61440 2021-01-04 00:46/data/a_
240、target/cnav.tar-rw-r-r-2 etl_user administrator 14018560 2021-01-04 01:43/data/a_ HDFS 迁移到 CDP 172 Step9.一旦拷贝完成,需要继续为目标目录创建与源目录同名的快照 snapshot2。roottarget_cluster#hdfs dfs-createSnapshot/data/a_target snapshot2 Created snapshot/data/a_target/.snapshot/snapshot2 2.使用 Replication Manager 进行 HDFS 迁移。Rep
241、lication Manager 的主要步骤如下:1)选择需要备份的数据 2)针对不同的数据采用不同的复制策略,定制 HDFS 复制作业。详细步骤参见第3.11.6 节。有些数据只需要备份一次,则启动一次性备份任务 对于每天都需要更新的数据,启动每天按时备份 数据量较大的文件,需要给予更多的带宽,以及 map 数 是否需要使用特定的用户来复制特定数据 是否需要使用资源池。通过 CM 界面执行 HDFS 复制作业,查看运行日志。Hive 迁移到 CDP 173 Hive 迁移到 CDP 一、Hive 迁移工具介绍 DistCP Replication Manager 使用方式 命令行 CM 界面
242、操作配置 安全支持 非 Kerberos 集群间 非 Kerberos 集群到 Kerberos 集群 Kerberos 集群到 Kerberos 集群 非 Kerberos 集群间 非 Kerberos 集群到 Kerberos 集群 Kerberos 集群到 Kerberos 集群 监控 单独执行数据和元数据同步,分别监控 UI 提供完整的监控和运行报告 增量和全量支持 支持增量和全量复制 支持增量和全量复制 周期性运行 一次执行,通过调度器实现周期复制 UI 配置调度策略 提供每次执行的日志和执行过程 适用 所有 Hadoop 集群 CDH 到 CDH/CDP,CDP 到 CDP 需要
243、Cloudera 许可证 Hive 迁移到 CDP,主要有以下两种方案:使用 DistCP+HMS Mirro 迁移 Hive 数据。使用 Replication Manager(企业级工具)迁移 Hive 数据。方案是基于命令行的方式,分步操作,每部分单独执行,其中DistCP负责HDFS数据的迁移,HMS Mirror 负责 Hive Metastore 数据的迁移。方案是通过企业级的界面配置进行简单操作,将 Hive 数据一次性迁移到 CDP平台,同时提供了完整的监控报告和调度。安全支持方面,两种方式都支持非 Kerberos 集群之间、非 Kerberos 到 Kerberos 以及
244、Kerberos 到 Kerberos 的 Hive 数据迁移。监控方面,两种方式都是单独执行,监控和运行是独立的,需要分别进行监控。方案通过 UI 和 CM 界面集成,提供了完整的监控和运行报告以及调度支持。Hive 迁移到 CDP 174 增量和全量方面,两种方案都能支持增量和全量复制。周期性运行方面,两种方案都基于原生命令行一次性执行,可以利用调度器实现周期性调度来完成整个复制。Replication Manager 方案可以在 UI 里配置对应调度策略来一次性执行或立即执行,也可以按照不同的时间做调度,以及按照不同的频率梯度来执行。同时它保存了完整的执行日志和执行过程,便于后续分析以及
245、错误预警。适用性方面,两种方案都适用于所有 Hadoop 集群进行 Hive 迁移,支持从 Hive1到 Hive3、Hive2 到 Hive3 等,也支持从 CDH/HDP、Apache Hadoop 迁移到 CDP。Replication Manager 主要支持 CDH 到 CDH/CDP、CDP 到 CDP 的 Hive 迁移。此外,由于 Replication Manager 是企业级工具,因此使用它需要通过 Cloudera 许可证以正常运行。二、使用 Replication Manager 迁移 Hive 数据 Replication Manager 主要用于整个 CDH/CDP
246、 平台的数据备份和灾难恢复,它提供了完整的数据备份和灾难恢复功能。在其界面上可以选择源和目标的配置,然后选择需要备份和恢复的文件、表、库等。可以配置用户、资源池、带宽、监控、日常预警等信息。配置完成后,可以根据调度策略来进行数据同步,同步过程中可以进行监控以观察实时运行情况,并采取措施。Hive 迁移到 CDP 175 Repliation Manager 也支持快照和数据复制。快照部分主要支持 HDFS 和 Hbase,数据复制主要支持 HDFS 和 Hive。在 Hive 数据复制里,除了支持 HDFS 数据复制之外,还支持了元数据的复制以及 Sentry 到 Ranger 权限的同步。今
247、年的版本会新增支持 Hive 数据迁移的复制。1.RM 迁移注意点 进行 Hive 数据同步时,如果是 CDH 到 CDP 的迁移,建议在 CDP 的 Hive 里将 Hive外表目录设置成 CDH 的受管表目录,数据会自动迁移到该目录下,代码无须修改目录即可直接运行。受管表从 CDH 迁移到 CDP 后会变成 CDP 的外表,同时增加 purge 属性,能够在做表清理的同时将数据文件进行 drop,从而保证其与 CDH 内表是相同的使用体验。而 CDP 内表目前还不支持 Repliation Manager,今年的版本会增加对应的支持。同时,Repliation Manager 支持 Sen
248、try 权限迁移到 Ranger,用户可以根据自己的需求迁移权限。Hive 迁移到 CDP 176 Repliation Manager 对 CM 的版本要求较高,在 CDH 上需要将 CM 升级到版本 6.3以上,CDH 要求在版本 5.10 以上。如果 CDH 版本较老,则只能通过 Distcp+HMS Mirror 的方式来同步 Hive 元数据。目标集群要求 CDP 7.0 以上,能够支持 HDFS Sentry 到 Ranger 权限迁移,支持 Hive 到 Hive 外部表迁移等。CDP 要求 CM 和 CDH的版本在 7.1.1 以上,支持高密度的文件系统以及外部表的数据迁移。2
249、.使用 RM 迁移 Hive 演示 Hive 迁移到 CDP 177 本次演示的环境版本如上图所示。在 CDH 集群中有四张 Hive 内置表,其中三张 test 表分别对应普通文本、ORC 和Parquet 格式,本次演示需要将三张 test 表从 CDH5 迁移到 CDP,并进行一些操作。首先,进行备份复制,迁移 CDH5 的数据。如果集群中没有配置同行,则需要点击备份-同行-添加同行,配置同行后才能继续后续操作。Hive 迁移到 CDP 178 同行的端口是 Cloudera Manager 的登录路径。如果启用了 TLS,则对应的端口为7183,否则为 7180。使用默认的账户和密码填
250、入同行管理用户名和密码。配置完成后会做测试连接,连接认证之后,即可在后续备份复制时在不同集群中进行数据迁移。同行的操作菜单包括测试连接性、编辑和删除。点击菜单栏中备份-复制计划-创建计划-Hive 复制。Hive 迁移到 CDP 179 填写以上常规信息。目标路径是指 HDFS 存储 Hive 数据和元数据的可选项,是创建表的根目录。比如HDFS的目标目录路径为/mypath,而源路径为user/hive/warehouse/bdr.db/tab1,那么复制完成后的路径即/mypath/user/hive/warehouse/bdr.db/tab1 Hive 迁移到 CDP 180 填写以上资
251、源相关信息。其中,复制策略为“动态”指将小集合中的文件复制任务分配给 mapper,执行完后再去处理下一个未分配的任务集,而“静态”指根据文件大小实现统一分配。Hive 迁移到 CDP 181 完成高级部分的配置。选择“立即运行”。Hive 迁移到 CDP 182 点击“命令详细信息”即可查看具体的执行相关信息。从上图执行信息中可以看到,Hive 数据复制分为 6 个步骤。第一步:导出远程 Hive Metastore。第二步:传输元数据文件。第三步:Hive 表数据复制,即 HDFS 数据复制,主要包含做检查、文件监听、列举文件、将列举清单传输到同行中,并在目标端触发 HDFS 的复制任务。
252、第四步:Hive Metastore 导入。第五步:通过引发 Impala shell 执行 Invalidate 相关命令。第六步:在目标端重命名 Snapshots,使其变为可用。Hive 迁移到 CDP 183 点击“显示历史记录”,即可查看执行结果。图中显示了本次执行耗费时间为 2 分钟,复制了 3 张表,预期文件 3 个,无失败文件。复制完成后,查看文件是否已经存在。此时目标目录的路径已经变为/data/user/hive/warehouse,下面有 3 张表,意味着复制成功。Hive 迁移到 CDP 184 default 库下也已经存在三张表。此处发生了几个变化:第一,表的性质变
253、为“EXTERNAL”外部表。第二,路径变为/data/user/hive/warehouse。第三,增加了 external.table.purge 属性,做数据清理的时候会将底层文件一起删除。通过 Replication Manager 迁移 Hive 有以下几个注意点:需要企业的许可证。数据迁移 Hive 到 CDP 后,会变为外表同时带有 purge 属性。做增量数据同步时会自动创建快照,需要在 Hive 主目录上启动快照。通过比较快照的方式找到对应增量来同步增量数据,以减少数据同步的带宽。三、使用 DistCP+HMS Mirror 迁移数据 DistCP 主要负责迁移 HDFS 部
254、分的数据,它支持增量和全量的迁移方式,支持非Kerberos 到 Kerberos 以及非 Kerberos 到 Kerberos 的数据迁移。Hive 迁移到 CDP 185 HMS Mirror 主要用于弥补两个集群之间的差异并迁移 Hive 元数据,数据移动不是该工具的主要功能,需要 DistCP 来完成。HMS Mirror在两个集群之间迁移Hive Metastore,可以使用SQL和EXPORT_IMPORT等数据策略。也可以做一些数据移动,但它适用于较小的数据集,在较大数据集场景下效率不高。此外,元数据迁移里也有不同的策略,比如 Schema、Read-only。上图为 HMS-
255、Mirror 迁移步骤,此种方式对来源没有限制,Hive 可以是 EMR、HDP、CDH、Apache Hadoop、CDP 等,目标一般为 CDP。过程中通过 YARN 来调度 HDFS,将数据导出再导入,此处更倾向于通过 DistCP 在YARN 上调度来执行 HDFS 数据的迁移。然后将 Hive Metastore 数据进行复制,并通过 YARN 写入到 Hive Metastore 数据库,终端用户即可直接通过目标集群来访问。1.使用 DistCP 和 HMS Mirror 迁移 Hive 演示 本次 demo 使用的环境如下:CDH 5.1.6,禁用 Kerberos,使用的 Hi
256、ve 版本为 1.1;CDP 7.1.7,启用 Kerberos,使用的 Hive 版本为 3.1.3。Hive 迁移到 CDP 186 在 CDH 5.1.6 里的 test_db 库下有四张表,本次演示将完成这四张表的数据同步。首先在 CDH 集群对 DB 目录创建 Snapshot,创建完成后,查看其对应的快照。接着到目标集群对数据同步赋权,创建针对 user/hdfs 目录的权限,该权限赋予etl_user 用户,并通过此用户来操作数据。Hive 迁移到 CDP 187 在 CDP 集群里使用 etl_user 用户做数据同步,利用 DistCP 进行数据迁移。关于DistCP 的使用
257、方式和参数请参考对应手册。数据同步完成后,查看目录里的数据,可以看到四张表已经同步成功。github 上提供了非常完整的 HMS Mirror 文档,依照文档里的步骤进行下载安装即可。安装完成后可以看到 user/local 目录下创建了新的目录结构,包含 bin 和 lib 参考文件。根目录下创建了隐藏文件夹 HMS Mirror 用于存放对应的目录结构,将 hive-jdbc 的 standalone.jar 文件放至该目录下,再将 cdh 的 standalone.jar 文件放至该目录下并创建对应的配置文件。查看配置信息,其中 transfer 提供了一些参数,左右集群分别配置了 HD
258、FS NameSpace、uri 以及 jar 文件的目录路径。Hive 迁移到 CDP 188 配置完成后,执行 HMS Mirror 的命令来同步元数据。执行完成后,可以看到同步了一个数据库和四张表,对应的同步数据库是 test_db,temp 目录下生成了若干文件。查看 temp 目录下的文件结构。其中比较重要的是右侧目标集群的执行文件。Hive 迁移到 CDP 189 查看此文件,可以看到已经将对应的表结构抽取出来,CDH 是内表,在 CDP 中转成了外表。此处 location 路径对应的根目录有误,应将其替换,保存文件。在环境中创建 test_db 目录。Hive 迁移到 CDP
259、190 启用 Hive 用户,执行 beeline 生成 DDL 语句。回到 Hive,可以看到已经存在四张表,查询 parquet 表内数据总条数为 20004 条。对表做更新,插入 2 条数据,再做增量的同步。插入完成后查询 parquet 表内数据更新为 20006 条。前面为使用命令方式迁移数据,接下来演示使用 UI 工具。Hive 迁移到 CDP 191 首先找到 text_db 所在目录,拍摄快照。创建完成后即可在页面上看到快照。切换到 etl 用户,做 DistCP 的增量数据同步。同步完成后,切换到 CDP 集群,将工具切换为 Hive,查看数据总条数,结果为 20006。HB
260、ase 迁移到 CDP 192 HBase 迁移到 CDP 一、HBase 迁移方案介绍 HBase 表是基于 Hadoop HDFS 构建的,HBase 迁移有两个层面:基于 Hadoop HDFS 的 Distcp 的迁移方式。基于 HBase 表结构的 HBase 层面提供的相关工具进行迁移,包括 CopyTable、Export/Import、Snapshot、Replication。1.Hadoop 层数据迁移方案 Hadoop 层的数据迁移主要是 Distcp。拷贝本质过程是 MR 任务,不过 Disctcp 只有 map,没有 reduce。如果是独立的 MR 集群来执行 dis
261、tcp,因为数据量很大,一般是按 region 目录粒度来传输,同时传输到目标集群时,我们先把文件传到临时目录,最后再在目的集群上 load 表。关键点:在这个过程中,需要注意源端集群到目的端集群策略是通的,同时Hadoop/HBase 版本也要注意是否一致,如果版本不一致,最终 load 表时会报错。示例:hadoop distcp -Dmapreduce.job.name=distcphbase -Dyarn.resourcemanager.webapp.address=mrmaster-ip:8088 -Dyarn.resourcemanager.resourcetracker.addr
262、ess=mr-master-dns:8093 -Dyarn.resourcemanager.scheduler.address=mrmaster-dns:8091 -Dyarn.resourcemanager.address=mr-masterdns:8090 -Dmapreduce.jobhistory.done-dir=/history/done/HBase 迁移到 CDP 193-Dmapreduce.jobhistory.intermediate-donedir=/history/log/-Dfs.defaultFS=hdfs:/hbase-fs/-Dfs.default.name=h
263、dfs:/hbase-fs/-bandwidth 20 -m 20 hdfs:/src-hadoop-address:9000/region-hdfs-path hdfs:/dst-hadoop-address:9000/tmp/region-hdfspath 2.HBase 层迁移方案比较 1)Distcp 方案类型:Hadoop 层,静态迁移方案。应用场景:适合历史表和可以停止写表的场景迁移,源和目标的 hadoop/hbase版本一致。特点:?本质是 DistCP。?数据量大时可以按 Region 目录粒度迁移数据。?要求源端和目标端集群网络是通的。优点:开多线程并发来加速同步文件。缺点
264、:HBase 迁移到 CDP 194?文件层面的数据同步,不够灵活。?版本要求高,源端和目标端的 Hadoop/HBase 版本要一致。2)copyTable 方案类型:Hbase 层,动态迁移方案。应用场景:以表级别进行数据迁移,适用:表深度拷贝、集群间拷贝、增量备份、部分表备份。特点:?涉及对原表 Scan,然后直接 put 到目标表,效率低。?这个工具实际上使用比较少,因为很难控制。3)Export/import 方案类型:Hbase 层,动态迁移方案。应用场景:支持不同版本数据的拷贝,同时它拷贝时先转换成文件,把文件同步到目标集群后再通过 Import 到线上表。特点:类似 CopyT
265、able,Scan 出数据放到文件,再把文件传输到目标集群做Import。4)Snapshot+Replication 方案类型:Hbase 层,动态迁移方案。应用场景:利用快照技术,不是拷贝实际数据,效率高。特点:比较常用,应用灵活,采用快照技术,效率比较高。HBase 迁移到 CDP 195 二、HBase 迁移概览 1.推荐的 HBase 迁移方案 将数据迁移到 CDP Private Cloud Base 部署时,必须使用 Apache HBase 复制和快照功能。T0:设置 A 集群到 B 集群的 Replication,记录增量数据。T1:A 集群生成快照,导出快照,获得 T1 时
266、刻的全量数据。T2:B 集群导入 T1 的全量快照,同时 T0 的 Replication 增量数据开始自动同步。T3:Replication 增量数据逐渐消费完,业务面暂停写入。T4:Replication 数据完全消费完,业务切换到 B 集群。使用快照一次性导出/ExportSnapshot 到目的地/CloneSnapshot。持续迁移:一次性方法+HBase Replication 设置。2.数据迁移先决条件 如果从 CDH 迁移,请在目标 CDP 集群中配置与现有 CDH 集群中的 HBase ACL对应的 Ranger ACL。如果从 HDP 迁移,请在目标 CDP 集群中配置与现
267、有 HDP 集群中的 HBase ACL或 Ranger ACL 对应的 Ranger ACL。迁移应用程序以使用新的 HBase-Spark Connector,因为 CDP 不再支持在 CDH或 HDP 中使用的 Spark-HBase Connector。HBase 迁移到 CDP 196 查看从 HDP 2.x 或 CDH 5.x 升级到 CDP 时不推荐使用的 API 和不兼容性(CDH6/HDP3 基本上没问题)。确保升级前所有数据都迁移到支持的数据块编码类型。确保手动升级任何外部的或第三方的协处理器,因为在升级期间它们不会自动升级。3.HBase 数据迁移步骤 在迁移数据之前,必
268、须在 CDP PvC Base 上创建一个 Apache HBase 集群。CDH 或HDP 集群是源集群,CDP PvC Base 集群是目标集群。1)在源集群和目标集群上部署 HBase Replication。2)通过对要在 HBase Shell 中复制的每个表运行以下命令,在源集群和目标集群上启用复制:在源集群上 create t1,NAME=f1,REPLICATION_SCOPE=1 在目标集群上 create t1,NAME=f1,KEEP_DELETED_CELLS=true 注:建议在目标集群中的列族上启用 KEEP_DELETED_CELLS,其中源集群中的REPLICA
269、TION_SCOPE=1。3)在源集群的 HBase Shell 中运行 add_peer 命令,将目标集群添加为 peer:HBase 迁移到 CDP 197 add_peer ID,DESTINATION_CLUSTER_KEY 注:可以从 Cloudera Manager(CM)访问的 HBase Master 用户界面获取DESTINATION_CLUSTER_KEY 值。4)在源集群的 HBase Shell 中运行 disable_peer(“”)命令来禁用源集群中的 peer:disable_peer(ID1)5)在 Cloudera Manager 中拍摄快照(UI/BDR/H
270、base shell 命令行)。6)在源集群的 HBase Shell 中运行 ExportSnapshot 命令,将源集群的快照导出到目标集群,必须以 HBase 用户或拥有文件的用户身份运行 ExportSnapshot 命令:hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot-snapshot -copy-to hdfs:/destination:hdfs_port/hbase-mappers 16 注:必须在源集群和目标集群上启用快照。导出快照时,表的 HFile、日志和快照元数据将从源集群复制到目标集群。7)在源集群的 HBas
271、e Shell 中运行 enable_peer(“”)以启用源集群和目标集群中的 peer:enable_peer(ID1)8)在目标集群恢复快照:restore_snapshot student_snapshot 9)后续增量数据会自动利用 replication 功能同步到目标集群中。HBase 迁移到 CDP 198 10)数据同步完成后,需要将源端的peer给disable掉,这时数据就不再继续同步:disable_peer(ID1)4.HBase 数据迁移步骤(少量数据)在源集群上运行 HashTable 命令,在目标集群上运行 SyncTable 命令,以验证表数据在源集群和目标集
272、群之间是否同步:在源集群上 HashTable options 在目标集群上 SyncTable options 三、HBase 迁移演示 从 CDH 的 HBase 迁移数据到 CDP 的 HBase 中。演示源和目标都启用了 Kerberos的安全集群中。测试环境:源集群 CDH6,启用 Kerberos 目标集群 CDP7.1.6,启用 Kerberos 1.配置两个集群的互信 1)分别在两个集群 krb5.conf 中添加 realms。HBase 迁移到 CDP 199 源集群:CDH.COM;目标集群:GROCERY.COM 2)为两个 KDC 创建相同的 krbtgt 用户和密码
273、。HBase 迁移到 CDP 200 3)互信验证,两个集群都能正常访问表示互相配置成功。4)在 CM 界面Administration配置搜索 domain添加 Domain Name(s)。5)在 CM 界面ClusterHDFS配置搜索 Kerberos添加受信任的 Kerberos 域。6)重启配置生效。HBase 迁移到 CDP 201 2.在源端和目标端启用 Replication 3.在 Ranger 中进行授权 HDFS 权限:给分配做数据同步的用户对/user 目录的读写和执行权限;对复制用户 etl_user 对/hbase 目录的读写和执行权限。在 HDFS 中,默认没有
274、启用 Ranger 的权限管理功能,需要去启用该功能,否则Ranger 的配置将无法生效。HBase 迁移到 CDP 202 HBase 表权限:给分配做数据同步的用户对 HBase 表的权限,赋予所有读、写、创建、执行、管理的权限。4.模拟操作 1)在源端创建表,表中有 2 条记录。2)源端启用 Replication。HBase 迁移到 CDP 203 3)在目标端创建和源端同样的表,同时启用 KEEP_DELETED_CELLS=true参数来启用复制。4)在源集群的 HBase Shell 中运行 add_peer 命令,将目标集群添加为 peer,然后进行 disable。5)在源端
275、创建并查看快照。也可以在 CM 中做快照。6)在源集群的 HBase Shell 中运行 ExportSnapshot 命令,将快照从源端导出到目标端。HBase 迁移到 CDP 204 7)启用源集群和目标集群中的 peer。8)在目标端 disable 掉表,进行数据恢复;然后将表 enable,查看表数据。9)在源端模拟增加数据,在目标端可以看到数据会持续同步过来。HBase 迁移到 CDP 205 CDP 之操作型数据库 206 CDP 之操作型数据库 一、什么是操作型数据库(OPDB)1.操作型数据库(OPDB)定义 Cloudera 操作型数据库(Operational Datab
276、ase)由 Apache HBase 和 Apache Phoenix 提供支持。Apache HBase 是一个 NoSQL 数据库,提供对大型数据集的实时读/写访问。Apache Phoenix 提供了一个 SQL 接口来管理 Apache HBase 中的数据。由 Apache Accumulo 提供支持的操作数据库是 Apache Accumulo 的 Cloudera软件包。Cloudera 操作型数据库提供实时、始终可用、可扩展的操作数据库,在统一的操作和仓储平台内为传统结构化数据和非结构化数据提供服务。Cloudera 操作型数据库在企业数据生命周期中扮演着数据存储的关键角色。下
277、图显示了典型的操作型数据库部署中的一些关键元素。CDP 之操作型数据库 207 操作数据库具有以下组件:Apache Phoenix 提供了一个在 Apache HBase 之上运行的 SQL 接口。Apache HBase 为键值存储提供了巨大的可扩展性,因此您可以在单一平台中存储无限量的数据,并满足不断增长的数据服务需求。Apache ZooKeeper 提供分布式配置服务、同步服务和命名注册表。Apache Knox Gateway 提供外围安全性,以便企业可以放心地将访问权限扩展到新用户。Apache HDFS 用于编写 Apache HBase WAL。Hue 提供了一个基于 Web
278、 的编辑器来创建和浏览 Apache HBase 表。Amazon S3和Microsoft ADLS Gen2等对象存储用于存储Apache HBase HFiles。CLoudera Shared Data Experience(SDX)用于安全和治理功能。安全和治理策略设置一次并应用于所有数据和工作负载。IDBroker 提供作为 Apache Knox 身份验证服务的一部分构建的身份验证机制。它允许经过身份验证和授权的用户交换一组凭据或令牌以获取云供应商访问令牌。操作型数据库的两个主要特性:1)快速灵活 Not-only-SQL 数据库能够每秒处理数百万个事务,支持:Schema 演变
279、 多行事务 CDP 之操作型数据库 208 二级索引 时间旅行查询 2)企业就绪 容错、开源、分布式数据库,可扩展到 PB 级,具有:高可用性 批量加载、快照和复制 安全和角色管理 资源分配 混合部署 2.OPDB 应用场景 OPDB 支持的场景涉及制造、医疗保健、金融服务和其他行业,用户包括 Cerner、智能手机制造商、财经媒体之家、保险供应商、图书馆服务供应商等。3.OPDB 的组成 OPDB 由两部分组成:APACHE HBASE 和 PHOENIX。CDP 之操作型数据库 209 1)APACHE HBASE:低成本、高扩展、云智能的大数据 NoSQL。Apache HBase 数据
280、库提供对数据的随机、持久访问。Apache HBase 非常适合需要为最终用户应用程序提供实时分析和表格数据的场景。作为一个原生的非关系数据库,Apache HBase 可以组合使用各种结构和模式的数据源。HBase 专为弹性数据存储而设计,旨在托管具有稀疏数据的非常大的表。Apache HBase 可以托管大数据表,因为它可以线性扩展以处理非常大(PB 级)、面向列的数据集。数据存储基于支持分布式环境中低延迟读取、写入和更新的键值模型。特性:可靠、成熟的存储引擎 高扩展性:扩展到 PB 容错和弹性 支持快照和复制 带配额的资源管理 基于 Kerberos 和 Ranger 的安全性 时间旅行
281、查询 缺点:提供低级编程接口,对用户编程能力要求较高。开发人员需要管理数据序列化,操作复杂度高。CDP 之操作型数据库 210 2)PHOENIX:在 HBase 之上的一个 SQL 关系层 Apache Phoenix 是 Apache HBase 的 SQL 层,它提供了一个程序化的 ANSI SQL 接口。Apache Phoenix 实施最佳实践优化,使软件工程师能够开发基于 HBase 的下一代应用程序来操作大数据。使用 Phoenix,您可以使用 Phoenix 标准 JDBC API 以典型DDL/DML 语句的形式创建表并与之交互。可以使用 Apache Phoenix SQL
282、 命令来创建、删除或修改 Apache HBase 表。您还可以创建 Apache Phoenix 视图,这些视图是共享同一个 Apache HBase 表的虚拟表。特性:熟悉的 SQL 接口 支持类型的标准编码 Schema 演变 多行事务 二级索引 4.OPDB 如何适应用户环境 如图所示,操作型数据库中的数据来源于不同的途径,有实时采集数据、离线批量转换数据等。因此,操作型数据库中的数据大致会包含两类:实时处理后的数据和批量处理后的数据。整理好的数据可以支持三类场景:企业内部应用:CRUD、状态持久性、事务、操作报告等。数据仓库:针对分析工作负载提取到 DW 做进一步的分析使用操作。机器
283、学习:构建特征仓库和模型服务等。CDP 之操作型数据库 211 在企业内部应用和机器学习中更新的数据也会返回到操作型数据库中。5.OPDB 数据摄取选项 下图列举了最常见的将数据加载到 OPDB 的工具。二、通过 OPDB 构建应用 1.NoSQL 的含义 NoSQL=Not Only SQL,运用原生稀疏矩阵模型,以多种方式最优地表示数据。NoSQL 的类型包括:CDP 之操作型数据库 212 时间序列:排序键和列访问允许高效存储和检索时间序列数据。图:可以用多种方式表示,最常见的是使用一个表来表示顶点,另一个表示边。关系:关系表、行和列可以通过 Phoenix 直接映射到它们的 OPDB
284、等价物。文档:可以存储多媒体文件等二进制文件,也可以使用列来分解文档来表示属性。2.OPDB SQL 特性 1)基于 SQL 的接口 用户可以使用符合 ANSI 的 SQL 简化数据访问。下图列举了相同任务(Task)使用 HBase Java API 和使用 SQL 操作的代码,可以看到使用 SQL 的代码更简便:2)Schema 演变 Schema 的演变实现更少的数据建模,更多的模型数据。下面列举了实例中的三个操作进行讲解:CDP 之操作型数据库 213 操作一:Create a table CREATE TABLE users(id INTEGER PRIMARY KEY,userna
285、me VARCHAR);UPSERT INTO users(id,username)VALUES(1,admin);SELECT*FROM users;操作二:Add a new column(without redefining the table)UPSERT INTO users(id,username,state VARCHAR)VALUES(2,KM,CA);SELECT*FROM users;操作三:Query the new column SELECT*FROM users(state VARCHAR);-or CREATE VIEW v1 AS SELECT*FROM user
286、s(state VARCHAR);SELECT*from v1;CDP 之操作型数据库 214 通过以上方式进行数据 Schema 的演变,可以有效的减少 Schema 的维护以及数据迁移操作。3)多行事务 Phonix 的 SQL 代码与 MySQL 的代码相同:通过这种方式可以支持数据作为事务提交。4)二级索引 二级索引是非主键谓词的点查找和扫描。OPDB 存储按主键顺序索引的数据,使用主键谓词的点查找和范围扫描速度很快。使用二级索引可以避免由于没有主键谓词的查询而导致的全表扫描,从而提高查询速度。创建二级索引:CREATE TABLE user(id BIGINT PRIMARY KEY
287、,email VARCHAR,pw VARBINARY,fn VARCHAR,ln VARCHAR);CREATE INDEX idx ON user(email);Include frequently accessed columns with covering indexes CREATE INDEX idx ON user(email)INCLUDE(pw);SELECT email,pw FROM user WHERE email=userphoenix.apache.org;Use arbitrary expressions with functional indexes CREAT
288、E INDEX idx ON user(UPPER(ln|fn)INCLUDE(email);CDP 之操作型数据库 215 SELECT email FROM user WHERE UPPER(ln|fn)=ALICE BOB ;5)时间旅行查询 时间旅行查询是查询过去状态的数据。时间旅行对过去任何时间戳发出的相同查询将忽略自指定时间戳以来的任何更新,比如指定时间戳是去年一月,查询将忽略一月以后的数据更新,因此每次都会产生相同的结果。常见的时间旅行用例:调查:某些活动(例如欺诈调查)受益于能够检查特定时间点的记录状态。机器学习:模型训练需要可重现。时间旅行查询消除了提取和持久化训练数据的需要
289、,大大简化了流程。通过将 CurrentSCN 会话属性设置为过去的时间戳来发出时间旅行查询:Long oneHourAgo=System.currentTimeMillis()-60*60*1000;props.setProperty(CurrentSCN,oneHourAgo);Connection conn=DriverManager.connect(myUrl,props);conn.createStatement().execute(SELECT*FROM users WHERE email=usersphoenix.apache.org);3.如何使用 OPDB?OPDB 可以在
290、HUE 中使用,HUE 支持 HBase 的搜索、插入、更新、删除、DDL 等操作。CDP 之操作型数据库 216 列式数据浏览器 同时,HUE 支持 SQL(Phonix)接口,可以在 HUE 中通过 Phonix 接口调用 HBase 数据插入、更新、删除查询。SQL 接口 CDP 之操作型数据库 217 4.快速启动项目 参考网址:https:/ 下图列举了基于 Java、Python 和 C#的入门示例,以方便大家体验 OPDB。三、企业就绪的 OPDB OPDB 是一款企业就绪的产品。1.OPDB 的安全模型 1)认证 基于 Kerberos 的身份验证,可以与大多数企业身份和角色管
291、理系统集成。2)授权 OPDB 通过 Ranger 进行授权管理,Ranger 中的命名空间、表、列族和列范围可以设置读、写、创建或管理权限。3)加密 数据加密通过 TSL 来完成:传输中数据的传输级加密(RPC、WAL)。CDP 之操作型数据库 218 静态数据的文件级加密(HFiles)。2.开箱即用的高可用性 OPDB 中的数据分布在 Ragion Server(RS)中,如下图所示,表(Table)按键范围划分为区域,RS 管理多个区域,并维护预写日志(WAL)以跟踪突变,WAL 和区域文件保存在共享文件系统(HDFS 或对象存储)中。当 Region Server 崩溃时,受影响区域
292、的客户端请求(读取、写入)将超时。受影响的区域被重新分配给剩余的区域服务器,并重播 WAL 使受影响的区域保持更新。至此可以再次为受影响的地区提供服务,恢复时间B)?双向(AB)?一对多(A-B,C,D)?循环(A-B-C-A)1)混合集群类型 跨数据中心、区域或可用区。CDP 之操作型数据库 220 不同大小的源和目标集群。从不安全到安全的集群。跨 Kerberos 域,没有 x-realm 信任。2)批量加载被复制 OPDB 复制用例 4.备份和灾难恢复选项 备份和灾难恢复常见的方式有:Replication 和 Snapshots,对于小数据量可以使用SyncTable 和 CopyTa
293、ble。CDP 之操作型数据库 221 1)Replication 可以自动进行完整的复制,在配置完成后将 HBase 从源自动复制到目标端,是目前最新的一种复制方式。2)快照(Snapshots)快照在创建时占用空间很小,但可能会随着时间的推移而扩展,具体取决于数据更改率。如果是灾备,要将它们运送到另一个系统,则需要完整的数据副本。同样,远程系统上的快照加载比本地系统上的加载花费更长的时间。5.资源管理 如图所示,配额的范围可以是用户、表或命名空间。CDP 之操作型数据库 222 四、部署 OPDB 1.OPDB 形态 OPDB 有三种形态:集群模式、DataHub 和 COD。1)集群模式
294、:在具有 CDP 私有云基础的裸机上 存储在 HDFS 中的数据。在裸机上运行的集群允许针对硬件最大程度地调整工作负载。最可定制化的产品。2)DataHub:CDP 公有云上的经典风格 云对象存储中的数据。CDP 公有云中的模板化部署。提供一些可定制性,易于在公共云环境中进行配置。3)COD:CDP 公共云上的托管服务 云对象存储中的数据。支持自动缩放、自动调整和自动修复。最容易配置,最低的管理开销。目前在阿里云上的产品是经典形态,未来将上架 COD 形态。2.OPDB 分布式架构 如图所示,OPDB分布式架构由两部分组成:应用端/客户端(Apps/Clients)和Server端 OPDB。
295、CDP 之操作型数据库 223 1)应用端/客户端:包括 JVM、Python、Javascript、SQL/JDBC 等。2)Server 端:接口:通过 REST Gateway、Thrift Gateway、Phonix Query Server 访问 OPDB。OPDB 主要是 HBase 集群,通过 Zookeeper 支持高可用,底层存储支持 HDFS、S3、ADLS 等。3.未来:COD 的新功能 1)针对开发人员和管理人员的利好 COD 的新功能可以减少开发人员和管理人员的工作,让他们能将时间花在更重要的事情上。开发人员:轻松快速部署,部署操作更简单,只需 3 次点击,20 分
296、钟即可完成部署。管理人员:自主管理,支持自动伸缩、自动优化和自动修复,有效减少管理开销。CDP 之操作型数据库 224 2)连接到 COD 每个 COD 实例都有一个主页,其中包含各种类型的客户端的连接信息。连接方式包括:HBase、Phonix、JDBC 等。3)COD 提高运营敏捷性 自动配置:减少配置开销?自动配置 Kerberos、TLS、缓存设置等。?默认情况下高度可用。?简化的复制设置。自动缩放:调整峰值和平均负载?根据应用需求自动扩缩容。?降低基础设施成本。自动优化:优化运行的工作负载?检测和缓解热点。?随着数据的增长,消除了对区域管理和平衡的需求。CDP 之操作型数据库 225
297、 4)轻松的混合云部署 COD 作为未来混合云部署的重要组成部分,支持与本地 Data Centre 的 OPDB 以及其他公有云产品的 OPDB 进行交互,用于测试/开发、弹性、灾难恢复和云迁移。COD 复制:两次点击部署云集群。基于向导的双向实时复制设置。云数据库没有管理开销。没有供应商差异,确保简化的应用程序提升和转移。CDP 之数据计算 226 CDP 之数据存储 一、数据存储概览 Cloudera Runtime 提供了不同类型的存储组件,您可以根据您的数据要求使用这些组件。Apache Hadoop HDFS 是一个用于存储大量数据的分布式文件系统。Apache Ozone 是一个
298、针对大数据工作负载优化的可扩展、冗余和分布式对象存储。Apache Kudu 完善了 Apache Hadoop 的存储层,支持对数据进行快速分析。1.HDFS 概述 Hadoop 分布式文件系统(HDFS)是一种基于 Java 的文件系统,用于存储大量数据,HDFS 旨在跨越大型商品服务器集群,提供可扩展且可靠的数据存储。HDFS 集群包含用于管理集群命名空间的 NameNode 和用于存储数据的 DataNode。HDFS 是一种可扩展、容错的分布式存储系统,可与各种并发数据访问应用程序紧密协作。通过在许多服务器上分布存储和计算,组合存储资源随需求线性增长。1)HDFS 集群的组件 HDF
299、S 集群包含以下主要组件:NameNode 和 DataNode。NameNode 管理集群元数据,包括文件和目录结构、权限、修改和磁盘空间配额。文件内容被拆分成多个数据块,每个块在多个 DataNodes 上进行复制。NameNode 主动监控一个块的副本数。此外,NameNode 维护命名空间树和块到 DataNode 的映射,将整个命名空间映像保存在 RAM 中。高可用性(HA)集群包含一个用于活动 NameNode 的备用节点,以避免单点故障。这些集群使用 JournalNode 来同步主备 NameNode。CDP 之数据计算 227 2)HDFS 的好处 HDFS 提供了以下好处,
300、因为这些好处可以有效地存储数据并且在集群中具有高可用性:机架感知:在分配存储和调度任务时考虑节点的物理位置。最少的数据移动:Hadoop 将计算过程移动到 HDFS 上的数据。处理任务可以发生在数据所在的物理节点上。这显著减少了网络 I/O 并提供了非常高的聚合带宽。实用程序:动态诊断文件系统的健康状况并重新平衡不同节点上的数据。版本回滚:允许操作员在升级后执行回滚到以前版本的 HDFS,以防出现人为或系统错误。StandbyNameNode:提供冗余并支持高可用性(HA)。可操作性:HDFS 需要最少的操作员干预,允许单个操作员维护一个由数千个节点组成的集群。2.Apache Ozone 概
301、览 Apache Ozone 是一个针对大数据工作负载优化的可扩展、冗余和分布式对象存储。除了扩展到数十亿个不同大小的对象外,使用 Apache Spark、Apache YARN 和Apache Hive 等框架的应用程序无需任何修改即可在 Ozone 上原生运行。Ozone 原生支持 S3 API 并提供与 Hadoop 兼容的文件系统接口。Ozone 通常在 CDP 私有云基础部署中可用。Ozone 由三个重要的存储元素组成:卷、桶和键。每个键都是存储桶的一部分,而存储桶又属于一个卷。只有管理员可以创建卷。根据他们的要求,普通用户可以批量创建存储桶。Ozone 将数据作为键存储在这些桶中
302、。当客户端写入密钥时,Ozone 将相关数据以称为块的块形式存储在DataNode上。因此,每个密钥都与一个或多个块相关联。在一个 DataNode 中,多个不相关的块可以驻留在一个存储容器中。CDP 之数据计算 228 3.Apache Kudu 介绍 Apache Kudu 是为 Hadoop 平台开发的列式存储管理器。Kudu 具有 Hadoop 生态系统应用程序的共同技术特性:Kudu 运行在商用硬件上,可水平扩展,支持高可用操作。Apache Kudu 是 Apache 软件基金会的顶级项目。Kudu 的好处包括:快速处理 OLAP 工作负载。与 MapReduce、Spark、Fl
303、ume 和其他 Hadoop 生态系统组件集成。与 Apache Impala 紧密集成,使其成为将 HDFS 与 Apache Parquet 结合使用的良好、可变的替代方案。强大而灵活的一致性模型,允许您在每个请求的基础上选择一致性要求,包括严格序列化一致性的选项。同时运行顺序和随机工作负载的强大性能。通过 Cloudera Manager 轻松管理。高可用性。Tablet Servers 和 Master 使用 Raft 共识算法,只要可用副本数多于不可用副本数,就可以确保可用性。读取可以由只读的跟随者平板电脑提供服务,即使在领导者平板电脑出现故障的情况下也是如此。结构化数据模型 通过结
304、合所有这些属性,Kudu 的目标是支持难以或不可能在当前可用的 Hadoop存储技术上实现的应用程序。Kudu 是可行解决方案的应用程序包括:CDP 之数据计算 229 新数据必须立即可供最终用户使用的报告应用程序。时间序列应用程序必须支持跨大量历史数据的查询,同时返回有关单个实体的粒度查询。使用预测模型做出实时决策的应用程序,并根据历史数据定期刷新预测模型。二、管理数据存储 您可以考虑各种选项来优化数据存储,例如通过纠删码增加存储空间、使用编解码器压缩数据、在 HDFS 集群中平衡数据等。1.优化数据存储 1)跨 DataNode 的磁盘平衡数据 HDFS Disk Balancer 是一个
305、命令行工具,可以在 DataNode 的所有磁盘上均匀分布数据,以确保磁盘得到有效利用。与在集群的 DataNode 之间平衡数据的 HDFS Balancer 不同,Disk Balancer 在单个 DataNode 级别平衡数据。由于大量的写入和删除或磁盘更换等原因,DataNode 上的磁盘可能会出现数据分布不均匀的情况。为确保数据在指定 DataNode 的磁盘之间分布的均匀性,Disk Balancer 对 DataNode 进行操作,并将数据块从一个磁盘移动到另一个磁盘。对于指定的 DataNode,磁盘平衡器根据其总容量和已用空间确定每个磁盘存储的理想数据量,并计算在磁盘之间重
306、新分配的数据量。磁盘平衡器捕获有关数据在计划中跨 DataNode 磁盘移动的信息。在执行计划时,磁盘平衡器按指定移动数据。2)数据持久性 数据持久性描述了数据丢失的弹性。当数据存储在 HDFS 中时,CDP 提供了两种数据持久性选项。您可以使用最初构建 HDFS 的复制或纠删码(EC)。CDP 之数据计算 230 复制 HDFS 创建两个数据副本,从而产生三个数据实例。这些副本存储在单独的DataNode 上,以防止在无法访问节点时丢失数据。当存储在节点上的数据丢失或无法访问时,它会从其他节点之一复制到新节点,以便始终有多个副本。复制的数量是可配置的,但默认是三个。当您拥有三个或更多 Dat
307、aNode 时,Cloudera 建议将复制因子至少保持为三个。较低的复制因子会导致数据更容易受到DataNode 故障的影响,因为分布在较少 DataNode 上的数据副本较少。当数据写入使用复制的 HDFS 集群时,会自动创建数据的额外副本。不需要额外的步骤。复制支持 CDP 支持的所有数据处理引擎。纠删码(EC)EC 是复制的替代方法。当 HDFS 集群使用 EC 时,不会生成额外的数据直接副本。相反,数据被分割成块并编码以生成奇偶校验块。如果有任何丢失或损坏的块,HDFS使用剩余的数据和奇偶校验块在后台重建丢失的部分。此过程提供与 3 倍复制相似级别的数据持久性,但存储成本更低。此外,
308、写入数据时会应用 EC。这意味着要使用 EC,您必须首先创建一个目录并为EC 配置它。然后,您可以复制现有数据或将新数据写入该目录。3)通过 HDFS 压缩增加存储容量 Linux 支持 GzipCodec、DefaultCodec、BZip2Codec、LzoCodec 和 SnappyCodec。通常,GzipCodec 用于 HDFS 压缩。要配置数据压缩,您可以启用数据压缩编解码器,例如,GZipCodec 作为默认编解码器,或者通过一次性作业从命令行使用编解码器。CDP 之数据计算 231 4)设置 HDFS 配额 作为管理员,您可以在 Reports Manager 服务作为 Cl
309、oudera Management Service的一部分安装后,为使用的文件名和目录名数量以及目录使用的空间量设置 HDFS配额。在您可以设置配额之前,报告管理器必须为文件或目录编制索引。使用 HDFS 配额的注意事项?名称配额和空间配额相互独立。?如果创建更多文件和目录会导致超过配额,则不能创建更多文件和目录。?如果配额阻止写入完整块,则块分配失败。?如果您使用复制,块的每个副本都将计入配额。文件数量限制?文件计数配额是对配置目录中文件名和目录名数量的限制。?目录计入其自身的配额。因此,配额值为 1 会强制目录保持为空。?文件计数基于文件的预期复制因子。更改文件的复制因子将增加或减少相应的
310、配额值。磁盘空间限制?空间配额是对以正在配置的目录为根的树中文件使用的字节数的硬性限制。?块的每个副本都计入配额。?磁盘空间配额计算将复制考虑在内。因此,计算使用每个文件的复制大小而不是面向用户的大小。?磁盘空间配额计算包括打开的文件(正在写入)和已写入的文件。?如果配额不允许写入完整块,则正在写入的文件的块分配会失败。5)在 HDFS 中配置异构存储 HDFS支持多种存储类型。您可以选择分配给每个DataNode数据目录的存储类型。指定存储类型可让您根据数据使用频率优化数据使用并降低成本。集群中的每个 DataNode 都配置有一组数据目录。您可以为每个数据目录配置存储类型。存储策略规定了在
311、存储文件或目录时要使用的存储类型。CDP 之数据计算 232 考虑使用不同类型存储的一些原因如下:您拥有具有时间局部性的数据集(例如,时间序列数据)。最新的数据最初可以加载到 SSD 中以提高性能,然后随着时间的推移迁移到磁盘。您需要将冷数据移动到更密集的归档存储,因为数据很少会被访问,而且归档存储要便宜得多。这可以通过简单的过时策略来完成:例如,将超过六个月的数据移至存档存储。6)跨 HDFS 集群平衡数据 HDFS Balancer 是一种用于在 HDFS 集群的存储设备之间平衡数据的工具。您还可以指定源 DataNode,以释放特定 DataNode 中的空间。您可以使用块分布应用程序将
312、其块副本固定到特定的 DataNode,这样固定的副本就不会为了集群平衡而移动。2.优化性能 您可以考虑以下选项来优化 HDFS 集群的性能:在 DataNode 上交换磁盘驱动器、缓存数据、为主机指定机架、自定义 HDFS、使用 Hadoop 存档优化 NameNode 磁盘空间、识别慢速 DataNode 并改进它们、优化小型写操作使用 DataNode 内存作为存储,实现短路读。1)通过集中缓存管理提高性能 集中式缓存管理使您能够指定 HDFS 缓存目录的路径,从而提高重复访问相同数据的应用程序的性能。HDFS 中的集中式缓存管理是一种显式缓存机制。NameNode 与磁盘上具有所需数据
313、块的 DataNode 通信,并指示 DataNode 将数据块缓存在堆外缓存中。CDP 之数据计算 233 2)为主机指定机架 HDFS 使用您部署的网络位置(例如主机和机架)来更智能地放置块副本并权衡性能和弹性。在主机上放置作业时,CDP 更喜欢机架内传输,因为那里有更多可用带宽,而不是机架外传输。这些计算是在机架感知脚本的帮助下执行的。Cloudera Manager 包含内部机架感知脚本,但您必须指定集群中主机所在的机架。a)在 Cloudera Manager 中,转到 HostsAll Hosts。b)选中与要为其指定机架的主机对应的复选框。c)选择选定的操作分配机架。d)输入以斜
314、杠()开头的机架名称或 ID/;例如/rack123 或/aisle1/rack123,然后单击确认。e)重新启动受影响的服务。3)自定义 HDFS 您可以使用该 dfs.user.home.base.dir 属性自定义 HDFS 主目录。此外,您可以配置属性来控制包含 NameNodeedits 目录的目录的大小。4)使用 Hadoop 归档优化 NameNode 磁盘空间 Hadoop 归档(HAR)是一种特殊格式的归档,可以有效地将小文件打包到 HDFS 块中。Hadoop 分布式文件系统(HDFS)旨在存储和处理大型数据集,但在存储大量小文件时,HDFS 的效率可能较低。当 HDFS
315、中存储了很多小文件时,这些小文件占据了命名空间的很大一部分。结果,由于命名空间限制,磁盘空间未得到充分利用。Hadoop 归档(HAR)可用于解决与存储许多小文件相关的命名空间限制。Hadoop Archive 将小文件更有效地打包到 HDFS 块中,从而减少 NameNode 内存使用,同时仍然允许对文件进行透明访问。Hadoop Archives 还与 MapReduce 兼容,允许MapReduce 作业透明访问原始文件。CDP 之数据计算 234 5)检测慢速 DataNode CDP 私有云基础集群中缓慢的数据节点会对集群性能产生负面影响。因此,HDFS 提供了一种机制来检测和报告对
316、集群性能有负面影响的慢速 DataNode。HDFS 旨在检测 DataNode 的完全故障并从中恢复:没有单点故障。自动 NameNode 故障转移只需几秒钟。因为数据复制可以在大型集群中大规模并行化,所以从 DataNode 丢失中恢复可以在几分钟内完成。大多数作业不受 DataNode 故障的影响。但是,部分故障会对运行的 DataNode 的性能产生负面影响:由于适配器故障或配置错误导致网络连接缓慢。影响服务性能的不良操作系统或 JVM 设置。硬盘慢。坏的磁盘控制器。缓慢的 DataNodes 会对集群性能产生重大影响。慢速 DataNode 可能会继续成功发送心跳,而 NameNod
317、e 会不断将客户端重定向到慢速 DataNode。HDFS DataNode 监控提供对对集群性能产生负面影响的慢速 DataNode 的检测和报告。6)分配 DataNode 内存作为存储 HDFS 支持将大型数据集高效写入持久存储,并提供对数据的可靠访问。这适用于写入大量持久数据的批处理作业。新兴的应用程序类别正在推动写入更少量临时数 CDP 之数据计算 235 据的用例。使用 DataNode 内存作为存储解决了想要以低延迟写入相对少量的中间数据集的应用程序的用例。将块数据写入内存会降低持久性,因为数据可能会在保存到磁盘之前由于进程重启而丢失。HDFS 尝试及时将副本数据保存到磁盘以减少
318、可能的数据丢失窗口。使用 RAM_DISK 存储类型和 LAZY_PERSIST 存储策略引用 DataNode 内存。7)通过短路本地读取提高性能 在 HDFS 中,读取通常通过 DataNode。因此,当客户端请求 DataNode 读取文件时,DataNode 从磁盘读取该文件并通过 TCP 套接字将数据发送到客户端。“短路”读取绕过 DataNode,让客户端直接读取文件。这仅在客户端与数据位于同一位置的情况下才有可能。短路读取为许多应用程序提供了显着的性能提升。8)配置可挂载的 HDFS CDP 包括一个连接到 HDFS 的 FUSE(用户空间中的文件系统)接口。该 hadoop-h
319、dfs-fuse 命令使您能够像使用 Linux 上的传统文件系统一样使用 HDFS 集群。三、数据保护 可以通过防止意外删除文件和备份 HDFS 元数据来确保数据保护。1.备份 HDFS 元数据 HDFS 元数据以树的形式表示 HDFS 目录和文件的结构和属性。您可以在不影响NameNode 可用性的情况下备份元数据。2.配置 HDFS 垃圾桶 Hadoop 垃圾桶功能有助于防止意外删除文件和目录。当您删除 HDFS 中的文件时,该文件不会立即从 HDFS 中删除。删除的文件首先移动到该/user/.Trash/Current 目录,并保留其原始文件系统路径。在用户可配置的时间段(fs.tr
320、ash.interval)之后,称为垃圾检查点的进程将 Current 目 CDP 之数据计算 236 录重命名为当前时间戳,即/user/.Trash/.检查点进程还会检查目录的其余部分.Trash 是否存在任何现有的时间戳目录,并将它们从 HDFS中永久删除。您只需将文件和目录移动到目录外的位置,即可恢复垃圾箱中的文件和.Trash 目录。3.使用 HDFS 快照进行数据保护 HDFS 快照使您能够捕获文件系统的时间点副本并保护您的重要数据免受用户或应用程序错误的影响。Cloudera 建议您拍摄文件系统上指定子树的快照。由于以下原因,使用快照来保护数据是有效的:无论目录子树的大小和深度如
321、何,快照创建都是即时的。快照捕获指定子树的阻止列表和文件大小。快照不会在文件系统上创建额外的块副本。您可以使用命令行界面或 Cloudera Manager 来管理 HDFS 快照。4.防止无意中删除目录 您可以通过将特定目录标记为受保护来防止无意中删除 HDFS 集群中的重要数据。将目录标记为受保护可防止其递归删除。但是,这并不能防止优雅地删除目录下的文件。您可以通过将文件移至回收站来删除这些文件。a)转到 HDFS 服务。b)单击配置选项卡。c)按照指定为 core-site.xml 属性设置集群范围的高级配置片段(安全阀):?名称:fs.protected.directories?值:指
322、定要标记为受保护的目录的逗号分隔列表;例如,/user、/data 等。d)输入 Reason for Change,然后单击 Save Changes 以保存属性更改。e)重启集群。CDP 之数据计算 237 四、下一代存储 Ozone Apache Ozone 是一个针对大数据工作负载优化的可扩展、冗余和分布式对象存储。除了扩展到数十亿个不同大小的对象外,使用 Apache Spark、Apache YARN 和Apache Hive 等框架的应用程序无需任何修改即可在 Ozone 上原生运行。Ozone 原生支持 S3 API 并提供与 Hadoop 兼容的文件系统接口。Ozone 通常
323、在 CDP 私有云基础部署中可用。1.Ozone 架构 Ozone 可以与具有单一安全和治理策略的 HDFS 位于同一位置,以便于数据交换或迁移,还提供无缝的应用程序可移植性。Ozone 具有横向扩展架构,运营开销极小。Ozone 将命名空间和存储的管理分开,帮助它有效地扩展。Ozone Manager(OM)管理命名空间,而 Storage Container Manager(SCM)处理容器。所有存储在 OM SCM 和数据节点上的元数据都需要存储在 NVME 或 SSD 等低延迟设备中。下图显示了构成 Ozone 基本架构的组件:CDP 之数据计算 238 Ozone 管理器 Ozone
324、 Manager(OM)是一个高度可用的 Ozone 命名空间管理器。OM 管理卷、桶和密钥的元数据。OM 维护密钥与其对应的块 ID 之间的映射。当客户端应用程序请求密钥以执行读写操作时,OM 与 SCM 交互以获取与读写操作相关的块的信息,并将此信息提供给客户端。OM 使用 Apache Ratis(Raft 协议)来复制 Ozone 管理器状态。当 RocksDB(嵌入式存储引擎)保留元数据或键空间时,将 Ratis 事务刷新到本地磁盘可确保 Ozone中的数据持久性。因此,需要在每个 OM 节点上使用 NVMe SSD 等低延迟本地存储设备以实现最大吞吐量。典型的 Ozone 部署具有
325、三个 OM 节点以实现冗余。数据节点 Ozone DataNodes 与 HDFS DataNodes 不同,将实际的用户数据存储在 Ozone 集群中。DataNodes 存储客户端写入的数据块。这些块的集合就是一个存储容器。客户端以块的固定大小块文件(4MB)的形式流式传输数据。块文件构成实际写入磁盘的内容。DataNode 以固定的时间间隔向 SCM 发送心跳。每次心跳时,DataNode都会发送容器报告。DataNode 中的每个存储容器都有自己的 RocksDB 实例,用于存储块和单个块文件的元数据。每个 DataNode 都可以是一个或多个活动管道的一部分。A pipeline o
326、f DataNodes is actually a Ratis quorum with an elected leader and follower DataNodes accepting writes.来自客户端的读取直接进入 DataNode 而不是通过Ratis。DataNode上的SSD需要为活动管道保留Ratis日志并显着提高写入吞吐量。存储容器管理器 存储容器管理器(SCM)是 Ozone 中的一项主服务。存储容器是 Ozone 中的复制单元。与管理块级复制的 HDFS 不同,Ozone 管理称为存储容器的存储块集合的复制。容器的默认大小为 5 GB。SCM 管理 DataNode
327、 管道和容器在管道上的放置。管道是基于复制因子的 DataNode 的集合。例如,给定默认复制因子 3,每个管道包含三个 DataNode。SCM 负责创建和管理发生块分配的 DataNode 的活动写入管道。CDP 之数据计算 239 客户端直接在 DataNode 上写块打开容器,SCM 不直接在数据路径上。容器在关闭后是不可变的。SCM 使用 RocksDB 来持久化管道元数据和容器元数据。与 OM 管理的密钥空间相比,此元数据的大小要小得多。SCM 是一个高度可用的组件,它使用 Apache Ratis。Cloudera 建议在 SCM 节点上为 Ratis 预写日志和 RocksDB
328、 使用 SSD。典型的 Ozone 部署具有三个 SCM 节点以实现冗余。SCM 服务实例可以与 OM 实例并置;因此,您可以为 SCM 和 OM 使用相同的主节点。侦察服务器 Recon 是 Ozone 集群中的集中监控和管理服务,它提供有关由不同 Ozone 组件(如OM 和 SCM)维护的元数据的信息。Recon 拍摄 OM 和 SCM 元数据的快照,同时还从 Ozone DataNode 接收心跳。Recon 根据集群的繁忙程度以增量方式异步构建集群完整状态的离线副本。在更新OM 元数据的快照方面,Recon 通常会通过一些事务来跟踪 OM。Cloudera 建议使用 SSD 来维护快
329、照信息,因为 SSD 将帮助 Recon 与 OM 保持更新。Ozone 文件系统接口 Ozone 是一个多协议存储系统,支持以下接口:ofs:与 Hadoop 兼容的文件系统允许任何需要类似 HDFS 接口的应用程序无需更改即可与 Ozone 一起工作。Apache Spark、YARN 和 Hive 等框架无需任何更改即可对付 Ozone。s3:Amazon 的简单存储服务(S3)协议。您可以在不对 Ozone 进行任何修改的情况下使用 S3 客户端和基于 S3 SDK 的应用程序。o3fs:基于存储桶的 Hadoop 兼容文件系统接口。o3:可以从 Ozone shell 使用的对象存储
330、接口。CDP 之数据计算 240 S3 网关 S3 网关是一个无状态组件,它通过 HTTP 提供对 Ozone 的 REST 访问,并支持与AWS 兼容的 s3 API。S3 网关支持分段上传和加密区域。此外,S3 网关将通过 HTTP 的 S3 API 调用转换为对其他 Ozone 组件的 rpc 调用。为了扩展您的 S3 访问,Cloudera 建议在支持直接服务器返回(DSR)的负载均衡器后面部署多个网关 haproxy,以便负载均衡器不在数据路径上。2.Ozone 安全架构 Apache Ozone 是一种可扩展的分布式高性能对象存储,针对大数据工作负载进行了优化,可以处理数十亿个不同
331、大小的对象。使用 Apache Spark、Apache YARN 和Apache Hive 等框架的应用程序无需任何修改即可在 Ozone 上原生运行。因此,必须拥有强大的安全机制来保护您的集群并保护您在 Ozone 中的数据。Apache Ozone 中提供了多种身份验证和授权机制。1)Ozone 认证 身份验证是识别 Ozone 组件的用户身份的过程。Apache Ozone 支持使用 Kerberos和安全令牌的强身份验证。a)基于 Kerberos 的身份验证 Ozone 依靠 Kerberos 来保证集群的安全。要在 Ozone 集群中启用安全性,您必须设置以下参数:属性 值 Oz
332、one.security.enabled True hadoop.security.authentication kerberos 下图说明了服务组件,例如 Ozone Manager(OM)、Storage Container Manager(SCM)、DataNodes 和 Ozone Clients 如何通过 Kerberos 相互验证:CDP 之数据计算 241 每个服务都必须配置一个有效的 Kerberos Principal Name 和一个相应的 keytab 文件,该文件用于在服务启动时以安全模式登录。相应地,Ozone 客户端必须提供有效的 Kerberos 票证或安全令牌才
333、能访问 Ozone 服务,例如用于元数据的 OM 和用于读/写块的 DataNode。b)安全令牌 由于 Ozone 每秒处理数以千计的请求,每次通过 Kerberos 进行身份验证可能会造成负担过重且效率低下。因此,一旦身份验证完成,Ozone 就会向在 Kerberos 帮助下进行身份验证的用户或客户端应用程序发出委托和块令牌,以便他们可以对集群执行指定的操作,就好像他们拥有有效的 kerberos 票证一样。Ozone 安全令牌具有令牌标识符以及来自发行者的签名。令牌的签名可以由令牌验证器验证,以验证发行者的身份,并且有效的令牌持有者可以使用令牌对集群执行操作。c)委托令牌 委托令牌允许用户或客户端应用程序模拟用户的 kerberos 凭证。客户端最初通过Kerberos 向 OM 进行身份验证,并从 OM 获取委托令牌。OM 发行的委托令牌允许令牌持有者访问 OM 提供的元数据服